
很多搞嵌入式或者硬件设计的朋友第一次认真思考“ADC输入阻抗”这个问题往往都是因为一个现象采样出来的电压怎么比实际测到的低那么多用一个分压电路去测量电池电压前一刻用万用表量是3.3V进ADC一读好家伙3.1V。又或者同一个信号源接高阻抗输入端的采集板卡还算正常换了个板子波形直接“塌”下去了。这时候去网上搜大概率会看到一堆“ADC输入阻抗要越高越好”、“低阻抗会拉低信号精度”之类的结论。但真按这个思路去改电路在某些场合又发现效果并不好甚至更差。所以“低阻抗”这个东西在ADC输入面前到底算好还是坏我的观点很直接它本质上不是好坏问题而是匹配问题。低阻抗好不好取决于你的信号源是谁你的ADC厂家内部长什么样以及你打算用多快的速度去采这个信号。这篇文章我不想念书就基于这些年踩坑、看手册、改板子的经验把这件事讲透你当个参考。1. 先说清楚ADC输入端的“阻抗”到底指什么讨论“好坏”之前有一个最容易混淆的点ADC的输入阻抗不是一个大一统的固定值它是分场景、分状态的。很多工程师只看数据手册首页那个曲线图或者只看“输入阻抗”一个参数就打天下了这是大忌。1.1 直流输入阻抗 vs 动态输入阻抗ADC的输入端通常可以抽象成两部分一个等效的直流输入电阻Rin_dc以及内部采样保持电路里那个开关和采样电容。直流阻抗很好理解对某一个特定频率下常见是直流或低频从引脚往里看过去的等效电阻。比如你的ADC内部没有做前端缓冲很多高速SAR ADC都不做那引脚直连的就是一个由多路复用开关、采样开关、电容组成的网络。动态阻抗则是不断变化的。当采样开关闭合的那一瞬间内部的采样电容会从信号源“抽”走一股电流这时候从信号源看过去ADC的输入阻抗低得吓人可能只有几百欧姆甚至更低。开关断开的时候输入又变成了高阻。也就是说同一个ADC在采样瞬间和保持阶段输入阻抗能差好几个数量级。这一点特别重要因为很多“低阻抗不好”的论调其实对应的是静态电阻拉低了信号源而很多“低阻抗有必要”的场景恰恰是在那个瞬态抽电流的阶段。1.2 为什么大家习惯性认为“ADC输入阻抗越高越好”这个观念有一定道理但被过度泛化了。高输入阻抗的最大好处就是“接入即不打扰”。比如你用一个内阻高达几十千欧的传感器pH电极、压电薄膜、某些光敏电阻如果ADC输入阻抗不够高分压效应会直接吃掉你可能只有几十毫伏的真实信号。典型的计算公式是这样的假设信号源开路电压是Vs内阻是RsADC输入等效电阻是Rin那么ADC实际采集到的电压是Vadc Vs × Rin / (Rs Rin)你要想让误差小于0.1%Rin至少要比Rs大999倍。举个实例我的一个传感器板载放大器输出阻抗是1kΩMCU内置ADC的输入阻抗手册标称是100kΩ看起来够大了对吧算一下1k / (1k 100k) ≈ 0.99%这已经引入了1%的误差。在很多电池电量检测、电流互感器采样场景里1%的误差足以让系统误报警。所以说高输入阻抗对于“源内阻较大”的场景几乎就是救命稻草这也是为什么仪器仪表类ADC比如TI的ADS124S08这类24位Σ-Δ ADC输入级还专门加了可编程增益放大器和缓冲器目的就是极尽所能把输入阻抗做得极高。1.3 好坏的判断要绑定“信号源内阻”我再强调一遍我自己的工程判断标准哈当信号源内阻小于1kΩ比如运放输出、稳压电源分压后经跟随器低输入阻抗10k以上通常不会有明显问题甚至可以利用低阻抗来吸收噪声。当信号源内阻在1kΩ到100kΩ之间就要开始算了。如果ADC输入阻抗只有几十kΩ分压误差会达到百分之几基本不可接受。必须想办法提高等效输入阻抗比如加跟随器。当信号源内阻超过100kΩ别想了ADC不配缓冲器根本没法直接测纯靠高输入阻抗也不一定救得回来因为还有偏置电流、漏电流这些次级效应。判断“好不好”第一件事就是把信号源内阻和在不同采样状态下的等效输入阻抗都捞出来。这才是专业做法的起点。2. 低阻抗带来的麻烦分压、驱动、建立时间如果非要数一数平时“低阻抗坏事”的几种情况大概能总结成三类直流分压导致增益误差、瞬态抽取电流导致建立时间不够、以及过低的输入阻抗导致前级电路负担过重。2.1 分压效应最直接的精度杀手先来看我之前调试的一个实际案例。设计一块多通道采集板用STM32F4的ADC直接采一个电池电压电池经过两个大电阻分压200kΩ 200kΩ每个电阻都是1206封装选大一点的本意是省电、降低漏电流。结果上电测试ADC读数比万用表低了好几百毫伏。当时我还怀疑是ADC参考电压的问题搞了半天拿公式一套才发现问题就出在分压电阻和ADC输入阻抗上。分压节点的等效源阻抗是两个200kΩ并联约等于100kΩ。STM32F4的ADC输入阻抗手册上写的是“最小几kΩ”那种状态下采样误差直接爆表。用公式就是上面那个Vadc Vs × Rin / (Rs Rin)代入Rs 100kΩRin 6kΩ采集到的电压只有真实值的5.6%。这和实测现象完全对得上。所以当你的信号通道上串联了大电阻或者信号源本身是高阻的时候ADC的低输入阻抗就是一场灾难。这不是ADC本身的问题而是你没给它配好“前端环境”。解决思路也很清晰要么在信号源和ADC之间插入一个高输入阻抗的缓冲放大器要么改用带内部缓冲的ADC要么减小分压电阻网络的总阻抗代价是静态功耗飙升。2.2 信号源驱动能力与瞬态抽取SAR ADC的工作方式跟Σ-Δ ADC完全不同。Σ-Δ ADC里的模拟调制器配合数字滤波器持续对输入信号进行过采样输入端的电流比较平缓而SAR ADC是“采样 - 保持 - 转换”这种间歇式工作在采样保持开关闭合的那一瞬内部电容需要被充到输入电压这个充电电流只能靠外部信号源提供。关键词来了驱动能力。如果信号源阻抗很低比如运放输出内阻小于10Ω它可以在极短时间内把采样电容充到位。但如果信号源是上面那个100kΩ的分压网络RC时间常数变得极大采样窗口关断时电容还没充到目标值这就成了“建立时间不足”转换出来的数字自然不对。计算公式是采样建立的一阶近似V(t) Vfinal × (1 - e^(-t/(Rs Rsw) × Csh))这里Rs是信号源内阻Rsw是采样开关导通电阻Csh是采样电容。假设某ADC的Csh 10pFRsw 10Ω如果信号源Rs 100kΩ那么RC 100010 × 10pF ≈ 1μs。要建立到1/2 LSB以内假设12位精度需要约8.2个时间常数需要8μs以上。而很多MCU ADC的采样时间只有1μs量级这肯定完蛋。低阻抗在这个瞬态过程中反而是“神队友”。信号源阻抗越低采样建立越轻松ADC的采样频率上限越高。这也是为什么对动态性能有要求的场合前端必须放一个低输出阻抗的运放而不只是想着ADC输入电阻够不够大。2.3 别忽略引脚漏电流和偏置电流的次级效应当ADC输入端是高阻抗网络几十kΩ以上时另一个麻烦会冒出来ADC引脚的输入漏电流Leakage Current和偏置电流Input Bias Current。这部分电流在引脚上经过高阻抗源阻抗同样会产生一个电压降造成误差。举个亲身经历某款高精度ADC的数据手册上写着“输入偏置电流最大50nA”看着很小对不对但我的前端源阻抗是100kΩ偏置电流在源阻抗上产生的电压是 50nA × 100kΩ 5mV。如果我的测量目标是020mA电流环对应的15V电压5mV的误差大约等于0.1%满量程在某些计量级应用里就超了。而低阻抗网络对偏置电流的敏感度会低得多。这就是为什么不少高精度仪器在模拟输入端都会专门加“偏置电流中和”或者内部提供驱动力更强的缓冲级。你在评估ADC能不能用的时候数据手册里的“输入阻抗”不能只看电阻表还要看漏电流项两者合起来才是完整的“等效阻抗模型”。3. 低阻抗也不全是坏消息坏场景中的救命稻草那低阻抗真的就是过街老鼠吗不是。在不少场景里低输入阻抗反而能帮你解决麻烦。3.1 电流型传感器的天然搭档光电二极管、光电倍增管这类器件本质是电流源输出信号是光生电流。它们需要负载阻抗尽可能低才能保证电流转换成电压后的线性度和响应速度。如果你把这类传感器直接接到一个高输入阻抗的ADC引脚电荷会在寄生电容上积累产生积分漂移响应慢得令人发指。正确的做法是接到一个“跨阻放大器”TIA输入端是虚地等效电阻极低电流被直接变成电压。这个电压由运放的低阻抗输出驱动然后再送入ADC。这时候ADC的输入阻抗是高是低都无所谓因为你的信号源已经是低阻抗了。低阻抗劣势被缓冲器隔离掉了。3.2 抗串扰、抗噪声耦合的“低阻屏障”这个是很多同行容易忽略的。PCB板上的信号线相邻走线之间是有寄生电容和互感耦合的。当一个高阻抗走线紧挨着一个快速翻转的数字信号线容性耦合过来的尖峰电流非常可观很容易在信号上叠加毛刺。而如果这条走线上的源阻抗很低比如运放输出直连那么耦合进来的电流会被低阻抗源“吸收”掉表现为电压扰动很小。反之如果源阻抗很高那么很小的寄生电流都能制造出几百毫伏的脉冲处理起来极其头疼。所以当你设计的电路面临强干扰环境电机驱动、开关电源、继电器在ADC前端加一级运放缓冲不仅降低了对ADC输入阻抗的依赖也顺带改善了整条链路的抗扰度。低阻抗在这里是一道“泄放通道”。3.3 低阻抗网络可以做天然滤波器有些工程师会故意在ADC输入端前面放一个RC低通滤波器。电阻选得小一点电容选得大一些组成低阻抗网络。好处有两层一是电容容量足够大能更好地滤除高频噪声二是低阻抗网络对后级ADC采样的“电荷反灌”不敏感。怎么理解呢ADC采样瞬间会抽取一定量的电荷如果前端源阻抗较高这些电荷来不及补充会出现瞬时电压短暂跌落但如果有大电容并联在输入端电容本身相当于一个低阻抗电荷池采样电容从大电容里取电荷大电容再慢慢通过前级电阻充电这对输入信号的影响就小得多。一个实用数据很多Precision ADC的数据手册里推荐的外部驱动电路都是“低阻抗运放RC滤波器”组合R选几十Ω到几百ΩC选几百皮法到几纳法。这个RC截止频率通常选在几MHz到几十MHz既不让带宽太受限又能滤掉大部分带外噪声。3.4 低阻抗缓冲器ADC和传感器之间的“婚姻调解员”如果把传感器看成是性格敏感、输出能力弱的一方ADC看成是采样瞬间会“忽然扑过来”的输入端那么低阻抗缓冲放大器就扮演了中间人的角色。它用高输入阻抗哄好传感器用低输出阻抗喂饱ADC。我特别推荐在以下条件下务必加缓冲器传感器源阻抗大于等于ADC输入阻抗的1/20ADC是SAR型采样率较高建立时间紧张信号线上需要走较长距离寄生电容不可忽略需要同时驱动多路ADC输入比如同一个信号同时进两个ADC。缓冲器本身的核心参数不是“低阻抗”三个字而是“在信号带宽内输出阻抗足够平坦”。很多运放数据手册会给出开环增益和输出阻抗曲线你可以估算一下闭环输出阻抗Zout_closed ≈ Zout_open / (1 LoopGain)。通常得当运放在带宽内闭环输出阻抗能做到几个欧姆甚至更低对SAR ADC的采样建立来说绰绰有余。4. 实战怎样判断一个ADC输入“合不合脚”讲了这么多理论基础回到最实际的问题拿到一个ADC怎么快速判断它的输入阻抗适不适合我的设计怎么针对性改善我把自己惯用的流程整理成几个可执行的步骤。4.1 从数据手册里找到“真阻抗”第一件事不要只看“Input Impedance”那个数字。你要找三个东西等效输入电容Csh或者叫Input Capacitance采样开关导通电阻Rsw或者叫Sampling Switch Resistance输入漏电流Ileak或者叫Input Leakage Current。这三项才是ADC输入端口的完整“画像”。很多单片机厂商特别不愿意把Rsw和Csh拆开标而是给一个“等效输入阻抗≈XXX kΩ”。这不是错但不够用。为了估算采样建立时间你必须自己拿到Rsw和Csh然后列一个一阶RC模型f_sample_max ≈ 1 / (2 × π × (Rsw Rs) × Csh × ln(2^n))n是ADC位数后面那个ln(2^n)是建立到1/2 LSB所需时间常数个数。比如12位ADCln(4096)≈8.32也就是需要大约8.3个时间常数才够精确。如果Rs1kΩRsw10ΩCsh10pF时间常数约10ns那么采样保持的建立时间大约80ns完全没问题。但Rs换成100kΩ时间常数变成1μs建立时间就飙到8μs这就很夸张了。4.2 一个算例NTC测温电路怎么搭配才不缩水NTC热敏电阻测温是很多人的入门项目。我当年也做过犯过典型错误。NTC有很多种常见的是10kΩ25℃。你用一个10kΩ精密电阻和NTC串联分压中间节点送进ADC。这个节点的源阻抗怎么样假设NTC在25℃时也是10kΩ那么从中间节点看进去源阻抗是两个10kΩ并联等效Rs5kΩ。如果ADC输入阻抗是100kΩ分压误差约5%算算Rin/(RsRin)100/105≈95.2%误差约4.8%。这对于温度测量来说相当于几摄氏度的偏差完全不能忽略。更严重的情况是NTC阻值随温度变化源阻抗也在变这会导致误差随温度非单调变化标定都很难标。我的建议很粗暴如果你的NTC分压点直接进MCU的ADC分压电阻网络总值尽量控制在10kΩ以下。比如用2.5kΩ的精密电阻10kΩ NTC源阻抗变化约2kΩ量级或者干脆在分压节点和ADC之间加一个运放跟随器。如果空间成本和功耗敏感至少也要选择一个输入阻抗大于1MΩ且输入电容足够小的外部ADC来处理。这个例子非常典型地说明了“低阻抗不好”的真正含义不是ADC不希望看到低阻抗而是高阻抗信号源遇到了低阻抗输入必然降精度。所以你要么把信号源变低要么把ADC输入变高总得选一头。4.3 用万用表和示波器实测“有效阻抗”数据手册再详细也不如自己亲手验证一遍放心。我在实验室里有一个土办法可以快速估算某个ADC通道的等效输入阻抗准备一个可调直流源串联一个已知阻值的电阻Rtest比如100kΩ接到ADC引脚。先让直流源输出一个已知电压V1记录ADC读数D1改变直流源电压到V2记录ADC读数D2因为Rtest和ADC输入阻抗Rin组成分压器ADC读数差的比值(D1 - D2) / (V1 - V2) Rin / (Rtest Rin)从比值得出Rin的实测值。注意事项是这个过程一定要在ADC处于连续采样状态时进行并且让Rtest远大于信号源可能的内阻。这个方法虽然粗糙但能看出“手册标称值”在真实工作状态下有多少偏差。有些ADC在高速采集模式下等效输入阻抗比低频时低很多用这个办法测量会发现明显变化。另外用示波器探头直接接在ADC输入引脚上看波形也会有帮助。如果你看到采样瞬间有一种“向下凹陷”的毛刺说明采样瞬间抽取电流太猛前端源阻抗过高。这个毛刺宽度和深度直接反映出驱动情况和阻抗匹配水平。4.4 通过软件配置改善阻抗问题有些ADC尤其是MCU内置ADC允许你配置采样时间Sampling Time。延长的采样时间本质上是给前端驱动更多的时间去给采样电容充电。这在源阻抗比较高的时候非常有效。比如STM32的ADC采样时间最快是1.5个ADC时钟周期最慢是239.5个周期在部分芯片上是这个量级。为高阻源配备长采样时间是为数不多的软件白嫖方案。我实测过同一个100kΩ分压网络1.5周期采样时读数误差能大到不可用改成239.5周期后精度提升到接近理论值。代价是采样率下降很多但在电池电量检测、温度检测这类低频场景里完全够用。不过还是要再多说一句延长采样时间不是万能的。如果前端源阻抗特别高比如1MΩ就算采样时间拉到几百个周期采样电容依旧充不满。最终还得靠硬件缓冲。5. 常见问题与排查技巧实录最后记录几个我在ADC阻抗上踩过的坑以及排查策略。这些大部分是真实调试中反复遇到的问题网上不一定讲得细但一旦碰上真的会让你怀疑人生。5.1 症状ADC读数偏小而且跟信号源内阻有关这个是我遇到的最高频问题。表现是直流信号看起来是准的但一旦信号源内阻变大读数就明显往下偏。排查时先用公式算算分压比再用数字万用表直接在ADC引脚上测电压。注意数字万用表本身输入阻抗很高10MΩ它测出来的电压往往比ADC实际采集到的要更接近真实值。现象万用表测ADC引脚是3.3VADC读出来却是2.8V。这就说明ADC在采样瞬间把电压拉低了而且万用表的平均效果掩盖了这个瞬态问题。改用示波器设置高阻抗探头触发模式和时基调到微秒级别你能清楚看到采样毛刺。排查要点先量信号源开路电压再量接ADC之后的电压两者有差异多半是分压效应算算阻抗匹配。5.2 症状高速采样时信号毛刺大但低速采样没问题如果你发现把采样率调低读数变稳定调高之后毛刺飞起。这大概率是建立的锅。采样时间不够用、前端驱动能力不足、采样电容充不满三兄弟共同作案。这时你可以用尽可能长的采样时间试一下如果还不行在ADC输入引脚和地之间并联一个几纳法的小电容试试前提是信号带宽允许再不行老老实实加一个缓冲器。并联电容要注意不是越大越好。电容大会明显降低信号带宽如果你测的是一个快速变化的信号相位误差和幅度压缩会让人崩溃。还要注意大部分SAR ADC的数据手册并不建议在输入端放太大电容因为电容和内部采样电容之间会发生电荷共享引入比例误差。建议参考数据手册中的“Source Resistance vs Settling Time”曲线很多ADC手册会直接给你一幅图告诉你源阻抗多高时建议配多大采样电容。5.3 症状传感器直连ADC时线性度很差这个现象常出现在压电式传感器、pH传感器这些高内阻信号源上。所谓“线性度差”其实很多时候不是ADC的非线性误差而是源阻抗随频率变化引起的幅度变化呈现出来像是“非线性的误差”。这种场合的问题其实已经不单单是输入阻抗高不高而是“输入阻抗是否随频率保持稳定”。很多ADC没有内部缓冲输入阻抗会随采样频率变化而变化这会与信号源内阻联合调制信号幅度。这也是为什么高端设备里前端总会放一个高输入阻抗、低输出阻抗的精密运放或专用信号调理芯片。你不需要自己去修ADC而是要把模拟前端当成整个测量链路的一部分来设计。5.4 症状某通道的采样值和其他通道“串扰”如果你的ADC是多通道内部复用通道间切换后立刻采样经常会发现当前通道的读数带着上一个通道的“余温”。这就是所谓的“通道间串扰”或者“电荷记忆效应”。实际原因就是内部采样电容在上一次采样保存的电荷还没来得及完全释放又被用来采样下一个通道的信号。解决方案通道切换后先空采一次或者叫“多余的首个采样”扔掉这次结果延长采样时间如果这些都不行考虑在通道切换后加一个延时让内部RC稳定下来。这个问题的本质依然是“阻抗”和“建立时间”的博弈。通道切换的瞬间模拟输入端的等效源阻抗和采样电容之间需要重新建立稳定设计时尽量别让外部源阻抗太高是对付串扰非常有效的方式。6. 总结一下个人经验低阻抗不背锅匹配才是主线如果非得用一句话来回答标题的问题我会说低阻抗本身不是错错的是高阻抗信号源碰到了低阻抗ADC输入而不自知。在实际设计里我养成了几个基础习惯分享给各位任何ADC输入电路第一个要求不是“把输入阻抗调高”而是“把信号源阻抗算清”。如果信号源阻抗不可控或者变化范围大那就要在ADC前加缓冲级这是最稳妥的方案。当不能用缓冲器成本、功耗限制至少要考虑延长采样时间、降低ADC采样率、并配合并联电容来缓解瞬态抽取问题。设计和调试时“低阻抗”可能是个福音尤其对抗干扰和驱动容性负载的时候关键是评估“在你的具体电压摆幅、频率、精度需求下”的低阻抗是会伤到谁。还有一个容易忽略的点很多ADC在掉电或待机模式下输入阻抗会剧烈下降甚至会通过引脚向外漏电导致外部电路工作异常。所以如果设计里有“ADC睡眠/唤醒”切换一定要在睡眠时把外部信号源和ADC引脚隔离或者用模拟开关切断连接否则对前端电路的影响是很隐蔽的。做硬件设计就是这样很多问题不是“哪里坏了”而是“阻抗匹配没有考虑到位”。把源阻抗、输入阻抗这两个数字放在同一张纸上多数ADC采样精度问题都能找到答案。希望这篇文章能帮你少走一些弯路下次再遇到“低阻抗好不好”的争论心里大概也有数了。