简介:这份PDF技术文档面向使用高分辨率全差分输入ADC的硬件工程师与信号链设计者,针对单端双极性信号难以直接匹配差分ADC输入的问题,给出将单端信号转换为差分信号后再送入ADC的完整电路方案。文档围绕差分输入的共模抑制优势展开,讲解电阻网络设计、直流偏置点设置与电压参考选择三大原则,并以2.5Vp-p、2.5VDC基准、单5V供电为例推导传输方程与电阻取值,同时提示电阻温漂、运放增益带宽与偏置电流等选型注意事项。资源包共1个PDF文件,约136KB,篇幅精炼、图文并茂,含原理图、示波器波形与公式推导,便于快速查阅与工程对照。已有1054人学习,适合需要优化ADC前端调理电路、提升满量程精度与抗噪能力的读者参考。
1. 单端信号进差分ADC:一个被低估的满量程浪费问题
很多高分辨率 ADC 都是单电源供电、全差分输入的结构,而前端传感器送过来的往往是相对共模电平摆动的单端双极性信号。直接把单端信号接到差分 ADC 的一端、另一端接地,看起来能用,实际上白白丢掉了将近一半的满量程输入范围,共模抑制也形同虚设。这套方案要解决的就是这件事:用电阻网络加运放(或直接利用 ADC 内置 PGA 与基准)把单端双极性信号调理成直流偏置合适的差分信号,让 ADC 的每一位码值都真正被用上。适合正在做数据采集课设、毕设,或者要给高精度采集前端出方案的人参考。
2. 需求拆解与选型判断:先算清满量程这笔账
2.1 为什么单端直连差分ADC是亏的
先把账算明白。假设 ADC 的差分输入满量程是 2.5Vp-p,基准偏置在 2.5V DC,供电单 5V。如果单端信号直接进 +IN、–IN 接地,那么 [+IN – (–IN)] 的摆幅最多只能用到差分满量程的一半,等效于把一颗高分辨率 ADC 当成低一档的器件在用。更麻烦的是,单端接法下输入信号上的共模噪声不会被抵消,差分输入本来最大的卖点——共模抑制——直接失效。
所以需求可以拆成三条硬指标:第一,把单端双极性输入(例如 5Vp-p、以某个直流电平为中心摆动)衰减或放大到 ADC 差分满量程;第二,把输出的共模点偏置到 ADC 要求的直流电平(常见是基准的一半);第三,在整个信号链上控制噪声与漂移,别让调理电路本身把精度吃掉。这三条决定了后面所有电路形态的选择。
2.2 三条技术路线的取舍
原料里给了三种典型做法,选型时我一般按“ADC 有没有内置 PGA 和基准”来分叉:
| 路线 | 核心器件 | 适用场景 | 主要代价 |
|---|---|---|---|
| 运放差分转换 | 双运放 + 电阻网络 | ADC 无内置 PGA 的真差分输入 | 器件多、需匹配电阻 |
| 纯电阻网络 + 内置PGA | 四电阻 + ADC 内部 PGA | ADC 带 PGA 与内部基准 | 依赖 ADC 输入阻抗 |
| 电阻网络 + 缓冲运放 | 运放 + 电阻 + PGA | ADC 输入阻抗偏低 | 多一级运放噪声 |
第一条路线用两只运放搭成单端转差分结构,输出 VOUT+ 与 VOUT– 一对反相的信号,直流偏置由基准分压给出。它的好处是输出阻抗低、驱动能力强,坏处是两只运放的失调与漂移会叠加,电阻比例必须严格匹配,否则共模点会跑。
第二条路线最省器件:四个电阻构成衰减加偏置网络,直接怼到 ADC 的 +IN/–IN,靠 ADC 内部 PGA 把差分小信号再放大回来。原料里的例子是输入 5Vp-p 双极性,经网络后 [+IN – (–IN)] 得到 2.5Vp-p 的伪差分信号,PGA 设增益 2 正好用满量程。这条路线成本最低,但有个前提——ADC 输入阻抗要足够高,否则网络被负载拉偏。
第三条路线是第二条的补丁:当 ADC 输入阻抗偏低、信号出现损失时,在电阻网络和 ADC 之间插一级缓冲运放,把网络和 ADC 隔开。代价是多了一级运放的噪声和失调。
提示:选型顺序建议是先看 ADC 数据手册里的输入阻抗和是否带 PGA,再决定走哪条。别一上来就堆运放,器件越多,漂移和噪声的账越难算。
2.3 关键参数的定量约束
不管走哪条路线,有几个量必须先定下来,否则电阻值没法算:ADC 差分满量程(Vfs)、输出共模偏置(Vcm,通常取基准的一半)、输入信号摆幅(Vin,pp)与它的直流中心、供电电压。以原料的例子为准:Vfs = 2.5Vp-p,Vcm = 2.5V DC,Vin = 5Vp-p 双极性,单 5V 供电。由此得到衰减比 2.5/5 = 1/2,偏置点 2.5V。
电阻比例由传输方程反推。对运放差分结构,输入信号经 R2/R1 反相并衰减,直流偏置由 R3、R4 对基准分压决定,比例关系大致是 R2/R1 = 1/2、R3/(R3+R4) 对应偏置系数。原料给出的取值是 R1 = R4 = R5 = R6 = 300kΩ、R2 = R3 = 150kΩ,正好落在 1/2 的比例上。对纯电阻网络结构,四只电阻取等值 150kΩ 即可同时完成衰减与偏置,PGA 再补 2 倍增益。
这里有个容易被忽略的点:电阻比例决定增益,电阻绝对值决定输入阻抗和功耗。绝对值取小了,网络从信号源抽走的电流大,前级可能带不动;取大了,ADC 输入偏置电流和板级漏电的影响被放大。150kΩ 到 300kΩ 这个量级是原料在 5V 单电源、低功耗场景下的折中,实际项目里要结合信号源输出阻抗重新核一遍。
3. 电路实现:从传输方程到可落地的电阻取值
3.1 运放差分转换结构的搭建
先看没有内置 PGA 的场合。核心是把单端输入拆成一对幅度相等、相位相反的差分输出,同时把共模点钉在 2.5V。下面这段是参数计算脚本,把传输方程固化下来,改输入条件就能重算电阻:
# 单端双极性转差分:运放结构电阻取值计算 Vfs_pp = 2.5 # ADC 差分满量程 (Vp-p) Vcm = 2.5 # 输出共模偏置 (V DC) Vin_pp = 5.0 # 输入信号摆幅 (Vp-p, 双极性) Vref = 2.5 # 基准电压 (V) # 1) 衰减比:输入摆幅映射到差分满量程 atten = Vfs_pp / Vin_pp # 本例 = 0.5 # 2) 运放增益 G = R2/R1,取与衰减比一致 G = atten # 3) 偏置分压比:由基准产生 Vcm bias_ratio = Vcm / Vref # 本例 = 1.0,实际按分压网络修正 # 选定基准电阻量级后按比例缩放 R_base = 300e3 # 300kΩ R1 = R_base R2 = R_base * G # 150kΩ R3 = R_base * 0.5 # 150kΩ R4 = R_base print(f"R1={R1/1e3:.0f}k R2={R2/1e3:.0f}k R3={R3/1e3:.0f}k R4={R4/1e3:.0f}k")这段脚本的意义在于把“改一个输入条件就要重推一遍方程”这件事变成可复现的。atten 是衰减比,G 是运放级的增益,两者取相等是为了让输入摆幅正好压到差分满量程;bias_ratio 控制共模点,实际布板时还要把基准分压电阻的容差算进去。跑出来 R1 = 300k、R2 = 150k、R3 = 150k、R4 = 300k,和原料给的取值一致。
搭电路时有几个细节决定成败。两只运放要选同一批次、同一封装的器件,最好是一颗双运放芯片里的两个通道,这样失调和漂移的温漂方向一致,能部分抵消。反馈电阻 R1/R2 与 R3/R4 的配对精度直接决定共模抑制比,1% 的电阻配 1% 的电阻,别混用 0.1% 和 5%。输出端到 ADC 之间串的小电阻加 0.1μF 电容构成 RC 低通,截止频率按信号带宽留 3 到 5 倍余量,原料图里的 C1、C2 就是干这个的。
3.2 纯电阻网络加内置PGA的省器件方案
如果 ADC 自带 PGA 和内部基准,事情简单很多。四只等值电阻 150kΩ 组成网络,一端接输入,一端接基准,中间抽头进 ADC 的 +IN/–IN,衰减和偏置一次完成。PGA 设 2 倍增益,把 2.5Vp-p 的伪差分信号补回满量程。
# 纯电阻网络 + 内置 PGA:验证衰减与偏置 R = 150e3 Vin_pp = 5.0 Vref = 2.5 # 等值四电阻网络,差分输出约为输入的一半 Vdiff_pp = Vin_pp * 0.5 # 2.5Vp-p # PGA 增益补回满量程 PGA_gain = 2 Vadc_pp = Vdiff_pp * PGA_gain # 5.0Vp-p 等效,落在满量程内 # 共模点由基准分压决定 Vcm_out = Vref * 0.5 # 1.25V,需与 ADC 要求核对 print(f"差分={Vdiff_pp}Vpp, PGA后={Vadc_pp}Vpp, 共模={Vcm_out}V")这段代码的重点不是算得多精,而是提醒你两件事:一是 PGA 增益要和网络衰减严格配对,网络衰减 2 倍、PGA 就得补 2 倍,补多了削顶、补少了浪费量程;二是共模点算出来是 1.25V,必须回去对 ADC 数据手册核一遍它要求的输入共模范围,对不上就得改分压比。原料里这条路线能成立,前提是那颗 ADC 的输入阻抗足够高、PGA 输入范围覆盖得住这个共模点。
这条路线最大的坑是“以为省了运放就万事大吉”。电阻网络输出阻抗高,ADC 采样保持电路的开关电荷注入会在网络上产生毛刺,采样率越高越明显。原料也点到了这一点:输入阻抗低会导致信号损失,这时就得退回第三条路线,加缓冲运放。
3.3 缓冲运放与器件选型的量化依据
加缓冲运放时,网络和 ADC 之间插一级电压跟随或同相放大,把高阻节点和采样开关隔开。这一级运放的选型直接决定整条链的噪声底和漂移。
原料给了四类运放的对比,我把它整理成选型表:
| 架构 | 失调漂移 | 电压噪声 | 单位增益带宽 | 适用场景 |
|---|---|---|---|---|
| 斩波稳零 | 约 3nV/°C | 约 35nV/√Hz | 约 1.9MHz | 低频、低漂移优先 |
| 差分/介质隔离 | 数百 nV/°C | <10nV/√Hz | 较高 | 中高频、噪声优先 |
| 双极型精密 | 约 300nV/°C | 约 3nV/√Hz | 约 8MHz | 高频、性价比 |
| CMOS | 约 2.5μV/°C | 约 25nV/√Hz | 较低 | 低分辨率、成本优先 |
选型的逻辑是:信号带宽低、更怕漂移,选斩波稳零;带宽高、噪声是主要矛盾,选双极型精密运放;预算紧、分辨率要求不高,CMOS 也能用。原料里提到的斩波稳零器件带宽有限、噪声偏大,双极型器件噪声低、带宽高但成本上去了,这个取舍在方案里要写清楚,答辩时被问到“为什么选这颗”才有话说。
注意:运放的失调和增益误差可以靠软件校准或 ADC 内部校准消掉,但噪声和漂移是校准不掉的,选型时优先保这两项。
4. 避坑与排查:这类前端最容易翻车的五个点
4.1 共模点跑偏导致削顶
现象是输入信号还没到满幅,ADC 输出码值已经贴到上下限。原因多半是基准分压电阻的容差叠加,或者基准本身被负载拉低。解决办法是先断开信号、只加直流,用万用表量 +IN 和 –IN 的实际共模电压,和设计值对;偏差超过几个毫伏就检查分压电阻配对和基准负载,必要时换低漂移基准、给基准加缓冲。
4.2 电阻不匹配吃掉共模抑制
现象是输入端加共模干扰,输出跟着动,差分抑制没起作用。原因是反馈电阻对和偏置电阻对的比值不一致,共模抑制比被电阻容差直接限制。解决是把四只关键电阻选同一精度等级(0.1% 起),最好同一批次,布板时对称走线、等长,别让一侧多绕一段。
4.3 高阻网络被ADC采样开关打毛刺
现象是采样率一提高,输出噪声明显变大,低采样率时却正常。原因是电阻网络输出阻抗高,采样保持的电荷注入在节点上产生尖峰,RC 来不及恢复。解决办法是在网络和 ADC 之间加缓冲运放,或者在 ADC 输入端加合适的采样电容与串联电阻,把建立时间留够。
4.4 运放选错架构,噪声或漂移超标
现象是静态时码值缓慢爬升,或者噪声底比预期高一个量级。原因是选了漂移大的 CMOS 运放去做高分辨率低频采集,或者用斩波运放去扛高频信号。解决是按 3.3 节的表重新对一遍带宽、噪声、漂移三项,低频高精度优先斩波或双极型,高频优先低噪声双极型。
4.5 基准被负载拖垮
现象是校准过的满量程过一段时间又偏了,或者多通道切换时读数跳。原因是基准输出直接带分压网络甚至带 ADC 基准输入,负载电流超出基准的驱动能力。解决办法是基准后加缓冲,分压网络电阻取大一些减小负载电流,基准输入脚就近加去耦电容。
5. 验收与答辩:用三张表把方案讲圆
方案做完,验收不能只看“能出数”。我一般按三张表走一遍,答辩时也照这个顺序讲。
第一张是量程表。输入加满幅双极性信号,看 ADC 输出码值是否接近但不超过满量程的 95% 以上,同时记录共模点的实测值。这张表证明“满量程没浪费”。第二张是噪声表。输入端短接到共模点,采一段数据算有效值和峰峰值,折算到输入端的噪声要小于 ADC 本身 1 到 2 个 LSB 的量级,证明调理电路没把噪声底抬起来。第三张是漂移表。常温下隔一段时间采一次零点,或者做一次简单的高低温循环,看码值漂移是否在预算内,证明选型没翻车。
# 验收数据采集的典型流程(伪命令,按实际采集卡替换) # 1) 满幅输入,记录码值范围 acquire --input fullscale --samples 4096 --save range.csv # 2) 输入短接共模,记录噪声 acquire --input shorted --samples 8192 --save noise.csv # 3) 零点漂移,间隔采样 acquire --input zero --interval 600 --count 10 --save drift.csv采集完用脚本算三个指标:满幅利用率 = 实测峰峰值 / 理论满量程;输入折算噪声 = 实测噪声 / 信号链总增益;零点漂移 = 首末码值差折算成电压。三个指标都落在预算内,方案才算闭环。
答辩时最容易被问的是“为什么不用更简单的单端接法”和“电阻为什么取这个值”。前一个问题用第 2 章的量程账回答,后一个问题用第 3 章的传输方程和脚本回答,把计算过程摆出来,比背结论有说服力。还有个小技巧:把示波器上输入与 VOUT+、VOUT– 的对照波形截下来放进 PPT,一眼就能看出差分输出是否对称、偏置是否到位,比一堆文字管用。
血泪经验是,我早期做这类前端时总想着先把电路搭出来再调,结果共模点和电阻匹配反复返工。从那以后我每次动手焊板子之前,都强制先把传输方程在脚本里跑一遍、把三张验收表的判据写死,再开始布板。希望帮到你。
本文还有配套的精品资源,点击获取