ADC 读数为什么不准?从输入电路查到采样时序

4236 字
21 分钟
ADC 读数为什么不准?从输入电路查到采样时序

同一块板上,ADC 接低阻信号源时读数正常,换成电阻分压后却偏低;单通道测试正常,加入扫描后又出现偏差。这类问题经常发生在输入电路和采样配置之间,单看 ADC 的标称位数很难判断原因。

SAR ADC 只在采集窗口内给内部电容充电。窗口太短,输入尚未建立就开始转换;参考电压取值不准,换算结果会产生比例偏差。两种误差都可能表现为稳定的错误读数,增加平均次数通常无效。

下面的计算以常见 SAR ADC 为对象,采用 12 位、3.3 V 的示例参数。其他架构的输入特性和时序有所不同,可参见ADC 架构文章。

1. 从输入电压到数字结果#

1.1 ADC 测量的是输入与参考的关系#

在理想模型中,ADC 将输入相对参考电压的位置编码,而不是直接输出一个带单位的电压。软件只有使用与硬件相符的参考、量程和编码规则,才能把数字还原为测量值。前端分压或放大后,还需要继续换算回原来的物理量。

1.2 实际链路中的误差从哪里进入#

输入端的源阻抗、漏电和采样电容决定了实际采集到的电压;参考源和 ADC 的失调、增益、非线性影响转换结果;软件还可能使用了错误的量程或参考值。同一种读数偏差可能由不同环节造成,需要通过改变实验条件来区分。

ADI 原厂 SAR ADC 的采样保持与逐次逼近结构
ADI 原厂 SAR ADC 的采样保持与逐次逼近结构

图 1:ADI MT-021,Figure 1,PDF 第 1 页。这里的采样保持网络决定了输入端并不是无限高阻的理想电压表。原文

1.3 位数与码宽提供怎样的分辨能力#

对 12 位、参考电压为 3.3 V 的理想单极性 ADC:

q=Vref212=805.66 μVq=\frac{V_{ref}}{2^{12}}=805.66\ \mu\mathrm{V}

这里用 2N2^N 定义码宽。把端点 4095 强制映射到 3.3 V 是另一种软件标定约定,不能由此推断理想量化器每个码宽就是 3.3/40953.3/4095。计算时要明确约定,并避免把最高码误当成输入仍可无限增加。

2. 用误差指标描述“不准”#

评价 ADC 时,通常分别考察直流偏差、重复测量的分散程度、静态线性度和交流信号的失真与噪声。

2.1 均值偏差与随机波动#

固定输入采集几千个原始码,分别统计均值、标准差、最小最大值和直方图。均值偏移主要提供系统误差线索,分布宽度提供噪声线索。高斯噪声的峰峰值还随记录长度变化,不能把一次记录的最大最小差直接当成固定精度指标。

特征首先怀疑有辨别力的实验
各输入电压都偏近似相同的电压失调、偏置与漏电用安全范围内的低、中、高三个直流点拟合
输入越高,绝对误差越大参考源、分压比、增益同时测参考,换算比例误差
延长采集时间后误差下降源阻抗过大、建立不足固定 ADC 时钟,只改变采集周期
换通道顺序,误差跟着变采样电容残留电荷交换高低电压通道或增加验证用空采
随通信、PWM 周期变化耦合、参考扰动、混叠记录时序并改变外设频率

2.2 静态线性度:DNL 与 INL#

对第 kk 个码,若相邻转换阈值相差 WkW_k,微分非线性定义为 DNLk=Wk/q−1DNL_k=W_k/q-1。码宽为零时,DNL=−1DNL=-1,对应缺码边界。选型时应检查手册是否保证无缺码,典型曲线只能作为参考。

INL 描述转换阈值相对参考直线的偏离。端点法和最佳拟合法的结果不同,比较器件时需采用相同定义。两点校准可以修正增益和失调,校准后仍会保留非线性误差。指标定义见 ADI MT-010。

2.3 动态测量:SNR、SINAD 与 ENOB#

正弦测量通常使用 SNR 和 SINAD:前者在规定带宽内排除直流与谐波,后者计入谐波失真。对满量程正弦,常用 ENOB=(SINAD−1.76)/6.02ENOB=(SINAD-1.76)/6.02;测得 68 dB 时,约为 11.0 bit。ENOB 是动态测试指标,直流分辨能力另看码分布和输入噪声。

