差分运放这个东西,刚入行的硬件工程师十有八九都在它身上栽过跟头。我第一次独立设计差分放大电路的时候,信心满满地按教科书上的公式算好了电阻值,板子打回来一测,输出直接偏到电源轨上去了。后来查了半天才发现,是基准电压引脚悬空了,运放把输入偏置电流硬生生灌进了高阻节点。从那以后我就养成了一个习惯:每次设计差分运放,先把直流通路从头到尾捋一遍,再动手算放大倍数。
这篇文章主要面向刚接触运放电路设计的硬件工程师、电子相关专业的学生,以及需要快速上手差分放大电路设计的从业者。我会把差分运放的核心原理、正相和反相放大倍数的快速计算方法、典型电路的设计步骤,以及实际调试中容易踩的坑,全部拆开揉碎讲清楚。你不需要有深厚的模拟电路功底,只要能看懂欧姆定律和基尔霍夫定律,就能跟着这篇文章把差分运放的设计思路理明白。
1. 差分运放到底在放大什么:从单端到差分的认知转换
1.1 为什么不能直接用两个单端放大器
很多人第一次接触差分信号的时候,脑子里冒出来的第一个想法是:我拿两个普通的反相放大器,一个接正输入端,一个接负输入端,然后把输出再减一下,不就行了吗?这个思路在理论上没毛病,但在实际工程中几乎不可行。
原因在于,两个独立的单端放大器,它们的增益误差、温漂、噪声特性不可能完全一致。哪怕你用同一批次、同一批次的电阻,精度做到0.1%,两个通道之间的增益误差仍然会引入共模干扰。更致命的是,两个放大器的温漂方向如果相反,差分信号里就会混入一个随温度变化的误差项,这个误差在精密测量场景下是致命的。
差分运放的核心价值就在于,它用一个运放同时处理两个输入信号,两个输入路径共享同一个运放内核,增益误差和温漂天然匹配。共模信号(两个输入端同时变化的信号)在理想情况下被完全抑制,只有差模信号(两个输入端之间的差值)被放大。这就是为什么在传感器信号调理、电流采样、桥式电路测量这些场景里,差分运放是首选方案。
1.2 差模增益与共模增益的分离
理解差分运放,最关键的一步是把差模增益和共模增益分开看。差模增益(( A_d ))是你想要的,共模增益(( A_{cm} ))是你想干掉的。理想差分运放的共模增益为零,但实际运放总会有一些共模增益,这个比值就是共模抑制比(CMRR)。
对于一个标准的差分放大电路,假设四个电阻分别是 ( R_1 )、( R_2 )、( R_3 )、( R_4 ),其中 ( R_1 ) 和 ( R_2 ) 构成反相输入端的输入网络,( R_3 ) 和 ( R_4 ) 构成正相输入端的输入网络。差模增益的表达式是:
[ A_d = \frac{R_2}{R_1} ]
但这个公式成立的前提是 ( R_1 = R_3 ) 且 ( R_2 = R_4 )。如果电阻不匹配,共模增益就会从零变成一个非零值,CMRR 会急剧下降。我见过很多设计,电阻值算对了,但忽略了匹配精度,结果实测 CMRR 只有 40dB 左右,远低于运放手册标称的 80dB 以上。
这里有一个经验公式:如果电阻的容差是 ( \delta ),那么由电阻失配引入的共模增益大约是 ( A_{cm} \approx \frac{4\delta}{1+\frac{R_2}{R_1}} )。假设你用 1% 精度的电阻,( \delta = 0.01 ),增益设为 10 倍,那么 ( A_{cm} \approx \frac{0.04}{11} \approx 0.0036 ),对应的 CMRR 大约是 49dB。这个数值在实际电路中往往不够用,所以精密差分放大电路通常要求电阻匹配精度达到 0.1% 甚至更高。
1.3 输入阻抗对信号源的影响
差分运放的输入阻抗是另一个容易被忽视的参数。反相输入端的输入阻抗等于 ( R_1 ),正相输入端的输入阻抗等于 ( R_3 + R_4 )。如果信号源的内阻比较大,比如传感器输出阻抗在几十千欧以上,那么 ( R_1 ) 的取值就不能太小,否则会严重衰减信号。
但 ( R_1 ) 取大了,电阻的热噪声也会跟着变大。热噪声电压密度是 ( \sqrt{4kTR} ),电阻每增大十倍,噪声电压密度增大 ( \sqrt{10} \approx 3.16 ) 倍。所以在低噪声设计中,输入电阻的取值需要在信号衰减和噪声之间做权衡。
一个实用的做法是:先根据信号源内阻确定 ( R_1 ) 的下限,保证信号衰减不超过 1%,即 ( R_1 \geq 100 \times R_{source} )。然后再根据噪声预算确定 ( R_1 ) 的上限。如果这两个条件冲突,就需要考虑用仪表放大器或者增加一级缓冲。
2. 正相放大倍数的快速计算:从反馈网络直接读出增益
2.1 正相放大电路的结构识别
正相放大电路,也叫同相放大电路,输入信号直接接到运放的正输入端,反馈网络由两个电阻组成,从输出端分压后反馈到负输入端。这个结构的特点是输入阻抗极高,理想情况下等于运放本身的输入阻抗,通常在兆欧级别以上。
识别正相放大电路的关键是看反馈路径:负输入端通过一个电阻接地,同时通过另一个电阻接到输出端。这两个电阻构成一个分压器,分压比决定了放大倍数。
正相放大倍数的公式是:
[ A_v = 1 + \frac{R_f}{R_g} ]
其中 ( R_f ) 是反馈电阻(从输出到负输入端),( R_g ) 是接地电阻(从负输入端到地)。这个公式的推导很简单:负输入端的电压等于正输入端的电压(虚短),而负输入端的电压又等于输出电压经过 ( R_f ) 和 ( R_g ) 分压后的值,即 ( V_- = V_{out} \times \frac{R_g}{R_f + R_g} )。令 ( V_- = V_{in} ),整理就得到上面的公式。
2.2 快速计算技巧:分压比的倒数
在实际工作中,我经常用“分压比的倒数”来快速估算正相放大倍数。具体做法是:先看反馈电阻 ( R_f ) 和接地电阻 ( R_g ) 的比值,假设 ( R_f = 9k ),( R_g = 1k ),那么分压比是 ( \frac{1}{10} ),放大倍数就是 10 倍。如果 ( R_f = 99k ),( R_g = 1k ),分压比是 ( \frac{1}{100} ),放大倍数就是 100 倍。
这个技巧的好处是,你不需要记住公式,只需要记住“输出被分压后送回负输入端,分压比是多少,放大倍数就是它的倒数”。对于常见的增益值,可以提前准备好电阻配对表:
| 目标增益 | ( R_f ) | ( R_g ) | 实际增益 | 误差 |
|---|---|---|---|---|
| 2 | 10k | 10k | 2.000 | 0% |
| 5 | 40.2k | 10k | 5.020 | +0.4% |
| 10 | 90.9k | 10k | 10.09 | +0.9% |
| 20 | 190k | 10k | 20.0 | 0% |
| 50 | 49.9k | 1k | 50.9 | +1.8% |
| 100 | 99k | 1k | 100 | 0% |
注意:上表中的“实际增益”是按标准 E96 系列电阻值计算的,选型时优先选用 E96 系列,精度更容易保证。
2.3 正相放大的带宽与压摆率限制
正相放大电路的带宽有一个容易被忽略的特性:闭环带宽等于运放的增益带宽积(GBW)除以噪声增益。噪声增益就是 ( 1 + \frac{R_f}{R_g} ),对于正相放大电路来说,噪声增益等于信号增益。所以如果你用一个 GBW = 10MHz 的运放做 100 倍放大,闭环带宽只有 100kHz。
这个限制在低频信号调理中通常不是问题,但在处理脉冲信号或者高频信号时就要特别注意。我遇到过一个问题:用运放放大一个 50kHz 的方波信号,增益设为 50 倍,结果输出波形严重失真,上升沿变得很缓。后来一查,运放的压摆率只有 0.5V/μs,而输出信号的幅度是 5V,需要的压摆率至少是 ( 2\pi \times 50k \times 5 \approx 1.57V/\mu s ),运放根本跟不上。
所以选运放的时候,除了看 GBW,还要看压摆率(SR)。对于正弦信号,需要的压摆率是 ( SR = 2\pi f V_{peak} )。对于方波信号,需要的压摆率更高,通常按 ( SR = \frac{\Delta V}{\Delta t} ) 估算,其中 ( \Delta t ) 是你允许的上升时间。
3. 反相放大倍数的快速计算:虚地概念与输入阻抗的权衡
3.1 反相放大电路的结构识别
反相放大电路的结构和正相放大正好相反:输入信号通过一个电阻 ( R_{in} ) 接到运放的负输入端,正输入端接地,反馈电阻 ( R_f ) 从输出端接到负输入端。这个结构的特点是负输入端是“虚地”,电位始终接近零。
反相放大倍数的公式是:
[ A_v = -\frac{R_f}{R_{in}} ]
负号表示输出信号和输入信号反相。这个公式的推导同样基于虚短和虚断:负输入端电位为零(虚地),所以流过 ( R_{in} ) 的电流是 ( \frac{V_{in}}{R_{in}} ),这个电流全部流过 ( R_f )(虚断),所以输出电压是 ( -I \times R_f = -\frac{R_f}{R_{in}} \times V_{in} )。
3.2 快速计算技巧:电阻比值直接读增益
反相放大的增益计算比正相更直接,就是反馈电阻和输入电阻的比值。比如 ( R_f = 100k ),( R_{in} = 10k ),增益就是 -10 倍。不需要加 1,也不需要算分压比。
但这里有一个常见的误区:很多人以为反相放大电路的输入阻抗等于 ( R_{in} ),所以为了获得高输入阻抗,就把 ( R_{in} ) 取得很大。比如取 ( R_{in} = 1M ),( R_f = 10M ),增益是 -10 倍。这个设计在理论上没问题,但实际电路中,1M 的输入电阻和运放的输入电容(通常几皮法)会形成一个低通滤波器,截止频率可能只有几十千赫兹。更麻烦的是,10M 的反馈电阻和电路板上的杂散电容也会引入相位滞后,可能导致电路振荡。
所以反相放大电路的输入阻抗和带宽之间需要权衡。我的经验是:( R_{in} ) 尽量不要超过 100k,( R_f ) 尽量不要超过 1M。如果确实需要更高的输入阻抗,可以考虑用 T 型反馈网络,或者改用正相放大结构。
3.3 反相放大的噪声增益与稳定性
反相放大电路有一个反直觉的特性:虽然信号增益是 ( -\frac{R_f}{R_{in}} ),但噪声增益是 ( 1 + \frac{R_f}{R_{in}} )。这意味着如果你做 -1 倍的反相放大,噪声增益是 2,而不是 1。这个特性在分析稳定性的时候非常重要,因为运放的稳定性取决于噪声增益,而不是信号增益。
我见过一个案例:用运放做 -1 倍的反相放大,驱动一个容性负载,结果电路振荡了。原因是噪声增益为 2,运放的相位裕度在噪声增益为 2 的时候已经接近临界值,再加上容性负载引入的额外极点,相位裕度直接变成负的。解决办法是在输出端串联一个小电阻(通常 10Ω 到 50Ω)来隔离容性负载,或者在反馈回路中加一个补偿电容。
4. 差分放大电路的完整设计流程:从需求到实测
4.1 需求分析与参数定义
设计差分放大电路的第一步,不是算电阻,而是把需求搞清楚。你需要明确以下几个参数:
- 输入信号的差模电压范围是多少?
- 输入信号的共模电压范围是多少?
- 需要的差模增益是多少?
- 允许的增益误差是多少?
- 信号带宽是多少?
- 电源电压是多少?
- 输出负载是什么?
这些参数决定了运放的选型和电阻的取值。比如,如果共模电压范围很宽,接近电源电压,那么就需要选择轨到轨输入或者共模范围包含电源轨的运放。如果增益误差要求小于 0.1%,那么电阻匹配精度至少要达到 0.05%。
我通常会在设计之前画一个简单的信号链框图,把传感器输出、差分放大、滤波、ADC 输入这几个环节的电压范围都标出来,确保每一级的输出都在下一级的输入范围之内。这个习惯帮我避免了很多次“前级放大后级饱和”的问题。
4.2 电阻选型与匹配策略
差分放大电路的核心是四个电阻的匹配。如果四个电阻完全匹配,共模抑制比只取决于运放本身的 CMRR。如果电阻失配,CMRR 会急剧下降。
实际设计中,我推荐两种方案:
第一种是使用集成差分放大器,比如 AD8276、INA132 这类器件。它们内部集成了激光修调过的电阻,匹配精度可以达到 0.01% 以上,CMRR 通常都在 80dB 以上。缺点是增益固定或者需要外接电阻来设定增益,灵活性稍差。
第二种是使用分立电阻搭建。这时候电阻的匹配精度是关键。我通常的做法是:先用万用表把同一批次的电阻筛选一遍,把阻值最接近的四个挑出来。如果要求更高,可以使用电阻网络(比如 Vishay 的 ACAS 系列),这种电阻网络内部的四个电阻是在同一块基板上光刻出来的,温漂和匹配精度都非常好。
提示:如果你用分立电阻,记得在 PCB 布局时让四个电阻尽量靠近,并且保持相同的朝向。这样温度梯度对四个电阻的影响是一致的,温漂引起的失配会小很多。
4.3 基准电压与单电源供电的处理
很多初学者在单电源场景下设计差分放大电路时,会忽略基准电压的设置。单电源供电时,运放的输出不能低于零伏,所以需要把输出抬升到一个直流偏置电压上,通常是电源电压的一半。
这个偏置电压的引入方式有两种:一种是在正相输入端加一个基准电压,另一种是在反馈网络中注入偏置电流。第一种方式更常用,因为它不影响差模增益。
具体做法是:在正相输入端的分压电阻上并联一个基准电压源,或者用两个电阻从电源分压得到一个基准电压,再通过一个缓冲器接到正相输入端。这个缓冲器可以用运放的另一个通道来实现,也可以用简单的射极跟随器。
这里有一个坑:如果你直接用电阻分压得到基准电压,分压点的阻抗会与正相输入端的输入电阻形成分压,导致增益误差。所以基准电压必须经过缓冲,或者分压电阻的阻值要远小于正相输入端的输入电阻。
4.4 实测调试中的常见问题与排查
板子打回来之后,先别急着上电。我通常的步骤是:
- 用万用表测量四个电阻的实际阻值,确认匹配精度。
- 检查运放的电源引脚有没有短路,电源电压是否正常。
- 输入端接地,测量输出电压。理想情况下应该接近零(双电源)或者基准电压(单电源)。
- 输入一个已知的直流差模信号,测量输出,计算实际增益。
- 输入一个共模信号,测量输出,计算 CMRR。
如果第一步输出电压就偏了,先检查基准电压是否正常,再检查运放的输入偏置电流是否在电阻上产生了额外的压降。如果增益不对,检查电阻值是否焊错,或者反馈回路是否有虚焊。如果 CMRR 很差,检查四个电阻的匹配精度,以及 PCB 布局是否对称。
我遇到过最诡异的一个问题:差分放大电路的输出一直有一个 50Hz 的干扰,换了运放、换了电阻都没用。后来发现是示波器的地线夹在了电路板的地上,而信号源的地和示波器的地之间存在电位差,形成了一个地环路。把示波器换成差分探头之后,干扰就消失了。所以调试的时候,测量工具本身也可能引入干扰,这一点要特别注意。
5. 从差分运放到系统级设计:几个容易忽略的细节
5.1 运放选型的关键参数优先级
选运放的时候,很多人只看增益带宽积和价格,但有几个参数在差分放大电路中特别重要:
- 共模抑制比(CMRR):这是差分放大的核心指标,至少要 80dB 以上。
- 输入偏置电流(Ib):如果输入电阻较大,偏置电流会在电阻上产生压降,引入直流误差。CMOS 运放的 Ib 通常在皮安级别,双极型运放在纳安级别。
- 输入失调电压(Vos):这个参数直接叠加在输出上,乘以增益之后可能变得很大。精密应用中要选 Vos 小于 100μV 的运放。
- 输入失调电压温漂(dVos/dT):这个参数决定了电路在温度变化时的稳定性,精密应用中要小于 1μV/°C。
我通常的选型顺序是:先看 CMRR 和 Vos,再看 GBW 和压摆率,最后看价格和封装。如果 CMRR 和 Vos 不达标,其他参数再好也没用。
5.2 PCB 布局中的对称性原则
差分放大电路的 PCB 布局,最重要的原则是对称。四个电阻的布局要尽量对称,走线长度要尽量一致。正相输入端和反相输入端的走线要远离,避免相互耦合。反馈走线要尽量短,减少寄生电容。
如果电路板上有高频信号或者开关电源,差分放大电路要尽量远离这些干扰源。我通常会在差分放大电路周围铺一圈地线,并且用屏蔽罩把整个电路罩起来。这个做法在精密测量中非常有效,可以把干扰降低一个数量级。
另外,接地的方式也很重要。差分放大电路的地应该单点接地,避免地环路。如果电路板上有模拟地和数字地,差分放大电路应该接模拟地,并且模拟地和数字地只能在一点连接。
5.3 温度漂移的补偿思路
差分放大电路的温度漂移主要来自三个方面:运放的失调电压温漂、电阻的温漂、以及电阻匹配精度随温度的变化。
运放的失调电压温漂可以通过选择低漂移运放来解决。电阻的温漂可以通过选择低温漂电阻(比如金属膜电阻或者薄膜电阻)来解决。电阻匹配精度随温度的变化,则取决于电阻的匹配方式。如果四个电阻是同一批次、同一材料、同一封装,它们的温漂方向通常是一致的,匹配精度随温度的变化会比较小。
如果对温漂要求特别高,可以考虑用电阻网络,或者用软件校准的方式在系统层面补偿。我做过一个项目,用 PT100 做温度传感器,差分放大电路的温漂要求小于 0.1°C。最后是用电阻网络加上软件二阶拟合校准才达到要求。
5.4 差分运放在电流采样中的应用实例
电流采样是差分运放最典型的应用场景之一。在电机驱动、电池管理、电源监控这些场景中,通常会在电流路径上串联一个采样电阻,然后用差分运放测量采样电阻两端的电压。
这个场景的特点是:共模电压可能很高(比如电机驱动中,采样电阻可能浮在几十伏的共模电压上),而差模电压很小(通常是几十毫伏到几百毫伏)。所以需要选择高共模电压范围的差分放大器,比如 INA240、AD8418 这类专门为电流采样设计的器件。
设计的时候要注意:采样电阻的阻值要小,以减少功率损耗,但太小又会导致差模电压太小,信噪比下降。通常采样电阻上的压降在 50mV 到 100mV 之间比较合适。放大倍数根据 ADC 的输入范围来定,如果 ADC 的参考电压是 3.3V,那么放大倍数可以设为 33 倍左右,把 100mV 放大到 3.3V。
注意:电流采样场景中,共模电压的变化速率(dV/dt)可能很大,比如电机驱动中的 PWM 开关瞬间。这时候差分放大器的共模抑制能力不仅要看直流 CMRR,还要看交流 CMRR。选型的时候要关注器件手册中的 CMRR 随频率变化的曲线。
6. 差分运放设计中的几个反直觉结论
6.1 增益越大,带宽不一定越窄
对于正相放大电路,闭环带宽等于 GBW 除以噪声增益,噪声增益等于信号增益,所以增益越大,带宽越窄。但对于反相放大电路,噪声增益是 ( 1 + \frac{R_f}{R_{in}} ),而信号增益是 ( \frac{R_f}{R_{in}} )。当信号增益远大于 1 时,噪声增益约等于信号增益,带宽规律和正相放大类似。但当信号增益接近 1 时,噪声增益接近 2,带宽会比预期宽一些。
这个特性在低增益反相放大电路中比较明显。比如 -1 倍的反相放大,噪声增益是 2,如果运放的 GBW 是 10MHz,闭环带宽是 5MHz,而不是 10MHz。所以不要以为增益为 1 就能获得运放的全部带宽。
6.2 输入电阻越大,噪声不一定越小
很多人以为输入电阻越大,从信号源索取的电流越小,噪声就越小。但实际上,电阻的热噪声是 ( \sqrt{4kTRB} ),电阻越大,热噪声越大。同时,电阻越大,运放的输入偏置电流在电阻上产生的压降也越大,引入的直流误差也越大。
所以在低噪声设计中,输入电阻的取值需要优化。通常的做法是让输入电阻的热噪声和运放的电压噪声相当。比如运放的电压噪声密度是 10nV/√Hz,那么在 1kHz 带宽下,噪声电压是 ( 10nV \times \sqrt{1000} \approx 316nV )。对应的电阻热噪声是 ( \sqrt{4kT R B} ),令其等于 316nV,可以解出 ( R \approx 2.5k\Omega )。所以在这个例子中,输入电阻取 2.5k 左右是比较合理的。
6.3 共模抑制比不是越高越好
CMRR 当然是越高越好,但高 CMRR 往往意味着更高的成本。在实际设计中,CMRR 的要求取决于共模干扰的幅度和系统对误差的容忍度。如果共模干扰是 1V,系统允许的误差是 1mV,那么 CMRR 至少需要 60dB。如果共模干扰是 10V,允许误差是 0.1mV,那么 CMRR 需要 100dB。
所以设计的时候,先估算共模干扰的幅度,再根据误差预算确定 CMRR 的要求。不要盲目追求高 CMRR,否则会不必要地增加成本。
7. 写在最后:几个我踩过的坑和常用的检查清单
差分运放的设计,理论并不复杂,难的是把理论落实到实际的电路板和元器件上。我这些年踩过的坑,总结下来大概有这么几类:
第一类是电阻匹配问题。有一次我用 1% 精度的电阻搭了一个差分放大电路,增益设为 10 倍,结果实测 CMRR 只有 45dB。后来把电阻换成 0.1% 精度的,CMRR 立刻提升到 70dB 以上。所以如果你的差分放大电路 CMRR 不达标,先检查电阻匹配精度。
第二类是基准电压问题。单电源供电时,基准电压的噪声会直接耦合到输出端。我通常会在基准电压源后面加一个 RC 低通滤波器,截止频率设在 10Hz 左右,可以有效滤除基准源的宽带噪声。
第三类是布局问题。差分放大电路对布局非常敏感,尤其是高增益场景。我现在的习惯是,差分放大电路的四个电阻必须放在同一侧,走线必须对称,反馈走线必须短。如果做不到,宁可用集成差分放大器。
第四类是测量问题。调试的时候,示波器的地线夹和信号源的地线之间可能存在电位差,引入额外的干扰。如果怀疑是测量引入的问题,可以用电池供电的信号源,或者用差分探头来验证。
最后分享一个我常用的检查清单,每次设计完差分放大电路,我都会对着这个清单过一遍:
- 四个电阻的匹配精度是否满足 CMRR 要求?
- 运放的输入共模范围是否覆盖实际共模电压?
- 运放的输出摆幅是否满足 ADC 输入范围?
- 基准电压是否经过缓冲和滤波?
- 反馈回路是否有补偿电容,相位裕度是否足够?
- PCB 布局是否对称,反馈走线是否短?
- 电源去耦电容是否靠近运放电源引脚?
- 输入端是否有保护电路,防止过压损坏运放?
这个清单帮我避免了很多低级错误,也让我在调试的时候更有方向。差分运放的设计,说到底就是细节的堆砌,把每一个细节都做到位,电路自然就稳了。