年初有个做温控项目的朋友找我,说选了一颗24位的Delta-Sigma ADC,板子回来后实测分辨率比预期差了一个数量级,正负几微伏的器件信号硬是读出了几十微伏的抖动。这种问题在工程师群里太常见了——大家普遍把高精度ADC选型当成"查位数、比价格、下单"的过程,却忽略了电路设计里真正决定精度的核心变量。
我这些年做过光纤传感的微弱光电流采集、称重传感器信号调理、医用测温板的ADC选型和外围电路,踩的坑不少,但后面慢慢总结出了一套相对固定的选型流程。这篇文章想认真聊聊我对高精度ADC硬件电路设计选型的经验,核心不是劝你去背数据手册,而是带你理解位数、ENOB、INL、温漂、时钟抖动、基准源这几类参数背后的逻辑,以及怎么把它们落到实际电路上。内容包括架构选择、参数解读、前端驱动、参考电源设计、评估板验证,最后还有两个真实翻车案例复盘。适合正在做仪器仪表、工业采控、医疗电子和嵌入式高精度采集的硬件工程师,也适合刚入门想搞懂选型思路的同学。
1. 先别被"位数"带偏,ADC架构决定了你精度的天花板
选高精度ADC,最容易犯的第一个错误是拿"多少位"当唯一的衡量标准。同一颗24位ADC,测直流和测100kHz信号,性能完全不是一个概念;同一颗24位芯片,放在逐次逼近型和Sigma-Delta型里,适用的场景也有很大差异。所以在翻参数表之前,我习惯先搞清楚自己的应用到底需要哪种架构。
1.1 三种主流架构的基本盘:SAR、Delta-Sigma与Pipeline
高精度ADC市场基本都是三足鼎立:SAR、Delta-Sigma(也叫∑-Δ)和Pipeline。我给初学者一张很直接的对照表,先用它框定方向。
| 架构类型 | 常见分辨率 | 速度范围 | 单次/连续 | 特点与短板 |
|---|---|---|---|---|
| SAR | 12~20位 | 100kSPS~10MSPS | 单次采样,上电即可读 | 延迟低、功耗低、输入等效电容储能型,适合多通道扫描、同步采样 |
| Delta-Sigma | 16~32位 | 几十SPS~几MSPS | 过采样加数字滤波 | 噪声整形,高有效位数,但转换结果有固有延迟,不能直接用于高速闭环 |
| Pipeline | 10~16位 | 几十MSPS~数GSPS | 连续流水输出 | 速度极快,但有效位数受制约、功耗高,适合示波器和通信接收机 |
选型的第一步不是问"我要多少位",而是问"我的信号有多快、我能不能接受延迟"。如果做的是温度、压力、应变这类低频信号,Delta-Sigma几乎是最优解;如果是伺服电流环采样,信号带宽几十百kHz,SAR能提供更小的延迟和更高的通道密度;如果用ADC做雷达中频采集,那就只能上Pipeline,高分辨率和高速度在这个领域往往不可兼得。
为什么要花时间选架构?因为架构直接决定了后续前端电路、滤波器和时钟设计的方向。选Delta-Sigma时,你用到的抗混叠滤波器只需要一阶RC,因为内部已经做了很强的数字滤波;选SAR时,要在采样保持的瞬间给电容充电,驱动放大器和RC网络的设计思路完全不同;选Pipeline时,时钟相位噪声和高速layout的优先级会一下子拉得很高。架构没选对,后续再调电路都很难挽回。
1.2 为什么高精度项目里Delta-Sigma最常见,却不能一竿子全用
Delta-Sigma之所以在精密测量领域占统治地位,核心原因是它用高频过采样换来了低频端极高的有效位数。一个24位的Delta-Sigma ADC,在1kSPS输出速率下ENOB甚至能做到21位以上,这是SAR很难达到的数字。因为它内部有调制器加数字抽取滤波器,混叠抑制能力强,对前端的模拟滤波要求低,再加上现代工艺把模拟部分和数字滤波做在一起,整个链路变得非常好用。
但Delta-Sigma也有明显的"坑":它的输出是连续转换结果中的滤波值,所以存在群延迟。以ADS1262为例,在2.5SPS输出速率下,经过sinc滤波器后建立时间可能长达几百毫秒,这对稳态测量没问题,但如果你想做突变信号的边沿捕捉,或者拿它当多通道动态采集的核心,就非常难受。此外,Delta-Sigma本身的等效输入阻抗偏容性,直接接高阻源会把电荷注入变成电压误差。这也是为什么我在实际项目里,给Delta-Sigma ADC前端加缓冲运放的次数比SAR还多。
另外,Delta-Sigma也不是只有24位一种选择。有些12位、16位的Delta-Sigma通过内部PGA和抗混叠,整体性价比反而很好,比如ADS1232在称重应用里就是经典选择。所以选型逻辑应该拆成两步:先用信号带宽和延迟需求排除一大半,再在剩下的架构类别里根据噪声和精度参数找具体型号。
2. 数据手册里最容易骗人的参数:ENOB、INL、DNL和温漂
厂商数据手册不会写"我其实没那么准",但它会在注释区用一排小字告诉你"以上参数在特定环境、特定采样率、特定输入频率下测得"。高精度ADC选型时,你真正要盯的是有效位数、线性度、温度漂移和噪声谱密度,而不是包装盒上的"24-bit"工艺名。
2.1 有效位数ENOB才是"真实分辨率",别拿位数当精度
ENOB的全称是Effective Number of Bits,它的定义是从SNR(信噪比)倒推出来的等效位数:
ENOB = (SNR - 1.76dB) / 6.02
如果你拿一颗24位Delta-Sigma ADC去测50kHz的正弦波,输出的ENOB很可能只有17位、18位,因为它内部的量化噪声会随信号频率、过采样率变化,动态范围远没有直流或者低频时那么漂亮。读数据手册时,务必找到这两张图:
- ENOB vs 采样速率/输出速率曲线
- ENOB vs 输入信号频率曲线
有些厂商还会给出"无失码分辨率(no missing codes)"和"有效分辨率(effective resolution)",前者往往比ENOB数字更乐观。我见过不少新人,看到标题写"24位ADC",以为LSB就是满量程除以2的24次方,结果做出来的系统噪声根本压不到这个级别。
我的经验是:系统设计时按ENOB+1~2位来留余量。比如你做高精度称重,目标是0.1%的分辨率,那理论上需要10位有效分辨率;但考虑到温漂、噪声分布、电磁干扰,我通常要求ADC的ENOB至少到13位以上,再加数字平均。这样做出来,系统稳定性才经得住批量生产的波动。千万别卡着位数边界设计,否则每批板子的一致性都能让你改到崩溃。
2.2 INL与DNL的工程读法:丢码、线性误差和校准问题
INL(积分非线性)描述ADC实际传输曲线和理想直线的最大偏差,单位常用LSB或满量程ppm表示。DNL(微分非线性)描述相邻码的宽度偏差,如果DNL达到1LSB以上,就说明会出现丢码(missing code)。对高精度应用,我的关注点通常是:
- 测量绝对值(比如称重读数换算成重量):INL是关键,它决定了全量程内最差点的误差是多少。一颗ADC的INL如果是±2ppm FSR,假设满量程5V,意味着最差线性误差约10μV,这通常已经优于多数模拟前端的运放失调误差了。
- 称重、压力、应变等传感器应用:还需要看零点漂移和增益漂移,这两个参数在数据手册里一般写成Offset Drift(μV/°C)和Gain Drift(ppm/°C),它们对温度性能影响很大。
另外失调误差和增益误差并非不可救药,系统里做一次两点校准就能消掉。但INL和温漂很难靠软件校准消除,所以选型时要特别重视。我看到很多项目的数字滤波最后效果不理想,问题根本不是单片机算力不够,而是ADC的INL超过了预期。
2.3 温漂:高精度系统最容易被忽略的"慢性病"
温度漂移是反向低频热噪声,数据手册一般给得很含蓄。举个例子,某个基准源温漂是5ppm/°C,如果环境温度从25°C变化到65°C,40°C温差下输出变化就是200ppm,折合到16位满量程就是13个LSB以上。听起来不大,但如果你做的是工业现场设备,这一项误差往往比ADC本身噪声大好几倍。
我在做多通道温度采集时,会先做一张误差预算表,把所有误差源全列出来:
| 误差源 | 典型值 | 对系统精度的影响 |
|---|---|---|
| ADC量化噪声 | 按ENOB估算 | 随机噪声,可平均缓解 |
| ADC失调温漂 | 0.1~1 μV/°C | 直流偏置,难校准 |
| 基准源温漂 | 3~10 ppm/°C | 满量程缩放误差,最难补偿 |
| 前端运放失调/噪声 | 1~5 μV/°C | 叠加在信号里 |
| 电阻温度系数 | 10~100 ppm/°C | 如果做分压、放大,直接进增益误差 |
误差预算做完,你会发现整个系统误差的"大头"往往不是ADC内部,而是基准源和电阻网络。这也是我在第4部分会专门讲参考电压设计的原因。
3. 前端驱动和采样链路:信号没进ADC,精度已经被吃掉一半
高精度ADC的输入端不是一个干净的"电压表",它内部有采样电容,每采样一次就会从外部吸入一个瞬态电流。这个电流如果驱动不到位,轻则产生增益误差,重则让系统噪声大幅抬高。好多工程师直接拿传感器线怼到ADC引脚上,结果做出来精度很差,还以为是ADC选得不行。
3.1 输入阻抗与采样开关的电荷注入
SAR ADC的输入结构等效为一个RC采样网络,在采样阶段开关闭合,外部源必须给内部电容充至输入电压。如果外部源阻抗高,充放电时间常数就大,在采样窗口内充不满,就会产生幅度误差。Delta-Sigma ADC也有类似的动态输入电流,只是内部有采样电容和缓冲器的差别。
工程上我最常用的做法是:给ADC前端加一个单位增益缓冲运放。这样外部传感器信号由运放硬驱动,ADC的电荷注入由运放的去耦电容提供,基本上就解决了高源阻抗的问题。如果不想加运放,至少保证源阻抗低于几百欧姆,同时在ADC引脚附近放一个0.1μF的C0G电容,给采样开关充当"蓄水池"。
电荷注入的另一面是kTC噪声,也就是采样电容本身的热噪声,这个噪声和采样电容值相关,放大有用信号的同时,噪声也会被放大。所以前端增益设计要斟酌:增益太高,运放噪声跟着放大;增益太低,ADC不能量满,性能浪费。一般我会设计到满量程范围内最大目标信号有效值占到ADC满量程的30%~50%,这样兼顾了噪声和分辨率。
3.2 驱动运放怎么选:低噪声不是唯一指标
很多人在ADI/TI的选型页上挑运放,只会看"低失调、低噪声",实际装上板子后却仍然性能不佳。原因是他们忽略了两个维度:带宽与压摆率、接收全频段噪声的能力。
- 如果信号带宽只有10kHz,你选一个GBW=100MHz的高速运放,它本身热噪声不会太大,但它会把高频干扰和自身的高频噪声同等地放大,如果不加后级滤波,ADC的动态范围会被这些带外噪声消耗掉。
- 如果信号是方波或者阶跃变化,压摆率不足会导致运放输出建立时间过长,在ADC采样瞬间还没稳定,就会引入逐点偏差,看起来像随机噪声,其实是有规律的建立残差。
我的选型公式基本是:运放-3dB闭环带宽 ≥ 10倍目标信号带宽,同时运放输入电压噪声密度 ≤ 1/5 的ADC等效输入噪声密度。举例来说,一颗ENOB 18位、满量程5V、带宽10kHz的ADC,折合等效输入噪声大概是1.8μVrms;那运放的折算噪声就要控制在0.5μVrms以下。这时候看运放的数据手册,通常要找电压噪声密度在5nV/√Hz以内的器件,比如ADA4522、OPA189这类,还不能忽略1/f拐点。
3.3 抗混叠滤波器的RC取值和电容类型
不是所有ADC都需要复杂的有源滤波器。Delta-Sigma ADC因为内部有数字滤波,前端只需要一阶RC滤掉带外大信号,防混叠就够用。SAR ADC如果采样率不高,一阶RC也普遍够了。真正要算的还是这个RC的截止频率和取值。
常见做法:RC的-3dB截止频率设置为信号带宽的2~5倍。过高起不到抗混叠作用,过低会衰减目标信号。比如信号带宽10kHz,采样率100kSPS,我可以用R=1kΩ、C=8.2nF,算下来f=1/(2πRC)≈19.4kHz。
但这里有个新手最容易踩的坑:用错了电容材质。
X7R陶瓷电容在直流偏压下容量会大幅下降,甚至降到标称值的40%以下。你把8.2nF的X7R放在RC里,实际信号带宽可能变成两倍,滤波效果直接打折扣。高精度模拟链路里,我基本只用C0G/NP0电容,或者聚丙烯薄膜电容。C0G的容量随电压和温度变化都非常小,虽然大容量贵一点,但精度系统不差这一点成本。
另外,RC中的电阻也不能随便选普通碳膜电阻,我通常会选金属膜精密电阻或薄膜电阻,温度系数控制在25ppm/°C以内。如果电阻做得不好,它在热噪声之外还会贡献温度漂移,直接影响增益精度。
4. 参考电压和电源才是另一半精度所在
有一种很典型的翻车现场:ADC芯片选了24位,基准用片内自带的,电源用DC-DC直接怼,布板时模拟地和数字地又分得很碎,结果做出来性能还不如别人16位芯片。原因很简单——ADC是对参考电压和电源电位的比值做量化,基准或供电上一丁点波动,都会直接以满量程比例进入数字结果。
4.1 基准源到底用内置还是外置?关键看噪声和温漂
很多高精度ADC内部集成了基准源,比如一些24位Sigma-Delta会带一个约2.5V或4.096V的基准。用内置基准非常省事,但我几乎不在高精度计量类应用里依赖它,除非目标ENOB不超过18位。原因有二:
- 内置基准的噪声通常高于专用外部基准,且温漂指标不够透明。
- 内置基准和ADC模拟电路共享同一个die,数字滤波开关产生的衬底噪声会耦合进来,很难滤除。
外部基准芯片选型时,核心参数是:输出噪声(μVpp)、温漂(ppm/°C)、初始精度和负载调整率。举个例子,满量程5V、目标是20位有效位(约5ppm),LSB大约是5V/1048576=4.8μV,那参考源自身的峰峰值噪声至少要压在2μV以下,折算成有效噪声约0.3μVrms。一般看到输出噪声小于3μVpp、温漂小于3ppm/°C的基准芯片,比如ADR4525、REF5025、LT6655这类,才配得上高精度ADC。
基准输出的去耦也要讲方法。低速ADC可以在基准引脚旁边放一个10μF的钽电容并再并联0.1μF的C0G,形成一个低阻电源轨。如果基准要驱动多个ADC,最好在基准输出再加一级缓冲运放,避免负载变化引起基准电压局部压降。
4.2 去耦、磁珠与地的处理:高精度布板的核心心得
高精度布板很容易走两个极端:要么对地分割如临大敌,要么完全无视噪声分区。我的经验是:统一地平面,不要搞复杂分割。现代ADC内部有很好的ESD保护和衬底连接,明确分隔模拟地和数字地反而容易让回流信号绕大圈,增加地弹和环路面积。
在电源上,我习惯的做法是用LDO给模拟电源供电,数字电源与模拟电源之间用磁珠或0Ω电阻隔离,再用RC/π型滤波进一步去耦。磁珠选型看直流电阻和额定电流,太高会压降、太低隔离效果差,高频段阻抗一般在几十到几百欧姆。选电感时同理,DCR要小、自谐振频率要高于目标噪声频段。
布置去耦电容时,位置比数量重要。每个模拟电源引脚附近都要放一组高频去耦电容,我一般放0.1μF C0G加1~10μF X7R组合,紧贴着引脚,过孔直接打到底层地平面,保证回流路径极短。基准引脚、参考引脚旁边的小电容,千万不要放远了,远处放会导致寄生电感加大,高频噪声抑制能力直线下降。
GND走线也要注意:ADC输入信号的返回路径和采样开关的电流返回路径必须在同一条"短而宽"的地线上汇入统一地平面。如果地平面被细长的缝隙割断,或者出现一个长长的槽,高精度ADC的二次谐波、互调失真就会明显变差,原理图看起来一样,但实测会差很大。
5. 评估板不是玩具,它是最好的选型验证工具
选型不能只看数据手册,尤其是采购一两百元的精密ADC,我更推荐先申请评估板来验证。评估板的成本看上去高,但它能给你三个东西:一是真实系统的底噪数据,二是正确的参考布局,三是一套官方软件配置项,这比你自己闭门造车省太多时间。
5.1 拿到评估板先做哪几项测试
评估板到了以后,不要急着接传感器就测。我的顺序是这样的:
- 输入直接短接到地或低阻源,用官方软件采集几千个样本,看码值分布。计算标准差,再按满量程除以2的N次方换算成实际噪声,折算出真正的ENOB。
- 输入接一个高精度、低噪声直流源,比如电池加分压电阻或者标准电压源,采集不同输入点,看ADC输出码与理想码的偏差,评估失调和增益误差。这一步可以验证你从原理图上读到的基准初始精度是不是真的。
- 用信号发生器输入一个纯净正弦波,配合FFT功能测SNR、THD、SFDR。注意信号源的噪声和谐波不要比ADC更差,否则你会误判成ADC的问题。
- 检查电源电流和热感,高精度ADC的模拟电源和数字电源如果滤波不当,局部发热也会通过衬底导致失调漂移。
如果评估板测出来的ENOB比手册标称低很多,先别怀疑芯片有问题。第一步看软件配置:PGA是否开启、基准是内部还是外部、输出速率是多少、输入缓冲器是否使能;第二步看信号源质量;第三步再看板上的跳线设置。我遇到过不止一次,配置不对导致性能减半。
5.2 从评估板到量产板:哪些能抄,哪些必须改
评估板的原理图和layout是厂商反复验证过的,很大程度可以照抄。我会重点抄这几部分:
- 输入前端的RC参数和接口电路。
- 基准芯片的外围电容配置和参考去耦方式。
- ADC电源引脚的去耦电容数量和位置思路。
- 模拟地与数字地的连接方式,通常是通过一个低阻桥或配置点连接。
但评估板并不是万能模板,量产板上你往往会做这些改动:
- 修改输入滤波器以匹配自己的信号带宽,而不是照搬评估板默认值。
- 增加输入保护和ESD器件,注意保护器件本身的电容会改变前端RC特性,必须在焊接后重新测一遍ENOB。
- 更换电源方案,评估板常用高性能LDO,如果你量产板上用了DC-DC,就要额外增加LC滤波或派型滤波,保持ADC电源的噪声水平。
从评估板到量产板,我习惯再跑一遍第5.1节里的四项测试,作为设计验收的基线。只有量产板复现了评估板的性能,这颗芯片才算真正选对了。
6. 两个真实翻车案例,复盘后我把经验写成了清单
讲了这么多理论,最后分享两个我自己踩过的坑。它们非常典型,一个栽在"位数崇拜"上,一个栽在"过度分地"上,都对最终性能造成了难以忽视的影响。
6.1 案例一:24位ADC只做出了17位有效精度
几年前做一个光电信号采集模块,光电流经过跨阻放大后变成电压信号,再送进一颗24位Delta-Sigma ADC,数据手册上写着ENOB 20bit以上,我信心满满地画完板子打样。结果实测有效数据在满量程10V的情况下,底噪峰值达到200μV以上,折算下来只有17位多一点。
排查过程基本是按火线追的:先怀疑单片机数字噪声,把数字通信速率降到最低并加隔离,无效;换外部基准,稍微好了10%;最后才发现问题出在跨阻放大器和ADC之间那条信号线。光电信号源内阻很高,我直接引线到ADC,而那个ADC开启内部PGA后输入阻抗更容性,长线引脚上的寄生电容和电阻形成了低通滤波,同时采样开关的电荷注入耦合回高阻抗节点,在信号上叠加了一个触发式尖峰。
解决办法是加了单位增益缓冲运放,从跨阻放大器输出端硬驱动到ADC输入,并在ADC引脚前放了一个1kΩ加10nF的RC滤波器。改动后的底噪从200μV降到50μV,ENOB恢复到19位以上。这颗板子让我彻底记住:数据手册的ENOB是ADC自己的上限,不是系统上限,前端任何高阻抗节点都能轻易把它打成17位。
6.2 案例二:"完美"分割地反而引入了地弹噪声
另一个项目是16通道ADC采集板,我当时追求"模拟地干净",把模拟区的地平面和数字区的地平面完全隔开,只在ADC下方焊盘处用磁珠连了一次。测量结果很诡异:信号接地时输出码仍带明显的毛刺,频率分量像地弹脉冲,而且数字接口读写时噪声明显变大。
后来用示波器探针测模拟地和数字地之间的电位差,发现每当地址线翻转时,跨接磁珠两端就有几十毫伏的尖峰。原因是我把高频数字回流电流硬生生逼到磁珠上,导致模拟地电位跟着数字地跳变,模拟性能当然就毁了。
痛定思痛,我把板子改成统一地平面,不再分割模拟地和数字地,只保证模拟器件集中在某一区域,数字器件走线远离模拟输入,把过孔数量加密保证回流面积最小。同样的电路,同样的芯片,底噪竟然降了30%以上。自此我对地分割的态度就是:除非你有极其充分的高速混合信号理由,否则优先用统一地平面,配合合理布局和去耦来解决噪声问题,而不是靠物理割地。这个经验对很多声称"模拟地和数字地一定要分开"的老教程来说,算是很实际的修正。
踩过这两个坑之后,我现在的选型流程已经固定下来:需求先列信号带宽、目标ENOB和温度范围,再选架构;找候选型号后重点比较ENOB曲线、INL、温漂和基准噪声;申请评估板做基线测试;最后重复测一遍量产板。整套流程走下来,绝大多数高精度ADC项目的风险都能在打样前被消灭干净。
最后分享一个小技巧:读任何ADC数据手册时,先看首页旁边那排小字注明的测试条件,特别是采样率、输入频率、供电电压和环境温度。同一颗芯片,在理想条件下和恶劣条件下可能是两个完全不同的器件。拿我常用的经验来说,如果一个品牌只在"25°C、最优源、最优滤波"下列ENOB,而另一个品牌敢在"工业级温度范围、常见前端下"给ENOB,那后者的参数往往更值得信任。你要做的,不是背参数,而是读懂它到底在什么条件下说话,再用自己的验证数据把它拉回现实。