前言

继上回说到 Sigma-Delta ADC 中“抽取与滤波”的原理,今天我们对照 Datasheet 看一下,加深对 Sinc Filter 的理解。

我选取的是 TI ADS124S08,在 TI ADC 分类位置如下。另外,网上也有很多它与 Arduino、Raspberry Pi 的开发案例。

图1 TI ADC 分类

图1 TI ADC 分类,来源 [1]

按惯例声明一下:我的解释不一定是对的,还可能存在错误,有时我自己也不知道在说什么。所以仅供参考,欢迎讨论。

ADS124S08 简介

打开 Datasheet,首先看到 ADS124S08 是一颗 12-Channel、4-kSPS、24-Bit 的 Sigma-Delta ADC(TI 习惯反过来称为 Delta-Sigma ADC),内部有 “configurable digital filter” 和 “programmable gain amplifier”。因采样率不高,主要支持缓慢变化的传感器应用,如温度、压力、应力、流量等。

图2 ADS124S08 简介

图2 ADS124S08 简介,来源 [2]

芯片的内部框图如下:

图3 ADS124S08 内部框图

图3 ADS124S08 内部框图,来源 [2]

其中, “Configurable Digital Filter” 就是本期关注的重点。

另外,由 Datasheet 上下文可知,图中的 “24-Bit ΔΣ ADC” 指的就是 Sigma-Delta Modulator(调制器)。

ADS124S08 中的 Digital Filter

Digital Filter 在 Sigma-Delta ADC 中起的作用是抽取(Decimation)与滤波(Filtering)。

Datasheet 中给出了这个 Digital Filter 的架构,细分为两个子类型:

  • 第一个是 Sinc3 Filter,即 3 阶 Sinc 滤波器,它的滤波效果好一点,但延迟大。
  • 第二个是 Low Latency Filter,看着是一种 TI 自制的简易滤波器与 1 阶 Sinc 滤波器的组合,滤波效果差,但延迟小。
图4 ADS124S08 中的 Digital Filter

图4 ADS124S08 中的 Digital Filter,来源 [2]

从图中还能看出它的时钟树:

  • 基准时钟是 fCLK(4.096 MHz)。
  • 分频后是调制器时钟 fMOD(256 kHz),也就是 1-Bit PDM 码流的速率,将这个码流给到 Digital Filter。
  • Digital Filter 滤波后输出数据,此时已是 24-Bit 数据。数据速率有不同配置,数据速率与 fMOD 的比值称为 Oversampling ratio (OSR)。关于数据速率与 fMOD 之间的配置如下:
图5 数据速率与 fMOD 之间的配置

图5 数据速率与 fMOD 之间的配置,来源 [2]

比如, 对于 24-Bit 的数据速率,可以是:2.5 SPS (源于 256 kHz / 102400,表中第一行), 或 4000 SPS (源于 256 kHz / 64,表中最末行),SPS 意为 Samples Per Second,这就是“抽取”的意义。

Sinc3 Filter 的频谱特性

我们再来看下频谱特性,Datasheet 绘制了两个类型 Filter 的多个频谱图,为避免冗长,这里以 Sinc3 Filter 进行参考描述。

图6 Sinc3 Filter 的频谱特性

图6 Sinc3 Filter 的频谱特性,来源 [2]

上述左图是 Sinc3 Filter 的归一化频谱,幅度上有周期性的陷波(Notch),其中横坐标“1”的位置就是数据速率。右图与左图形状一样,但非归一化,是数据速率为 10 SPS 的图示,所以第一个陷波发生在 10Hz。

另外,从右图可以发现 Sinc Filter 的一个好处是抑制电力工频噪声的干扰,即 50Hz 与 60Hz 上有陷波。Datasheet 也给出了这两个陷波的 spec:

图7 工频噪声的陷波 spec

图7 工频噪声的陷波 spec,来源 [2]

当然,当数据速率大于 60 SPS 时,第一个陷波的位置大于 60Hz,对工频噪声的抑制就没有了,所以 spec 只列举到 60 SPS。

我们再来看一下 Sinc3 Filter 的带宽:

图8 Sinc3 Filter 的带宽

图8 Sinc3 Filter 的带宽,来源 [2]

可以看到,在 10 SPS 的时候,带宽只有 2.6Hz;在最大 4000 SPS 的时候,带宽也只有 1046Hz。这就体现了 Sinc Filter 带宽“窄”的特性,所以只能支持一些缓慢变化的传感器应用。

至于另一个 Low Latency Filter,它的频谱表现比 Sinc3 Filter 更差一点,有兴趣的朋友可以查阅 Datasheet 详情。

Sinc3 Filter 的延迟特性

滤波器的延迟(Latency)影响 A/D 整体的转换时间,即,一个模拟输入到对应的一个数据输出之间的时间。

由于 Sinc3 是 3 阶 Sinc Filter,即滤波算法执行了 3 次,所以需要更长的时间。Datasheet 给出了 Sinc3 与 Low Latency Filter 单次转换(Single-shot)的差别:

图9 滤波器的延迟(Latency)

图9 滤波器的延迟(Latency),来源 [2]

可以看到 Sinc3 Filter 大概需要 Low Latency Filter 三倍的时间才能完成单次转换。

这就体现出 Low Latency Filter 的用武之地,虽然它的频谱特性比 Sinc3 Filter 更差,但是 Latency 更小,非常适合多通道信号的轮询,比如 ADS124S08 支持 12 Channel Input,如果要快速轮询 12 Channel,建议优先使用 Low Latency Filter。

而对于单一 Channel 连续不断采集和转换的情况,则优先使用 Sinc3 Filter 。

还有一个 Analog Filter

Sinc3 Filter、Low Latency Filter 都属于数字滤波器,但 ADS124S08 还有一个模拟滤波器。

这是因为信号经过 Sigma-Delta Modulator 发生一次混叠,经过 Sinc3 Filter 或 Low Latency Filter 又发生一次混叠。如果有高频噪声,会转移到输出频率内,为此需要一个抗混叠滤波器(Antialiasing Filter):

图10 Sigma-Delta ADC 抗混叠图示

图10 Sigma-Delta ADC 抗混叠图示,来源 [2]

这个抗混叠滤波器在 PGA 之中,PGA 的 R、C 网络组成了一个 RC 模拟滤波器:

图11 PGA 中的 RC 模拟滤波器

图11 PGA 中的 RC 模拟滤波器,来源 [2]

因为数字滤波器的抽取及 OSR 具有较大的比值,这个模拟滤波器不需要很陡峭的过渡带就可以滤除高频噪声,避免混叠的发生。

总结

本文以 ADS124S08 为例,着重介绍 Sigma-Delta ADC 中的 Sinc Filter,以便加深对它的理解。

TI 还提供了 ADS124S08 的 Excel,用于不同滤波器参数的配置、计算和仿真,所以开发资料很诚恳。如果你找不到这个 Excel,可以留言问我要:

图12 ADS124S08 滤波器的设计 Excel

图12 ADS124S08 滤波器的设计 Excel,来源 [2]

希望通过这些内容,未来查看此类 Datasheet 时,可以驾轻就熟。

参考资料

  1. https://www.ti.com.cn/zh-cn/data-converters/adc-circuit/precision-adcs/overview.html
  2. https://www.ti.com.cn/product/cn/ADS124S08

欢迎关注我的微信公众号“疯狂的运放”,及时收到最新的推文。