ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

高精度ADC选型实战:从信号链需求到精度预算的完整方法论

高精度ADC选型实战:从信号链需求到精度预算的完整方法论 1. 高精度ADC选型别上来就翻数据手册做硬件这行十几年我见过太多项目在ADC选型上翻车。有的是原理图阶段就埋了雷有的是PCB打样回来才发现采样值跳得跟心电图一样还有的更冤——样机都到EMC测试了才发现ADC在特定频点下被干扰得根本没法用。这些问题的根源十有八九不是ADC本身不好而是选型的时候没抓住关键参数被数据手册首页那几个“亮点指标”带偏了。高精度ADC硬件电路设计选型这件事说复杂也复杂说简单也简单。复杂在于你要同时权衡分辨率、信噪比、采样率、输入类型、接口方式、功耗、封装、成本这七八个维度简单在于只要你搞清楚信号链的真实需求大部分参数是可以一步步推导出来的而不是靠猜或者靠“抄别人家的方案”。这篇文章我打算把高精度ADC选型的完整思路拆开讲。从最核心的几个参数入手解释它们到底意味着什么、怎么计算、怎么权衡然后落到具体的选型流程和实操步骤上。不管你是刚入行的硬件工程师还是做了几年但一直对ADC选型心里没底的老手看完应该都能有一套可复用的方法论。文章里会涉及一些具体的计算过程和实测经验都是我这些年做数据采集、精密测量、工业控制类项目攒下来的不是从教科书上抄的。2. 先搞清楚你的信号到底长什么样2.1 信号链需求分析选型的第一步不是看ADC很多人选ADC的习惯是打开某家半导体厂商的官网筛选分辨率、采样率然后按价格排序。这个顺序是反的。正确的做法是先把你需要采集的信号搞清楚包括它的幅度范围、频率成分、源阻抗、共模电压、有没有直流偏置、信号是单端还是差分、需要多少路通道、采样是连续还是突发。这些信息决定了你对ADC的基本要求而不是反过来让ADC来适应你的信号。举个例子你要采集一个热电偶的输出信号幅度可能只有几十微伏源阻抗不高但需要冷端补偿这时候你关注的重点是低噪声、高增益、低失调漂移采样率可能几百赫兹就够了。但如果你要采集一个振动传感器的输出信号带宽可能到几十千赫兹幅度在几伏级别那重点就变成了采样率、抗混叠滤波和输入范围。同样是“高精度”背后的需求完全不同。我一般会先画一张信号链的草图把传感器、调理电路、ADC、参考源、数字接口这几个环节标出来然后在每个环节旁边写上关键指标。这张图不用很正式手画就行但一定要有。它能帮你避免一个常见的错误把ADC的指标孤立地看而忽略了前端调理电路和参考源对整体精度的限制。2.2 分辨率不是越高越好有效位数才是关键分辨率是ADC选型里最容易被误解的参数。一个24位的ADC听起来很厉害但如果你实际能用的有效位数只有16位那多出来的8位就是噪声。有效位数ENOB才是真正决定你测量精度的指标它和信噪比SNR直接相关计算公式是ENOB (SNR - 1.76) / 6.02这个公式的意思是SNR每提高6.02dB有效位数增加1位。一个标称24位的ADC如果SNR只有85dB那ENOB大约是13.8位也就是说你实际能用的精度大概在14位左右。剩下的10位被噪声吃掉了。那为什么厂商还要标24位因为分辨率是ADC的“理论位数”它描述的是ADC输出代码的位数不代表每个代码都有意义。就像一把尺子有24个刻度但如果你的眼睛只能看清第14个刻度那后面10个刻度就是摆设。选型的时候一定要看数据手册里的SNR或ENOB指标而不是只看分辨率。这里有个实操经验很多高精度ADC的数据手册会在不同增益、不同采样率下给出不同的SNR。比如一款24位ADC在增益为1、采样率为10SPS时SNR是105dB但在增益为128、采样率为1kSPS时SNR可能降到90dB。你要根据自己实际的工作条件去查对应的SNR而不是看首页那个最漂亮的数字。2.3 采样率与信号带宽的匹配奈奎斯特之外还要留余量采样率的选择看起来简单奈奎斯特定理说采样率至少是信号最高频率的两倍。但实际工程中这个“两倍”远远不够。原因有两个一是抗混叠滤波器不可能做到理想的砖墙特性过渡带需要占用频率资源二是高精度ADC在接近奈奎斯特频率时SNR通常会下降。我的经验是采样率至少取信号最高频率的5到10倍。比如你的信号带宽是1kHz那采样率最好在5kSPS到10kSPS之间。这样抗混叠滤波器的设计压力会小很多用二阶或三阶的有源滤波器就能做到足够的衰减。如果采样率只取2.5倍那滤波器可能需要六阶甚至八阶成本和复杂度都上去了而且相位失真也会更严重。另外要注意的是有些ADC标称的采样率是“最大采样率”但在实际使用中如果你用较低的采样率SNR可能会更好。比如一款ADC最大采样率是1MSPS但你在100kSPS下工作SNR可能比1MSPS时高3到6个dB。这是因为内部采样保持电路的建立时间更充裕。所以选型时不要只看最大采样率要看你在目标采样率下的性能。3. 核心参数逐个拆解哪些必须死磕哪些可以妥协3.1 信噪比与信纳比一字之差含义不同SNR和SINAD这两个参数经常被混用但它们有区别。SNR只考虑噪声SINAD考虑的是噪声加谐波失真。对于高精度测量应用SINAD往往比SNR更重要因为谐波失真会直接表现为测量误差而且这种误差是系统性的没法靠平均来消除。SINAD的计算公式是SINAD 20 * log10(信号RMS / (噪声RMS 谐波RMS))如果一款ADC的SINAD是90dB那它的ENOB大约是(90-1.76)/6.0214.7位。你可以用这个公式快速估算任何一款ADC的实际可用精度。选型时我一般会要求SINAD至少比目标ENOB对应的值高3到6dB留出余量给前端电路和参考源的噪声。比如你需要16位有效精度那SINAD至少要达到(16*6.021.76)98dB考虑到余量最好选SINAD在101dB以上的ADC。3.2 输入类型与共模抑制差分输入为什么更香高精度ADC的输入类型主要有单端和差分两种。单端输入简单但抗共模干扰能力差而且容易受地弹和电源噪声影响。差分输入虽然需要更多的外围电路但共模抑制比CMRR高能有效抑制共模噪声而且输入摆幅可以做到更大。我做过一个对比测试同样的传感器信号用单端ADC采集时噪声峰峰值大约是200微伏换成差分ADC后噪声峰峰值降到50微伏以下。差距主要来自共模噪声的抑制。所以对于高精度应用我基本都会优先选差分输入的ADC。差分输入还有一个好处是它可以抵消偶次谐波失真。因为差分信号在传输过程中偶次谐波会以共模形式出现被ADC的差分输入级抑制掉。这对于需要低失真的应用比如音频分析、振动分析很重要。3.3 参考源被低估的精度瓶颈很多人选ADC时精挑细选结果参考源随便用一个LDO或者MCU的电源这是典型的“木桶短板”。ADC的精度上限是由参考源决定的。一个16位ADC如果参考源的初始精度是0.1%温漂是50ppm/°C那你的测量精度不可能优于0.1%温度变化10°C就会引入0.05%的额外误差。参考源的关键参数有三个初始精度、温漂、噪声。初始精度决定了系统误差可以通过校准消除温漂决定了误差随温度的变化很难校准噪声直接叠加到ADC的输出上影响分辨率。我的选型原则是参考源的初始精度至少比ADC的ENOB对应的精度高一个数量级温漂至少比工作温度范围允许的误差小一个数量级。比如你需要16位精度约0.0015%那参考源的初始精度最好在0.01%以内温漂在5ppm/°C以内。噪声方面参考源的噪声密度要低于ADC的噪声密度否则参考源就成了主要噪声源。3.4 采样保持与输入建立时间高速高精度下的隐形杀手高精度ADC内部通常有一个采样保持电路它在采样阶段跟踪输入信号在保持阶段将电压保持住供ADC转换。这个电路的建立时间直接影响高采样率下的精度。如果输入信号的源阻抗较高或者前级驱动能力不足采样保持电路可能来不及建立到足够的精度导致采样值偏低或偏高。数据手册里通常会给出“输入建立时间”或“采样保持 acquisition time”这个参数。你需要确保你的信号源阻抗和驱动电路能在规定的时间内把采样电容充到足够的精度。计算公式是建立时间 R_source * C_sample * ln(1/精度)比如采样电容是10pF源阻抗是1kΩ要达到16位精度1/65536建立时间大约是1k * 10p * ln(65536) ≈ 110ns。如果ADC的采样保持时间只有50ns那就建立不够需要降低源阻抗或者加缓冲器。这个参数在低速高精度ADC里通常不是问题但在高速高精度ADC比如1MSPS以上、16位以上里就是关键。我踩过这个坑一款18位1MSPS的ADC前端直接用电阻分压结果采样值比实际值低了2%后来加了运放缓冲器才解决。3.5 接口方式与数字隔离SPI、I2C还是并行高精度ADC的接口方式主要有SPI、I2C、并行和Σ-Δ专用的串行接口。SPI是最常见的速度快、协议简单、支持多器件级联。I2C速度慢适合低速多通道应用但要注意总线电容和上拉电阻的影响。并行接口速度快但引脚多适合高速采集。选接口时除了速度还要考虑隔离需求。如果ADC和MCU之间需要电气隔离比如工业现场那SPI是更好的选择因为它的单向时钟和数据线更容易做数字隔离。I2C的双向数据线做隔离比较麻烦需要特殊的隔离器。另外要注意的是有些高精度ADC的SPI接口在高速下会有时序问题比如数据建立时间不够。选型时要看数据手册里的时序图确保你的MCU或FPGA的SPI时序能满足要求。我一般会留20%的时序余量避免温度变化或电压波动导致通信失败。4. 从需求到选型一套可复用的实操流程4.1 第一步定义信号链的精度预算精度预算是我每次做高精度采集项目必做的一步。它的核心思想是把系统总误差分配到各个器件上确保每个器件的误差都在可控范围内。具体做法是确定系统的目标精度比如0.01%。列出所有误差源传感器、调理电路、ADC、参考源、电源、PCB布局。给每个误差源分配一个误差预算通常按均方根合成。根据预算选择器件。举个例子目标精度0.01%那总误差的均方根不能超过0.01%。如果传感器误差是0.005%调理电路是0.003%参考源是0.002%ADC是0.004%电源是0.001%那均方根合成是sqrt(0.005²0.003²0.002²0.004²0.001²)0.0074%满足要求。如果某个器件的误差超标就需要换更贵的型号或者加校准。这个预算不用很精确但一定要做。它能帮你避免“ADC选了24位结果参考源只有12位精度”这种低级错误。4.2 第二步根据信号带宽和精度选ADC架构高精度ADC主要有三种架构逐次逼近型SAR、Σ-Δ型和流水线型。它们的适用场景不同架构分辨率采样率特点适用场景SAR8-20位1kSPS-10MSPS速度快、功耗低、无延迟中高速采集、多路复用Σ-Δ16-32位1SPS-1MSPS分辨率高、噪声低、有延迟低速高精度、传感器测量流水线12-16位10MSPS-1GSPS速度极快、功耗高高速采集、通信选型时先看信号带宽。如果带宽在几十千赫兹以内优先考虑Σ-Δ因为它的噪声性能最好。如果带宽在几百千赫兹到几兆赫兹SAR是更好的选择。如果带宽在几十兆赫兹以上那就只能选流水线型了。我个人的经验是对于大多数工业测量和传感器应用Σ-Δ是首选因为它的抗混叠滤波器要求低外围电路简单而且内置的PGA和滤波器能省很多事。SAR适合需要多路复用或者低延迟的应用比如电机控制、电源监控。4.3 第三步算清楚噪声和有效位数选好架构后就要具体算噪声和有效位数了。这一步需要用到数据手册里的噪声密度曲线或SNR指标。我一般会按以下步骤来从数据手册找到目标采样率下的SNR或噪声密度。计算ADC的噪声RMS噪声RMS 满量程 / (10^(SNR/20))。加上前端电路的噪声前端噪声RMS 噪声密度 * sqrt(带宽)。加上参考源的噪声参考源噪声RMS 噪声密度 * sqrt(带宽)。总噪声RMS sqrt(ADC噪声² 前端噪声² 参考源噪声²)。有效位数 log2(满量程 / 总噪声RMS)。如果算出来的有效位数低于目标精度就需要换更低噪声的ADC、更低噪声的前端运放、或者更低噪声的参考源。这个过程可能需要迭代几次但比打样回来发现精度不够要划算得多。4.4 第四步评估外围电路和PCB布局的可行性ADC选型不只是选芯片还要考虑外围电路和PCB布局能不能实现。比如差分输入的ADC需要差分驱动运放运放的噪声和失真会影响整体性能。高精度ADC对电源噪声敏感需要低噪声LDO和足够的去耦电容。参考源需要低噪声、低温漂而且要走独立的走线避免被数字信号干扰。PCB布局要注意模拟地和数字地的分割避免地环路和串扰。我一般会在选型阶段就画一个简单的布局草图看看关键器件能不能放得下走线能不能走得通。如果布局太拥挤可能需要换更小封装的器件或者增加板层。这个步骤能避免选型完成后发现PCB画不出来的尴尬。4.5 第五步成本与供货的平衡最后一步是成本和供货。高精度ADC的价格跨度很大从几块钱到几百块钱都有。选型时要在性能和成本之间找平衡。我的原则是如果精度要求是硬指标那该花的钱不能省如果精度有富余可以选低一档的型号。供货方面要关注器件的生命周期和库存情况。有些高精度ADC是“工业级”或“车规级”供货周期可能很长价格也高。如果项目周期紧最好选有现货或者交期短的型号。另外要注意封装有些高精度ADC只有QFN或BGA封装对手工焊接和调试不友好如果项目量不大最好选SOP或TSSOP封装。5. 实操中踩过的坑和排查技巧5.1 采样值跳动先查参考源和电源采样值跳动是高精度ADC最常见的故障。我遇到过的原因主要有三类参考源噪声、电源噪声、数字接口干扰。排查顺序是用示波器看参考源的交流纹波如果纹波超过数据手册的推荐值就加去耦电容或换参考源。用示波器看ADC的电源引脚如果纹波大就加LC滤波或换LDO。检查SPI时钟线是否靠近模拟走线如果靠近就增加地线隔离或降低SPI时钟频率。检查ADC的接地是否良好特别是模拟地和数字地的连接点。我印象最深的一次是一款24位ADC的采样值一直在跳换了参考源、加了去耦电容都没用。后来发现是SPI时钟线从参考源下面穿过耦合了数字噪声。把SPI时钟线绕开参考源后跳动从200微伏降到20微伏以下。5.2 精度不够先做校准再查温漂如果ADC的精度达不到预期先不要急着换芯片。很多时候是校准没做好或者温漂没补偿。我一般会按以下步骤排查做零点校准和满量程校准看校准后的精度是否达标。如果校准后精度达标但温度变化后精度下降那就是温漂问题需要做温度补偿或换低温漂的参考源。如果校准后精度还是不达标那就是噪声或失真问题需要查前端电路和ADC的配置。校准的方法很简单输入零电压记录ADC的输出作为零点偏移输入满量程电压记录ADC的输出计算增益误差。然后在软件里做补偿。这个方法能消除大部分系统误差但消除不了随机噪声和温漂。5.3 常见问题速查表现象可能原因排查方法解决方法采样值跳动大参考源噪声、电源噪声、数字干扰示波器看参考源和电源纹波加去耦电容、换LDO、隔离数字线精度不够校准未做、温漂、噪声做零点/满量程校准软件补偿、换低温漂参考源采样值偏低建立时间不够、源阻抗高查数据手册建立时间加缓冲器、降低源阻抗通信失败SPI时序不匹配、隔离问题查时序图、示波器看波形降低SPI时钟、加隔离器温漂大参考源温漂、电阻温漂高低温测试换低温漂器件、做温度补偿5.4 几个容易被忽略的细节第一个细节是ADC的输入电容。高精度ADC的输入电容通常在几皮法到几十皮法之间如果前端运放的输出阻抗较高会形成低通滤波器影响建立时间。选运放时要看它的输出阻抗和容性负载驱动能力。第二个细节是参考源的去耦电容。参考源的输出电容不能随便选有些参考源对容性负载敏感容值太大会振荡。要按数据手册推荐的容值来选通常是在0.1微法到10微法之间。第三个细节是PCB的热电偶效应。如果ADC的输入走线用了不同的金属材料在温度梯度下会产生热电势影响微伏级信号的测量。解决方法是用同一种金属走线或者做对称布局抵消热电势。第四个细节是ADC的采样保持电路在切换通道时会有电荷注入导致相邻通道的采样值互相干扰。解决方法是在通道之间加隔离运放或者在软件里做通道间延迟。6. 几个真实项目的选型复盘6.1 项目一热电偶温度采集这个项目需要采集8路K型热电偶温度范围0到400°C精度要求±0.5°C。K型热电偶的输出电压大约是41微伏/°C400°C对应16.4毫伏0.5°C对应20微伏。所以ADC需要能分辨20微伏的电压而且噪声要低于这个值。我选了24位Σ-Δ ADC内置PGA增益设为128这样16.4毫伏的信号被放大到2.1伏接近满量程。ADC的噪声在增益128、采样率10SPS时大约是1微伏RMS远低于20微伏的要求。参考源选了低温漂的2.5V基准温漂5ppm/°C在0到50°C范围内引入的误差小于0.025%。前端用了RC滤波和共模扼流圈抑制热电偶引线上的干扰。PCB布局时把模拟部分和数字部分严格分开参考源走独立的走线。最终实测精度在±0.3°C以内满足要求。6.2 项目二振动传感器信号采集这个项目需要采集压电式振动传感器的输出信号带宽10kHz幅度±5伏精度要求0.1%。压电传感器的输出阻抗很高需要电荷放大器或高输入阻抗的电压放大器。我选了16位SAR ADC采样率100kSPS差分输入。前端用了低噪声、高带宽的运放做差分驱动运放的噪声密度是3nV/√Hz在10kHz带宽内的噪声RMS是3nV * sqrt(10000) 300nV远低于0.1%的精度要求。参考源选了低噪声的4.096V基准噪声密度是1μV/√Hz。这个项目的难点是抗混叠滤波器。采样率100kSPS奈奎斯特频率50kHz信号带宽10kHz过渡带是10kHz到50kHz。我用了二阶巴特沃斯滤波器截止频率20kHz在50kHz处的衰减大约是20dB不够。后来改成四阶衰减到40dB满足要求。6.3 项目三工业现场4-20mA电流采集这个项目需要采集16路4-20mA电流信号精度要求0.05%工作温度-40到85°C。4-20mA信号通过250Ω精密电阻转换成1-5V电压然后送ADC采集。我选了16位Σ-Δ ADC内置多路复用器采样率1kSPS。参考源选了低温漂的2.5V基准温漂3ppm/°C在-40到85°C范围内的误差小于0.04%。精密电阻选了0.01%精度、5ppm/°C温漂的金属膜电阻。这个项目的关键是数字隔离。工业现场的地电位差可能很大ADC和MCU之间需要隔离。我用了SPI数字隔离器隔离电压5kV确保通信可靠。电源也用了隔离DC-DC避免地环路。最终实测精度在0.03%以内温漂在0.02%以内满足要求。这个项目让我深刻体会到高精度ADC选型不只是选芯片参考源、电阻、隔离器、电源每一个环节都不能掉链子。7. 选型之外那些数据手册不会告诉你的经验数据手册里的参数都是在理想条件下测的实际使用中会有各种意外。我总结了几条经验都是踩坑踩出来的。第一条ADC的SNR指标通常是在输入信号接近满量程时测的。如果你的信号只用了ADC量程的一半SNR会下降6dBENOB减少1位。所以选型时要确保信号幅度接近满量程或者选更高分辨率的ADC。第二条ADC的温漂指标通常只标了参考源的温漂没标ADC本身的温漂。实际上ADC的失调和增益也会随温度变化只是通常比参考源小。如果精度要求很高要做高低温测试实测温漂。第三条ADC的噪声在低采样率下通常更好但有些ADC在极低采样率下会有1/f噪声噪声反而变大。选型时要看数据手册里的噪声-采样率曲线找到最佳工作点。第四条ADC的输入范围通常和参考源有关。如果参考源是2.5VADC的输入范围可能是±2.5V或0-5V取决于配置。选型时要确认输入范围是否覆盖你的信号范围避免加额外的电平转换电路。第五条ADC的SPI接口在高速下可能会有时序问题特别是当MCU的SPI时钟和ADC的采样时钟不同步时。解决方法是用MCU的硬件SPI或者用FPGA做时序控制。如果实在不行可以降低SPI时钟频率牺牲一点速度换稳定性。第六条ADC的封装会影响热性能。QFN封装的热阻比SOP小散热更好但焊接难度大。如果项目对温漂要求高选QFN封装并做好散热焊盘。如果项目量小选SOP封装方便手工焊接。第七条ADC的供货周期在选型时就要考虑。有些高精度ADC是“工业级”或“车规级”供货周期可能长达20周以上。如果项目周期紧最好选有现货或者交期短的型号或者提前备货。第八条ADC的评估板是快速验证的好工具。很多厂商提供评估板和配套软件可以在选型阶段快速测试ADC的实际性能。我一般会先买评估板测一下确认满足要求后再画原理图。这个步骤能避免很多选型失误。8. 写在最后高精度ADC选型这件事说到底是一个“匹配”的过程。你的信号有什么特点你的精度要求是多少你的工作环境怎么样你的成本预算有多少这些因素共同决定了你应该选什么样的ADC。没有“最好”的ADC只有“最合适”的ADC。我这些年做过的项目里选型失误的原因往往不是技术不够而是需求没搞清楚。要么是精度预算没做要么是忽略了参考源和前端电路的影响要么是没考虑PCB布局和供货。所以我现在做选型第一步永远是画信号链草图第二步是做精度预算第三步才是翻数据手册。这个顺序看起来慢但实际上省了很多返工的时间。如果你正在做高精度ADC选型我的建议是先把信号链和精度预算搞清楚然后按架构、分辨率、采样率、输入类型、参考源、接口、封装的顺序逐步筛选最后用评估板验证。这个过程可能需要几天时间但比打样回来发现精度不够要划算得多。另外多和厂商的FAE沟通。他们对自家器件的特性很了解能给你很多数据手册上没写的建议。我很多选型经验都是从FAE那里学来的特别是关于器件在实际应用中的注意事项和常见问题。最后再分享一个小技巧如果你不确定某款ADC能不能满足要求可以先在LTspice或TINA里做仿真。把ADC的噪声模型、前端电路、参考源都建进去跑一下噪声分析和蒙特卡洛分析看看有效位数和精度能不能达标。仿真结果虽然不能完全代替实测但能帮你快速排除明显不合适的方案。
返回列表