测试需记录输入幅度、频率、采样率、分析带宽、FFT 窗函数和谐波处理方式。输入低于满量程时,还应说明是否做幅度归一化。ADI MT-003,第 5~6 页

常见的量化噪声 q/12q/\sqrt{12} 来自均匀误差模型。缓慢直流、周期锁定输入或缺乏抖动时,量化误差可能与信号相关。平均 MM 次可提高 12log⁡2M\tfrac12\log_2M 位的估算,依赖样本噪声独立等条件。ADI MT-001推导了理想量化模型的前提;MT-004进一步区分输入噪声、有效分辨率和 ENOB。

3. 输入驱动与采集建立#

SAR ADC 的采集时间有限。即使输入保持不变,采样电容也需要通过源阻抗和内部开关电阻充电,才能接近该电压。

3.1 采集与转换是两个阶段#

SAR 转换一般包含采集与转换两个阶段。采集时开关闭合,外部电路给内部电容充电;进入保持后,逐次逼近过程才对这次样本做判断。详细过程见 ADI MT-021。

ADI 原厂 SAR ADC 采集窗口与转换窗口时序
ADI 原厂 SAR ADC 采集窗口与转换窗口时序

图 2:MT-021,Figure 2,PDF 第 2 页。这是通用 SAR 示意,不能直接当成某款 STM32 的引脚时序。

3.2 从允许误差反推采集时间#

若先用单一 RC 近似输入网络,满量程跳变后的残余误差为:

Ve(t)=ΔVe−t/τ,τ=RtotalCsampleV_e(t)=\Delta V e^{-t/\tau},\qquad \tau=R_{total}C_{sample}

对满量程阶跃,希望误差不超过半个 LSB,就需要:

tacq≥(N+1)ln⁡(2) τt_{acq}\ge (N+1)\ln(2)\,\tau

12 位约为 9.01τ9.01\tau。假设总串联电阻为 50 kΩ,等效电容为 8 pF,则 τ=0.4 μs\tau=0.4\ \mu s,至少需要约 3.60 μs3.60\ \mu s。这里的 8 pF 是计算假设,不能当成所有 MCU 的内部电容;实际还要加上开关电阻、引脚寄生和驱动器的动态响应。

不同源阻抗下的 ADC 采集建立误差模型
不同源阻抗下的 ADC 采集建立误差模型

图 3:一阶 RC 的计算结果。纵轴按 12 位满量程阶跃换算为 LSB;曲线没有包含运放多极点、输入开关回冲和漏电。

3.3 将时间预算换成可配置的采集周期#

继续使用上述假设,若 ADC 时钟为 21 MHz,3.60 μs 对应至少约 75.7 个采集周期。假如目标硬件只提供 56 和 84 周期这两个相邻选项,56 周期约为 2.67 μs,模型中的残余误差约为 5.21 LSB;84 周期约为 4 μs,残余约为 0.186 LSB。因此应选 84 周期,并进一步检查器件参数上限所需的裕量。

这些结果只验证假设中的 RC 建立项。ST AN2834 Rev 10,第 4.2.6 节进一步区分各系列的采样时间限制;具体器件的开关电阻、电容上限与最小采样条件仍须代入重算。

3.4 高阻分压还会放大漏电误差#

电阻分压的源阻抗是上下电阻的并联值,而不是只看上臂。比如 100 kΩ 与 100 kΩ 分压,戴维南电阻是 50 kΩ;低功耗分压做得很大时,采集建立和输入漏电往往比量化误差更早成为问题。

漏电造成的是另一种误差:近似为 ΔV=IleakRth\Delta V=I_{leak}R_{th}。若仅作预算,假设相关漏电界限为 100 nA,50 kΩ 就对应 5 mV,约为 6.21 个 12 位 LSB。延长采集时间不会消除这项直流偏差。这里的 100 nA 是计算假设,应由目标器件的温度范围内最大输入漏电及板级漏电预算替换;AN2834 的第 3.2.7 节与第 4.4 节可配合阅读。

