在之前的内容中,我们分享了由 ADC 自身因素带来的误差。而在实际应用中,外部因素同样会对 ADC 采样产生显著影响,导致误差的出现。下面我们将详细分析由于外部因素导致的 ADC 采样误差的常见来源。
以 STM32 的 ADC
转换器为例,我们来看其示意图。

从图中能够清晰地看到,输入源与采样引脚之间存在阻抗 RAIN。由于阻抗的存在,流入引脚的电压会产生一定的压降,这就使得终输入采样引脚的电压变小。ADC 采样电容通过 RADC 电阻进行充电,若 RAIN 的阻抗选取不合理,会使保持电容充满电所需的时间延长。通常,RC 充电的时间常量为:tc =(RADC + RAIN)× CADC。当采样时间小于通过 RADC + RAIN 将 CADC 充满电所需的时间(ts < tc)时,ADC 转换的数字值就会小于实际值。
我们知道,ADC 输出的数字量是由模拟信号电压与参考电压之比,再根据 ADC 转换器的位数换算得出的。所以,模拟参考的参考电压上的任何噪声都会导致转换后数字输出值发生变化。在某些
芯片中,VDDA 模拟
电源会直接用作参考电压(VREF +),这就意味着 VDDA 电源的质量会直接影响 ADC 采样转换的误差。例如,当模拟参考电压为 3.3 V(VREF + = VDDA)且采样信号输入为 1 V 时,转换后的结果为:(4095 / 3.3)× 1 = 1240.9 = 0x4D9。然而,若模拟的参考电压有波动,采样输出也会受到影响。假设参考电压的波动为 40mv,此时的转换值为:(4095 / 3.34)× 1 = 1226 = 0x4CA(VREF + 在峰值处)。由此可计算出两者的误差:误差 = 0x4D9 – 0x4CA = 15。可见,参考电压对 ADC 采样转换的影响极大,稳定的参考电压源是非常必要的。
在正常情况下,为了获得的 ADC 转换精度,选取的 ADC 动态范围要与待转换的信号幅度相匹配。假设待转换信号在 0 ~ 2.5 V 之间变化,值不会超过 2.5V,并且 VREF + 等于 3.3 V。ADC 转换的信号值为 3102 (2.5 V),如下图所示。

从图中可以看出,有 993 个未被使用的转换(4095 – 3102 = 993)。这意味着浪费了很多的转换范围,简单来说就是影响了分辨率,导致转换后信号精度下降。下面我们深入分析一下:
- 如果选取的参考电压为 3.3V,则分辨率为:3.3 / 4095 = 0.806mV。
- 如果选取的参考电压为 2.6V,则分辨率为:2.6 / 4095 = 0.635mV。
两者分辨率之差为:0.806 - 0.635 = 0.171mV。
在正常使用过程中,ADC 采样电路中常常会伴随高频 / 低频干扰信号。因此,在设计时一般会增加滤波电路,以提高输入采样信号的纯净度。如下图所示。

从图中可以看到,电阻 RAIN 和电容 CAIN 组成了 RC 网络。这部分器件的取值对输入信号有不同的影响,如果取值不合理,就可能导致 ADC 转换的结果不准确。
在设计采样电路时,需要考虑该 IO 附近是否存在高频的信号源。如果有
高频信号源存在,信号变化会影响采样 IO,导致 ADC 转换结果出现误差。常见的如下:
- 内部输出高速的数字信号:IO 信号的高速变化会产生高频噪声。比如输出 PWM 信号的频率高达 100KHz 以上。
- 高频信号 IO 与采样 IO 距离很近或者 PCB 的走线出现交叉:这种情况会出现串扰。
PCB 走线至关重要,并非简单的连线接通就行。如果采样电路附近会产生较高的电磁辐射,就有可能将电磁辐射引入采样,从而产生高频干扰。还有一种情况,就是高速信号与 GND 两者很近,走线平行,很有可能会形成电磁场,从而造成干扰。
综上所述,在 ADC 的实际应用中,我们需要充分考虑这些外部因素可能带来的误差,通过合理的设计和优化,尽可能减小误差,提高 ADC 采样的准确性和可靠性。