
晚上十一点半示波器上那个八兆多的正弦尾巴还在那儿晃。手一靠近板子频率就往低飘一点手拿开又回来了。同一个运放同一块板子前面几级同相放大、反相放大都活得好好的偏偏最后一级电压跟随电路一出场就自激振荡。我调运放电路这几年被问得最多的就是这句话为什么我的跟随电路总是振荡这个问题的答案基本不在元件坏了而在环路稳定性的边界上。今天这篇就把跟随电路的设计避坑点一次说透从振荡原理到排查手段再到补偿方案都是我实测过、甚至踩进去过的坑。1. 跟随电路为什么会振荡稳定性的几个底层逻辑1.1 自激振荡的判据负反馈变成正反馈的两个条件先别急着换运放先把手上的“振荡”定性清楚。任何负反馈放大电路变成自激振荡都要同时满足两个条件环路的附加相移达到180度同时环路增益仍然大于等于1。负反馈之所以叫负反馈是因为反馈信号被反转后和输入相减。一旦附加相移到了180度减法就变成了加法整个环路开始自己激励自己频率自动停在那个满足相位条件的位置上。这里最容易被忽略的是“同时”两个字。很多电路看起来幅度条件早就不满足了但相位有余量所以不振荡。实际上真正出问题的频率点往往不是带宽之内而是在运放开环增益的穿越频率附近。跟随电路里反馈系数β等于1环路增益就等于运放的开环增益Aol这意味着它把运放的全部增益都拿来做负反馈了任何多余的外部寄生极点都可能把本来就吃紧的相位裕度直接推向零度以下。1.2 为什么100%负反馈是最危险的配置跟随电路就是100%负反馈配置输出端要么直接短到反相输入端要么通过一个很小的电阻接过去反馈系数β约等于1。这种拓扑的噪声增益最低等于1是运放所有应用电路里反馈深度最大的一种。反馈深度大好处是失真小、精度高、输出阻抗低坏处是一点外部相移都能致命。做个类比你在平衡木上走得越稳对脚下传来的每个微小晃动就越敏感。运放本身出厂时在单位增益条件下有足够的相位裕度但你的PCB走线、输出电缆电容、探头负载、电源去耦不干净每一个都会在环路里额外贡献一个极点。单个极点产生最大90度相移如果这个极点的位置落入环路增益大于1的频率范围和运放内部原本就有的第二、第三极点叠加起来相位裕度说没就没。所以你会经常遇到一种怪现象同一个运放做同相放大器增益为10的时候毫无问题改成跟随器就开始振荡。这不是运放坏了是噪声增益从11降到了1穿越频率升高原本藏在增益深处的相位问题全部暴露出来。1.3 单位增益稳定运放和非完全补偿运放的区别运放分为单位增益稳定和非完全补偿两类这个区分在跟随电路里是生死线。单位增益稳定运放比如NE5532、OPA2277、OP07这类出厂设计就保证在噪声增益等于1时仍有足够相位裕度可以放心接成跟随器。非完全补偿运放则相反比如OP37为了换更高的带宽刻意让运放在低增益时不满足稳定条件它必须工作在噪声增益大于等于5甚至10的电路里一旦直接接成跟随器自激振荡几乎是必然的。我看过不少人拿着OP37做跟随器然后百思不得其解。这类运放的型号后缀或者数据手册里通常会写“不稳定单位增益”或“Minimum Stable Gain”很多人不看这一行直接按经典电路搭振荡了才回头翻手册。选型时如果应用就是跟随器或者缓冲器第一优先选择单位增益稳定运放这是零成本的避坑原则。2. 我实际抓到过的六类“真凶”以及它们各自的惯用手法2.1 容性负载跟随电路最常见的翻车点跟随电路最常干的事就是缓冲把高阻抗信号源接到后级或者驱动一个比较长的同轴线、一根几十厘米的排线、一颗MOS管的栅极、一个ADC的采样电容。这些负载的共同点就是容性恰巧是运放最不擅长直接驱动的负载类型。运放输出级可以简化成一个受控电压源串联一个开环输出电阻RoRo通常在几十到几百欧姆。这个Ro和负载电容CL会形成一个负载极点极点频率fp等于1除以2π乘以Ro乘以CL。我做过一个实际测试NE5532输出阻抗按50欧姆估算CL取1nFfp大概是3.2MHz。NE5532的增益带宽积是10MHz跟随器在穿越频率附近本来就只剩几十度相位裕度这3.2MHz的负载极点再补一刀直接振荡。CL越大极点越低风险越大。我自己最典型的一次翻车是给一块传感器采集板的缓冲级驱动后级滤波电容。原理图上画了一个22nF的电容用于滤除高频噪声没想太多直接接到运放输出上。上电后输出端一片密密麻麻的正弦波频率在几百kHz到1MHz之间飘。用示波器FFT一测尖峰非常干净就是典型的环路自激而不是外部干扰。处理办法是让这个滤波电容不要直接挂运放输出实在要挂也得在输出脚加隔离电阻把电容挡在反馈环路外面这在后面第4章详细说。2.2 反馈引脚寄生电容与输入源阻抗容性负载是环路外的问题而反馈路径上的寄生电容、源阻抗带来的输入极点是环路内的问题。跟随电路的反馈线如果走线太长或者和输出线平行走了一段就会在反相输入端引入几pF的寄生电容。反馈电阻为零时这个寄生电容直接并联在输出和反相输入端之间它本身不产生坏相移但它会和运放内部的输入电阻、输入电容构成新极点同样拖累相位。同相输入端的源阻抗也容易被忽略。传感器信号源内阻很高时源阻抗和运放输入电容会组成一阶低通。这个低通看着只是衰减高频但它的相移进入反馈环路照样消耗相位裕度。有次我用一个内阻几十千欧的光电二极管直接接跟随器输入端输出端在光线变化时总能听到一阵“叫”频率几兆赫兹就是这种输入极点引起的。对付这两个问题思路是压低源阻抗、缩短反馈走线、在输入级加缓冲或低通。射频环境下更麻烦这一段我在2.6再展开。2.3 电源去耦不良正在“帮凶”跟随电路自己振荡电源端常常是一只看不见的推手。运放输出电流从电源引脚抽取如果去耦电容放得离运放太远或者走线又细又长电源路径上会有不小的寄生电感。高频输出电流变化会在电源引脚上产生电压波动这个波动通过运放内部的输入级耦合回输入端相当于额外多了一条反馈路径。最典型的症状是振荡频率不高几兆赫兹以内手摸电源线附近波形会变而且换一个电源适配器或者断开别的负载现象就消失了。我排查过一块精密基准缓冲板输出电压总是在某个负载下出现“毛刺”最后发现0.1μF去耦电容放到了板子角落过孔还绕了一大圈电源引脚附近的实际阻抗在高频下高得离谱。把电容挪到电源引脚正下方、缩短回路之后毛刺直接消失。规矩其实就两条每个运放电源引脚就近放一个0.1μF陶瓷电容同一个电源网络再放一个1μF到10μF的大电容去耦电容的接地端和运放接地端之间的回路面积越小越好。2.4 示波器探头让你看到“假振荡”这一条我必须单独拉出来说因为“假振荡”比真振荡更坑人。很多示波器探头是10倍衰减前端仍然有大约10pF到15pF的输入电容。如果你再用一条十几厘米长的接地夹线那基本就是给电路串了一个几十到一百多nH的寄生电感。这个电感和探头电容一组合会形成一个谐振峰频率正好落在几十到几百MHz。结果就是电路本身可能挺稳定示波器里却看到一根干净的高频正弦尾巴频率一百多兆看起来像真振荡。判断方法很简单把探头接到一个已知干净的50欧姆信号源或SMA端口的参考信号上如果同样能看到这个高频尾巴那就是测量假象不是电路自激。真正的排查要这样测用10倍探头用原厂标配的接地弹簧不要用长接地夹有条件的话用有源探头。如果你的振荡频率在一百多兆以上且幅度很小先怀疑探头谐振别急着改电路。2.5 反馈电阻过大引入的隐藏极点有些设计为了匹配输入偏置电流会在反相输入端串一个电阻或者习惯性地给跟随电路也加上反馈电阻。这个电阻取太大时会和反相输入端的寄生电容一起变成新的极点。我见过一个设计跟随电路的反馈电阻取了100kΩ反相输入端焊盘和走线寄生电容按5pF估算极点频率大概在318kHz。对一个GBW在几十兆赫兹的运放来说这个极点简直是一颗定时炸弹环路相位裕度直接被拉掉大半。示波器上看输入一个方波输出上升沿严重过冲稍微有点负载变化就进入持续振荡。所以我的建议是跟随电路里能不用反馈电阻就不用直接输出短接到反相输入。如果必须用电阻做隔离或匹配阻值控制在几百欧以内并单独评估这个电阻和输入电容形成的极点是否落在环路带宽附近。2.6 射频噪声整流高频杂波在输入端作祟最后一条比较隐蔽当运放输入接到一根较长的线缆或者处于射频环境里外部的高频干扰会进入输入级被运放内部的非线性结整流产生一个相当于“额外电平”的直流偏移。这个现象叫RFI整流在跟随电路里尤其讨厌因为跟随电路增益为1整流出来的直流偏移会直接出现在输出端看起来像是电路被“带偏”了有时候还会伴随间歇性的“呼吸”波形。严格来说RFI整流不一定造成持续自激振荡但它会让运放的静态工作点漂移偏移转成共模或差模变化后可能诱发环路重新调整表现成输出端有低频振荡叠加在高频噪声上。解决思路是在信号源和运放同相输入端之间加一个无源低通滤波器把带外射频在进入运放前滤掉。带宽不高时一个几百欧电阻加一个几百pF电容组成的RC就够了带宽高时要结合具体频段设计。3. 从振荡频率倒推故障点的排查流程3.1 先把测量方法搞干净排查自激振荡的第一步永远是排除测量系统自身的问题。我习惯的做法是示波器通道设置为10倍探头探头接上接地弹簧测量点尽量靠近运放输出引脚而不是靠近长线末端。先把输入端短路看输出端还有没有振荡如果没有说明问题在输入信号或者输入回路如果还在说明问题在环路本身。如果示波器上看到的振荡频率在100MHz以上并且幅度比较小我会先把探头前端断开只保留接地弹簧接触测试点旁边看看示波器是不是还能抓到同样的波形。很多时候仅仅是你把探头尖靠近那个节点寄生电容就足够改变环路状态甚至把一个本来稳定的电路“激”成振荡。3.2 给振荡频率“验明正身”确认了波形真实存在之后下一步是记录振荡频率并且观察哪些动作会影响这个频率。频率特征能帮你锁死方向频率随负载电容变化说明容性负载极点嫌疑最大。你可以换不同容量的电容试频率随着电容增加而下移基本坐实。频率随反馈走线位置变化手靠近反馈线、移动反馈线位置频率明显漂移说明主要是寄生电容和反馈路径的问题。频率固定且和运放GBW相关比如正好在GBW附近几十兆赫兹多半是运放自身在单位增益下的相位裕度不足或者选型选成了非完全补偿运放。频率很高几百兆赫兹甚至更高且波形有噪声感先回到3.1重新检查探头。这个判断过程其实就是“变量法”。每次只动一个变量观察振荡频率和幅度如何响应时间长了你会对每一种“振荡长相”有一种直觉。3.3 减法实验逐个断开嫌疑节点“减法实验”是我调试环路稳定性的常用方法核心思想是逐步把可疑的部分从电路里拆出去观察振荡是否消失。第一步断开输出端的电缆或大电容负载直接空载测。如果振荡消失说明输出容性负载是主要诱因。第二步把同相输入端的传感器或长线断开换成短地线接一个低阻信号源看是否还振。如果不再振问题多半在输入源阻抗或输入端寄生。第三步单独给这一级运放换成电池或外接线性电源供电排除电源网络里的地弹和串扰。第四步有条件时换一片同型号运放排除批次差异。这一步一步做下来大部分单点故障都能被快速分离。最怕的是边排查边把所有东西同时改换了运放、加了电容、又动了走线振荡到底是哪个动作修好的完全说不清那等于白调试。3.4 用方波振铃快速评估相位裕量环路相位裕度不需要等自激了才知道不足用小信号方波就能提前看出来。给跟随电路输入一个幅度不高的小方波比如200mVpp上升沿不要太陡前提是不要触发压摆率限制。看输出波形上升沿的过冲和振铃情况对应到相位裕度无明显过冲相位裕度非常充足。过冲5%到15%一两次振铃就收敛相位裕度大约在45到60度之间工程上可以接受。过冲超过30%振铃多次不收敛相位裕度可能低于30度必须补偿。持续正弦振荡相位裕度等于或低于0度也就是自激了。注意这里一定要用小信号方波幅度大了运放进入压摆率限制输出波形本身就会变圆甚至出现虚假振荡那测的就不是相位裕度而是大信号特性了。压摆率余量是多少、够不够是另一件事别和稳定性混在一起看。4. 实用的补偿方案与参数整定4.1 输出隔离电阻Riso一毛钱成本的主干道解药容性负载导致的自激最简单可靠的补偿办法是在运放输出脚和负载之间串一个电阻通常取10Ω到100Ω这个电阻叫隔离电阻Riso。最关键的设计细节是反馈采样点必须放在运放输出脚这一侧也就是隔离电阻的前端而不是负载端。这样一来负载电容CL和Riso形成的极点在反馈环路之外不参与反馈环路相移运放本身只看到一个很轻的负载相位裕度自然回来了。这也是很多工程师不理解“为什么串个电阻就好了”的原因你以为那个电阻改变了环路的极点其实它只是把容性负载“关在了门外”。Riso的代价也很直接动态负载下负载端的电压会和运放输出电压差一个I×Riso的压降。如果负载是ADC输入端这类输入电流很小的场合一个几十欧姆的电阻带来的误差可以忽略。如果负载需要精确定压并且会拉大电流这个方案就得再斟酌。一个经验取值起点对于GBW在几兆到几十兆的通用运放Riso从33Ω开始试如果输出端还带着0.1μF以上的大电容可能要加大到100Ω以上。同时配合方波测试观察过冲是否回落。4.2 反馈补偿网络给环路“加一点超前”如果负载必须接在反馈采样点之后或者Riso隔离因为精度要求实在没法用就要考虑在反馈网络做相位补偿。常见的做法是在反相输入端和输出端之间叠加一个超前补偿电容这个电容在高频端与反馈电阻或输入电阻构成零点抵消掉一部分有害极点带来的相移。但跟随电路输出电压直接连反相输入反馈电阻为零在这个位置上并联电容意义不大。我实际更常用的做法是如果允许在反相输入端对地加一个RC串联支路让高频时噪声增益抬高。这个支路的直流电流由运放输出通过反馈线提供不会带来额外偏置误差但高频噪声增益会上升所以电容不宜取太大一般几pF到几十pF开始试。这类补偿的整定一定要配合仿真和实测。我习惯先拿LTSpice搭一个真实模型看环路增益的相位裕度再上板用方波过冲做交叉验证。注意很多网页仿真器里的运放模型是理想无穷大增益看不到跟随电路自激这种仿真模型只适合看直流和基本逻辑不能用来评估稳定性。4.3 输入端低通与源阻抗治理对输入源阻抗过高、射频干扰明显的情况在信号源和同相输入端之间加一个RC低通是性价比很高的方案。一个几百欧姆电阻加上几百pF电容截止频率设计在信号带宽之外即可。这样既能滤掉带外射频噪声又能在一定程度上降低源阻抗对运放输入电容的影响。但要注意这个输入滤波电阻也会和运放输入电容、输入偏置电流产生新的相互作用电阻取值不宜过大尽量控制在1kΩ以内。对低偏置电流的运放可以适当放宽对双极型运放要谨慎。如果你的信号本身就来自高阻传感器更好的方案是先用一个低噪声缓冲级把源阻抗降下来再进跟随器而不是试图靠补偿去补救。4.4 PCB布局里的几句硬话原理图再正确布局一塌糊涂也一样振荡。跟随电路PCB布局我有几条硬性规定第一输出到反相输入的反馈走线必须是全板上最短的走线之一最好能在运放下方直接连接不要绕圈不要穿过参考面缝隙。第二输出走线和反馈走线不要平行长距离并排走否则本质上是跨接了一个寄生电容。第三运放电源引脚的0.1μF去耦电容要靠近引脚放置回路越小越好大容量电容放在电源入口处即可。第四如果运放周围有数字信号或者开关电源敏感输入节点要用地线包围但注意地线包络不能形成大环路。第五尽量保持运放下方的地平面完整不要为了走线方便开长槽。这些布局原则不是玄学是在高频下减少寄生参数对环路相位的额外消耗。很多时候你换同型号运放无效、改补偿参数也无效最后发现就是一条反馈走线横穿了整个板子。5. NE5532跟随电路的实测复盘与设计自查清单5.1 一个8MHz振荡案例的完整还原有一次我调一个音频前级板最后一级用NE5532做电压跟随器输出端通过一根20厘米长的同轴电缆连到后级设备。NE5532单位增益稳定GBW约10MHz按理说做跟随器问题不大。上电以后输出端在正常的音频信号上叠加了一个幅度约200mVpp、频率约8MHz的正弦波。我先按3.1把测量手段换成了10倍探头加接地弹簧振荡还在排除测量假象。接着按3.3断开同轴电缆振荡立刻消失确认是容性负载问题。同轴电缆的电容大约在几十pF到几百pF按2.1的估算不至于致命啊但我忽视了电缆前端的滤波电容整体等效负载接近1nF负载极点正好落在3MHz附近和NE5532的10MHz穿越频率一叠加振荡条件刚好成立。在运放输出脚与同轴电缆之间串了一个100Ω隔离电阻反馈仍然从运放输出脚引出。复测时8MHz振荡消失残余过冲从35%降到8%左右声音底噪也更干净了。这个案例里我没动任何反馈参数只一个电阻解决了问题。5.2 方波测试复测与FFT频谱对照修好之后我用小信号方波做了复测。输入一个200mVpp、100kHz的方波未加隔离电阻时上升沿过冲约35%振铃四五次才收敛加隔离电阻后过冲降到8%一次振铃就进入稳态。这两组波形放在一起很直观地告诉你看得懂方波过冲就等于看得懂相位裕量。同时用示波器的FFT功能看了输出频谱加电阻前在8MHz附近一根干净尖峰加电阻后那根尖峰几乎消失剩下的主要是方波本身的奇次谐波。这个交叉验证让我确认振荡来自环路自激而不是外部电磁干扰。如果FFT里频谱噪声很宽、是一大片“草地”那更要怀疑外部干扰或电源噪声而不是环路相位问题。5.3 我现在的设计自查清单最后分享一张我自己从这些坑里攒出来的检查表每次评审跟随电路我都按这个过一遍检查项为什么关键处理方式运放是否单位增益稳定非完全补偿运放直接做跟随器必振选单位增益稳定型号或加大噪声增益输出负载电容是否隔在环外容性负载会直接吃掉相位裕度输出脚串隔离电阻反馈取电阻前端反馈走线是否最短寄生电容和环路面积影响相位缩短走线避免与输出线平行电源去耦电容是否就近电源回路阻抗形成额外反馈路径0.1μF贴引脚大电容置于电源入口输入源阻抗是否过高源阻与输入电容形成新极点加输入低通或前置缓冲级是否预留补偿位置实测可能需要微调参数PCB上预留0402电阻电容空位成本极低这张表同时也是我处理线上问题的排查顺序。现在每画一块跟随电路我都会在原理图里默认放一个0Ω隔离电阻位一个预留的反馈电容位。哪怕首版直接短路或悬空只要出了问题不用重新改版就能开始调试。这个习惯帮我避掉过好几次“看起来是小改动实际上要重新打板”的灾难。最后一个很实际的建议手头备一批不同阻值的小电阻和几颗几pF到几十pF的贴片电容调稳定性时直接飞线试不用等改版。跟着方波过冲走比凭感觉猜参数靠谱得多。