ADC 前端并电容可以提供瞬态电荷,但也会引入新的恢复时间。扫描到该通道时电容被扰动,下次访问前能否恢复,要看通道间电压差、访问周期、外部电容和供电路径。外部电容很大,并不意味着可以忽略驱动器稳定性,相关问题见运放容性负载与补偿。

4. 参考源与比例误差#

参考电压决定 ADC 的量化刻度。实际参考值与软件使用的值不一致,会使换算结果产生比例误差。

4.1 参考值如何进入换算结果#

理想情况下,忽略量化边界:

D≈2NVinVrefD\approx 2^N\frac{V_{in}}{V_{ref}}

实际参考是 3.27 V,程序却按 3.30 V 换算,结果约放大 3.30/3.273.30/3.27,比例误差为 +0.917%+0.917\%。在 2 V 输入附近,就对应约 +18.35 mV,远大于一个 12 位 LSB。

参考电压取值错误造成的输入相关误差
参考电压取值错误造成的输入相关误差

图 4:参考取值偏差造成的比例误差,计算范围限于 ADC 未饱和区间。

4.2 静态参考误差与动态参考扰动#

参考源要同时满足静态精度、温漂和动态供电能力。某些 ADC 的参考脚也会汲取脉冲电流,去耦网络与布局应按手册处理。不能只测到直流电压正确,就排除参考源的动态问题。

4.3 比例测量的抵消条件#

如果传感器输出本身与激励电压成比例,而 ADC 又使用同一激励作为参考,比例测量可以抵消一部分激励变化。例如电阻桥和电位器常有这种条件。内部参考通道则可以辅助估算供电,但要确认目标型号是否提供工厂校准值、校准温度、要求的采集时间以及对应公式,不能直接套其他系列的宏。

5. 扫描顺序与采样频率带来的误差#

单通道直流测试不能覆盖所有采样问题。多个输入共享采样网络时,会出现前后通道相互影响;输入中存在较高频率成分时,还会出现混叠。这两类误差都与采样过程有关。

5.1 前一通道的残留电荷#

单 ADC 依次扫描多个通道时,前一个通道的电荷状态会影响后一个通道的建立。高阻通道尤其明显。一个实用验证是让两个相邻通道分别接稳定的高、低电压,交换扫描顺序,再延长采集时间。如果偏差随顺序和采集时间系统变化,就有了建立不足的证据。

可采取的措施包括降低源阻抗、增加采集时间、使用合适缓冲器以及调整扫描顺序。增加一次空采可以用于定位或在预算允许时缓解问题,但它减少有效吞吐率,也不能自动保证达到手册精度。

5.2 通道之间的采样时差#

多路扫描还不是同时采样。电压、电流、相位或桥路差分量需要对齐时,要计算各 rank 的采样时刻偏差;若不能接受,应评估多 ADC 同步模式或专用同步采样器件。DMA 只搬运数据,不会消除模拟采样的时间差。

5.3 高频干扰怎样混叠到测量带内#

即使输入驱动和参考源都正常,带外干扰也可能进入最终结果。采样后的频率表现取决于原频率与采样率的关系,因此一段缓慢起伏的数字波形,未必来自低频扰动。

ADI 原厂时域混叠示意
ADI 原厂时域混叠示意

图 5:ADI MT-002,Figure 4,PDF 第 5 页。原文

以 1 kS/s 采样,995 Hz 的干扰可以表现为 5 Hz。进入数据后再做低通,5 Hz 干扰与真实的 5 Hz 信号已经难以区分。因此模拟抗混叠处理发生在采样之前,数字滤波不能事后恢复丢失的频率身份。

ADI 原厂过采样与模拟抗混叠滤波器过渡带
ADI 原厂过采样与模拟抗混叠滤波器过渡带

图 6:MT-002,Figure 6,PDF 第 7 页。提高采样率可以放宽模拟滤波器的过渡带要求,但后续若要降采样,仍需先做相应数字低通。

6. 误差预算与校准#

比较各项误差前,需要统一折算位置、单位和工作条件。例如都换算为 ADC 输入端的毫伏数,并注明温度和校准状态。

6.1 最大误差界限的合成#

