
1. 先从负反馈说起反相放大器的灵魂反相放大器大概是每个做过模拟电路的人最早接触的运放电路之一。但很多人搭出了电路、测出了波形却说不清楚它内部到底发生了什么。这篇文章我想从负反馈原理开始把反相放大器从头到尾拆一遍再结合这些年做项目的实操经验聊聊那些书上看不到、但实际设计中天天踩的坑。先说反相放大器能干什么。它的核心功能就是把输入信号按比例放大或衰减同时把相位反转180度。如果你输入一个正的直流电压输出就是负的输入一个正弦波输出就是反相的正弦波。放大比例完全由两个电阻的比值决定和运放本身的增益基本无关。这个特性让它成为模拟信号处理里最基础、最可靠的“积木”之一从传感器信号调理、音频放大器前端到ADC驱动、滤波器设计都能看到它的身影。负反馈是反相放大器能稳定工作的根基。所谓负反馈就是从输出端取一部分信号送回输入端并且这个反馈信号和输入信号是“相减”的关系。你可以把它理解成一个不断自我修正的系统如果输出电压偏高了反馈回来的信号会让运放自动把输出拉回来。正是这个闭环机制把运放极高的开环增益“兑换”成了稳定、可设计的闭环增益。这篇文章适合谁看如果你是刚接触运放的学生或者转行做硬件的工程师我会从虚短虚断的直觉讲起帮你把原理吃透如果你已经会搭反相放大器那重点看看第三部分的工程实践、第四部分的仿真验证和第五部分的排错技巧这里面有不少我在项目中踩过、验证过的细节常规教材不会写这么细。2. 反相放大器原理拆解从虚短虚断到闭环增益2. 反相放大器原理拆解从虚短虚断到闭环增益2.1 虚短虚断两个让电路分析变得简单的“近似”分析任何运放电路都绕不开两个概念虚短和虚断。先说结论再解释为什么成立。虚短指的是理想运放正常工作时同相输入端和反相输入端的电压相等。以标准反相放大器为例同相端直接接地0V那么反相端电压也近似为0V所以反相输入端常被称为“虚地”——它不是真正接地但电位和地一样。虚断就更直观了运放的输入阻抗极高输入端几乎没有电流流入相当于断路。这两个“虚”字用得特别妙。它们不是真实的短路和断路而是在深度负反馈条件下非常接近理想情况的近似。为什么能近似因为运放的开环增益A非常非常大通常有100dB以上也就是十万倍到百万倍。输出电压Vout A × (V - V-)当输出是有限的几伏时两个输入端的差值只有微伏量级完全可以忽略于是就有了虚短。虚短和虚断不是教条它们是工程上的“充分近似”。实际运放总有小电流进入输入端输入失调电压也不会是零。但在大多数低频放大场景下这些非理想因素对结果的影响远小于电阻精度和噪声所以放心大胆地用。2.2 闭环增益公式推导增益为什么只取决于电阻比值现在来做推导。一个标准的反相放大器输入电阻是Rin反馈电阻是Rf反相输入端为虚地所以输入电流为Vin / Rin由于虚断这个电流不能流入运放只能全部流过Rf。那么Rf上的压降就是Vin / Rin× Rf Vin × Rf / Rin因为反相端电压是0V输出端的电压就必然等于Rf两端电压的负值Vout -Vin × Rf / Rin闭环增益Acl -Rf / Rin负号代表反相。这个结论极其重要闭环增益和运放本身的开环增益无关只由两个外部电阻的比值决定。这正是负反馈的威力——把依赖运放参数的增益变成了依赖无源器件比值的增益。但这里有个前提运放的开环增益要远大于闭环增益。一般要求A × β ≥ 10倍以上其中β是反馈系数对于反相放大器β Rin / (Rin Rf)。如果运放增益带宽不足、或者你想要的闭环增益已经逼近运放开环增益那这个公式就要打折扣了。实际设计中这个余量往往留得足够大不太会成为瓶颈但搞清楚它存在能帮你理解为什么高速运放做高增益时波形会失真。2.3 反馈系数的意义它在背后决定了稳定性反馈系数β Rin / (Rin Rf)表面上看只是个电阻分压比。但它在负反馈系统里扮演的角色远不止于此。反馈系统的闭环增益公式可以写成Acl A / (1 A·β)这里A·β是环路增益。A·β越大分母越远大于1闭环增益越接近1/β也就是越接近由电阻决定的理想值。同时更大的环路增益也意味着更低的失真和更好的线性度——因为每一个非理想因素比如运放的非线性都被负反馈自动修正了。β还直接关系到电路的稳定性这点很多人会忽略。当环路增益等于1也就是开环增益曲线和反馈增益曲线相交时如果相位裕度不足电路就会振荡。反相放大器的噪声增益是1/β这个值决定了电路能达到的最高带宽。比如你想做一个−5倍的放大器Rf 50kΩRin 10kΩ那β 10/60 1/6噪声增益就是6倍。此时你能使用的实际带宽大约是运放GBW除以6而不是除以5。这个区别在高频设计中非常关键做高速信号链的人应该深有体会。3. 核心参数与选型考量为什么不能只盯着增益公式刚才说过增益只取决于电阻比值但这不代表反相放大器设计就是随手抓两个电阻的事。实际工程中有几个参数会决定你的电路能不能达到预期性能输入阻抗、失调电压、偏置电流、噪声和带宽。下面逐个讲。3.1 输入阻抗反相放大器最大的“短板”反相放大器的输入阻抗约等于Rin这一点和同相放大器有本质区别。同相放大器的输入阻抗极高几乎不向前级电路索取电流而反相放大器的输入电阻实实在在并联在前级输出上会形成负载。假设你用一个10kΩ的Rin做−1倍反相放大器前级信号源输出阻抗是1kΩ那么信号源分压后实际到达反相端的电压只剩 Vin × 10/(101) ≈ 0.91Vin增益变成了约−0.91倍。这是我的项目中亲眼见过的错误——仿真时信号源是理想零阻抗一切正常一接真实传感器增益就偏了。解决思路有几种。第一种尽量选大一点的Rin比如100kΩ但电阻太大噪声和偏移都会变大。第二种在前级加缓冲器电压跟随器做阻抗隔离。第三种改用仪表放大器或同相结构但它们在共模抑制和精度上各有取舍。没有万能解只能按系统需求权衡。特别是做传感器信号调理时传感器输出阻抗往往有几kΩ甚至几十kΩ这时反相放大器的输入阻抗问题就会被放大务必估算它对增益精度的影响。3.2 输入偏置电流与失调电压直流精度的大敌理想运放输入端没有电流流入但真实运放总有偏置电流而且两个输入端的偏置电流还不完全相等。偏置电流流过电阻网络会产生误差压降最终折算成输出端的直流偏移。有个经典的补偿方法在同相端串一个平衡电阻Rb取值为Rin和Rf的并联值即Rb Rin || Rf。这样两个输入端的源阻抗近似相等偏置电流在两端产生的压降相互抵消。但这个方法只对双极型运放有效对大多数现代FET输入运放偏置电流已经是pA级影响微乎其微反而多一个电阻增加噪声不如直接省略。失调电压Vos是另一个直流误差源。它等效为在输入端串联了一个小电压源经过噪声增益放大后体现在输出端。假设Vos 1mV闭环噪声增益是11倍比如−10倍放大器输出端直流误差就是约11mV。如果放大的是交流信号后级用隔直电容可以轻松消除但如果是直流信号链就得考虑校准、斩波稳零运放或者软件调零了。3.3 增益带宽积与压摆率决定你最高能处理多快的信号运放有一个核心参数叫增益带宽积GBW它等于开环增益和带宽的乘积是常数。这意味着你设定的闭环增益越大可用的带宽就越小。举例说一颗GBW为10MHz的运放做成−1倍反相器时带宽接近10MHz准确说是5MHz左右因为反相端信号还要经过分压衰减但做成−100倍时带宽只剩约100kHz。计算实际可用带宽的简单公式是BW GBW / 1 Rf/Rin这里的1 Rf/Rin就是噪声增益不是信号增益的绝对值。很多人拿GBW除以5算−5倍的带宽其实是错的应该除以6。频率高到一定地步增益就会从设定值开始往下滚降输出波形幅度变小、相位滞后。压摆率Slew Rate则决定了运放能输出的最大电压变化速率单位是V/µs。如果输入信号变化太快运放跟不上输出波形就会变成三角波状这叫压摆率失真。设计时需要估算SR ≥ 2π × f × Vpk其中Vpk是输出峰值的幅度。如果一颗运放SR只有0.5V/µs却要输出1MHz、1V幅度的正弦波那最大压摆率需求约6.28V/µs这颗运放根本顶不住。4. 工程实践一个完整的反相放大器设计实例理论说那么多不如直接走一遍设计流程。我拿一个实际项目做例子把0到40mV的桥式传感器差分信号放大到0到4V供给ADC采集。桥式传感器输出幅度小、源头阻抗较高而且含有共模电压所以前级先用仪表放大器处理后级再用反相放大器做直流偏置调整和幅度微调。这里反相放大器的角色是把单端信号精确放大并调整到ADC的量程范围。为方便演示我简化一下输入信号是-0.1V到0.1V的直流或低频信号目标输出是0.5V到4.5V47倍增益。因为信号是单极性的直流需要把零点偏移到合适位置。第一步确定电路结构。由于信号源内阻约5kΩ反相放大器输入阻抗如果太低会分压我选择Rin 50kΩ输入阻抗就是50kΩ分压误差算下来只有9%偏大。所以实际做法是信号源先接入一个高输入阻抗的跟随器再送入反相放大器。这样一来反相放大器的输入阻抗不再是瓶颈Rin也可以选小一些来降低噪声。最终选Rin 10kΩ要获得−47倍增益Rf 470kΩ。用标准电阻实现47倍增益470kΩ是E24系列标准值完美匹配。但470kΩ电阻和运放输入电容、PCB寄生电容组合会产生低通极点带宽可能被压到几千赫兹。因此这里必须在Rf两端并联一个反馈电容Cf做相位补偿初始值取1pF到10pF后面在仿真和实测中再调。第二步选运放。信号带宽只有几百赫兹精度要求高所以我选了一颗精密双运放输入失调电压低于50µV偏置电流小于1nAGBW有5MHz。对于这个应用GBW绰绰有余关键是失调和噪声要低。如果选通用运放直流精度会明显变差。第三步偏置设计。这个例子输出要0.5V到4.5V如果只靠负电源供电原理简单但系统里没有负电源所以用单电源加虚拟地方案。让同相端不直接接地而是接一个2.5V基准电压。这样输出表达式就变成Vout Vref - Vin × (Rf/Rin)配合合适的前级信号极性设置就能得到想要的输出范围。这里用了电压基准源和电阻分压加跟随器构建Vref因为它必须低噪声、低漂移。直接用电容对电源分压做虚拟地在这种高精度直流应用里不太合适电源噪声和纹波会直接耦合进来。第四步计算电阻精度。Rf和Rin的比值决定增益精度如果要求增益误差小于0.5%必须用误差优于0.25%的精密电阻。我选了0.1%精度、25ppm温漂的金属膜电阻。普通5%电阻在这里根本不够用别在这种地方省钱。5. 仿真验证与实测调试从理想模型到真实世界5. 仿真验证与实测调试从理想模型到真实世界5.1 仿真设置把非理想因素逐一加进去电路搭好之后我习惯先做仿真。但用理想运放模型仿真除了验证直流工作点基本没有太大参考价值。真正有用的仿真要一步步把非理想因素加回来。第一阶段用包含输入失调电压、偏置电流和有限GBW的真实运放宏模型检查直流输出是否落在预期范围。第二阶段加噪声仿真看输出噪声谱密度能否接受。第三阶段做瞬态仿真输入一个阶跃信号观察是否过冲、振荡或者压摆率不足。我在仿真里通常会特别关注相位补偿电容Cf的取值。Cf太小高频时有峰起甚至振荡Cf太大带宽牺牲过多。更麻烦的是实际PCB布局的寄生电容可能让Cf的补偿效果偏离仿真结果。所以仿真里把Cf调到一个理论值范围给实际调试留出手动调整的余地往往是更好的策略。5.2 实测中的典型波形过冲、振铃与振荡的判断焊好板子上电用示波器接输出输入一个方波最常见的现象就是波形有过冲、振铃甚至持续振荡。过冲的根源是负反馈环路在高频段有过多相位滞后。反馈网络本身Rf和Cf引入一个零点可以抵消运放内部极点带来的相位滞后但如果你用的反馈电阻太大和运放输入电容、PCB电容形成的影响超过预期稳定裕度就不够。一个有效的做法是从很小的Cf开始试比如1pF逐步加大直到方波响应没有明显过冲、但也不要过度缓化。当年我在一个音频项目里把Cf从3.3pF调到22pF才彻底消除振铃代价是20kHz以上的高频开始衰减。这类调试没有捷径只能按项目带宽需求反复权衡。电源去耦也是很常见的振荡来源。如果运放电源引脚旁的0.1µF电容没贴着引脚放电源阻抗在高频会变大环路增益的相位裕度被进一步削减。我见过一个案例同一个PCB把去耦电容从距离引脚5mm移到1mm以内振荡就消失了。5.3 关键测试项目从直流精度到噪声测试实测环节我的测试清单一般这样安排。先测直流精度输入端接地用6位半万用表量输出直流电压和理论值对比。对±1倍反相器输出应该接近0V偏差主要由Vos、偏置电流和电阻失配决定。其次是增益精度输入一个精确的直流电压比如0.1000V测输出值反推实际增益。这里的误差来源是电阻精度和前级负载效应。如果发现增益偏小先看前级输出阻抗用差分法分别测Rin左端和右端电压就能判断问题出在分压还是电阻本身。噪声测试要用带宽受限的示波器或真有效值万用表。反相放大器的输出噪声主要是电阻热噪声和运放自身电压/电流噪声的叠加。反馈电阻越大热噪声越大。470kΩ电阻在室温下有大约2.8µVrms的等效输入电压噪声放大47倍后输出噪声约130µVrms。如果你的ADC量程是4V换算成信噪比大约是90dB通常够用但如果想再低只能减小电阻或增加滤波。6. 常见问题排查与设计避坑一张表说清楚做项目时间长了你会发现很多问题和故障都是重复出现。我整理了这些年在反相放大器调试里最常见的几类问题、起因和解决办法做成一个速查表方便对号入座。反相放大器常见问题速查表现象可能原因处置思路输出直流偏移过大输入失调电压大、偏置电流流过电阻、电阻误差大选用低失调运放同相端加平衡电阻做软件/硬件调零增益不准电阻精度不够、前级输出阻抗高、运放开环增益不足用0.1%精密电阻前级加缓冲换更高开环增益运放输出波形有振铃负反馈相位裕度不足、过大的反馈电阻、去耦不到位在Rf两端并联小电容Cf并调整优化器件布局持续振荡反馈路径分布电容过大、电源去耦差、负载为纯电容重布PCBRf两端加补偿电容输出串隔离电阻高频增益下降过早反馈电阻与输入电容形成低通、GBW不足降低电阻值选用更高GBW运放方波失真呈三角状压摆率不足换高压摆率运放降低输出幅度调零不稳定、漂移大温漂、基准源噪声大、电源不稳定用低噪声基准加强电源滤波选低温漂电阻6.1 反馈电阻选择不是越大越好很多初学者有个误区觉得反相放大器输入阻抗由Rin决定想把Rin选大一点结果Rf也要跟着大但电阻不是越大越省心。第一大电阻的热噪声与电阻值的平方根成正比100kΩ和1MΩ相比1MΩ的噪声高出3倍多。第二大电阻和运放输入电容、PCB杂散电容组成的RC低通会把带宽压得很低。一个1MΩ的反馈电阻配上5pF杂散电容极点频率只有约32kHz。第三更大的电阻意味着更小的反馈电流对PCB漏电流也更敏感潮湿环境下绝缘电阻下降就会造成增益漂移。实用建议低频精密放大Rf在10kΩ到1MΩ之间属于比较稳妥的选择高频电路尽量让Rf在几百欧到几十千欧之间。如果输入阻抗有硬性要求最好在前面加缓冲级而不是靠增大Rin硬扛。6.2 单电源供电的反相放大器偏置不能随便来反相放大器的输出以同相端电位为参考。同相端接地时输出被限制在负电源和正电源之间。双电源供电没这个问题但很多嵌入式系统只有单电源这时候就得给同相端一个偏置电压通常是VCC/2。常见做法有两种。一种是用两个等值电阻分压加一个大电容滤波得到VCC/2虚拟地。这种方式简单但电源抑制能力差如果VCC有纹波输出上会直接看到。另一种是专门用基准源芯片产生2.5V或1.024V等精确电压通过缓冲器驱动。这个方案价格高一些但噪声和漂移指标好得多ADC驱动场景强烈推荐。无论用哪种方法都要确保偏置网络的噪声不会成为瓶颈。虚拟地去耦电容尽量选大比如10µF以上并且靠近同相端放置。另外偏置电压建立需要时间上电瞬间可能有一段输出饱和的过程如果后级有比较器或ADC需要考虑这个暂态会不会触发误动作。6.3 噪声优化思路Rin和Rf不是随便定的反相放大器的噪声分析可以从三个来源展开电阻热噪声、运放电压噪声和运放电流噪声。电流噪声在输入电阻上产生压降在输出端会被放大电压噪声则直接被噪声增益放大。为了降低输出噪声第一要务是降低电阻值和噪声增益。但增益往往由系统规格决定不能随便改。减少电阻值是最常用的手段比如Rin1kΩ、Rf49.9kΩ比Rin10kΩ、Rf499kΩ的噪声低了约3倍。需要注意降低电阻值会增加前级负载和前级的功耗。遇到精密传感器信号前级输出阻抗低、能驱动较强电流就可以放心用小电阻。若前级输出阻抗高只能在噪声和噪声之间做取舍这种情况可以考虑改用仪表放大器或同相结构或者在反相器前加缓冲。噪声最终是否可接受取决于后续处理环节的信噪比要求。拿ADC来举例模拟前级输出噪声应当低于ADC一个LSB对应的电压或者至少低于模拟输入的量化噪声才能说设计是合理的。用这个标准反过来推算指标才能定出合适的电阻值范围。6.4 PCB布局细节三个容易被忽略但影响非常大的点反相放大器的PCB布局说简单也简单说复杂很多细节真的能决定成败。我总结出三条高频踩坑点。第一反馈路径要短而直接。Rf应当尽量靠近运放的反相输入端引脚反馈路径上不要走过孔不要用长走线。反馈节点是整个电路中阻抗较高、对噪声最敏感的位置长走线相当于天线额外引入干扰。这一点做高频放大时是致命的。第二反相输入端是“虚地”虚地上的杂散电容会直接参与环路稳定。铜皮面积越靠近这个引脚的寄生电容越大相位裕度越差。相应地这个节点应保持净空不要大面积敷铜。同理Rf和Cf应尽可能小地影响这个节点的总寄生电容。第三电源去耦要分组布置。通常每个运放电源引脚放一个0.1µF陶瓷电容距离尽量控制在2mm以内远一点效果折半不止。低频大容量电容通常10µF负责低频储能放置位置可以稍远。如果电路同时有数字部分和模拟部分模拟运放的电源最好单独走LDO或者磁珠隔离避免数字噪声串扰进来。7. 写在最后反相放大器值不值得用做项目这些年反相放大器在我手里的出镜率非常高。它结构简单、增益稳定、失真低唯一最明显的不足是输入阻抗不高。很多人做信号调理一上来就选同相放大器觉得输入阻抗高就万事大吉但实际上反相结构在同相端做偏置、配合后级差分电路时非常灵活噪声增益特性也往往比同相结构更好分析。我的习惯是在信号链设计最开始不要急着定拓扑先列出输入源阻抗、信号带宽、直流精度和噪声要求这几项约束再决定用反相还是同相。没有哪种电路是绝对最优解但反相放大器凭借它简洁的反馈结构和稳定的闭环特性依然是模拟设计里最值得吃透的基础模块之一。最后再分享一个小技巧如果你在一个系统里用了多级运放不妨统一同相端基准电压的来源。不同级之间如果用了不同的虚拟地级间耦合会产生莫名其妙的直流偏置和纹波问题。让所有反相级的同相端都接到同一个低噪声基准上很多疑难杂症会在根源上直接消失。