假设在同一工作点折算到输入端后,参考误差界限为 1.0 mV、前端增益误差为 1.5 mV、失调为 0.4 mV、ADC 剩余误差为 0.8 mV。各项直接相加,得到保守静态界限 3.7 mV。若采用平方和开根号(RSS),则需另行说明各分量的统计分布和相关性,所得结果按相应统计含义使用。

6.2 两点校准能修正什么#

两点校准可拟合 V=aD+bV=aD+b,修正近似线性的增益和失调。它不能修复非线性、削顶、错误通道顺序或采集时间不足。至少再留一个独立电压点验证,并改变温度或供电检查系数是否仍有效。零输入附近还可能受单极性 ADC 下限截断影响,不宜用已经削顶的点估计真实失调。

6.3 标准不确定度与相关项#

器件最大误差、重复测量标准差和校准证书的不确定度,不是同一种统计量。若测量模型为 y=f(x1,…,xm)y=f(x_1,\ldots,x_m),在一阶线性化足够准确的条件下,合成标准不确定度应包括灵敏度与协方差:

uc2(y)=∑ici2ui2+2∑i<jcicjcov⁡(xi,xj),ci=∂f∂xiu_c^2(y)=\sum_i c_i^2u_i^2+2\sum_{i<j}c_ic_j\operatorname{cov}(x_i,x_j),\qquad c_i=\frac{\partial f}{\partial x_i}

例如 V=DVref/2NV=D V_{ref}/2^N,参考源的灵敏度为 D/2ND/2^N。若测量值为 2 V,参考相对标准不确定度为 0.05%,该项就是 1 mV;若独立的重复测量均值标准不确定度为 0.2 mV,两项合成约为 1.020 mV。这里的输入都是标准不确定度,不能把“最大 ±0.05%”未经分布假设直接代入。扩展不确定度 U=kucU=ku_c 还要说明覆盖因子;k=2k=2 并非对任意分布、任意自由度都严格对应 95%。方法依据见 NIST:不确定度合成。

共用参考源或激励时,需要保留相关项。比例测量中的部分误差抵消正是由这种相关性产生的,应按原始测量方程传播误差。预算中还需列明各项的单位、温度条件、统计含义和校准后残差。

7. 板级排查步骤#

7.1 建立可重复的基准条件#

先保存原始码,并在 ADC 引脚处测输入电压和参考电压。记录供电、时钟、采集周期、通道顺序、信号源阻抗以及是否开启其他外设。万用表和 ADC 的带宽、积分时间不同,比较时要使用足够稳定的直流输入,并把仪表自身的不确定度算进去。

7.2 每次实验只改变一个主要条件#

先用低阻直流源做低、中、高三个点,固定采样时序;再接回分压和缓冲器;然后开启多通道扫描;最后逐项恢复 PWM、通信和正常 CPU 负载。每一步保存均值、标准差、样本数量与配置。

怀疑建立不足时,保持输入与 ADC 时钟不变,只增加采集周期。若均值逐步趋于稳定,而标准差变化不大,应优先检查建立时间;若仍有相同比例偏差,则测量参考电压并核对分压比。

8. 资料与复现#

ADI 原始 PDF 保存在本文 sources/,图像出处、页码和校验值见 SOURCES.txt。建立误差和参考误差曲线均为模型计算结果,生成代码为 scripts/generate-signal-chain-figures.py。

文章分享

如果这篇文章对你有帮助,欢迎分享给更多人!

ADC 读数为什么不准?从输入电路查到采样时序
https://nekorain.xyz/posts/adc-accuracy-troubleshooting/
作者
NekoRain
发布于
2026-10-16
许可协议
CC BY-NC-SA 4.0

评论区

Profile Image of the Author
NekoRain
永远相信美好的事情即将发生 Always believe that wonderful things are about to happen
公告
这里是小雨的模拟小窝,白天调电路,晚上写点温柔碎碎念。希望你来的时候像低噪声运放一样稳定,走的时候带一点点开心呀。
音乐
封面

音乐

暂未播放

0:00 0:00
暂无歌词
分类
标签
站点统计
文章
28
分类
11
标签
89
总字数
224,088
运行时长
0 天
最后活动
0 天前
站点信息
构建平台
Local
博客版本
Firefly v6.12.1
文章许可
CC BY-NC-SA 4.0

文章目录