ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

电压跟随器不稳定原因与实战排查指南

电压跟随器不稳定原因与实战排查指南 1. 电压跟随器看着简单为什么偏偏最容易翻车电压跟随器英文叫 Voltage Follower也有人叫它单位增益缓冲器。电路图就一根线——输出直接接回反相输入端同相端接信号完事。很多刚接触运放的朋友第一次看到这个电路的反应都是这也叫电路这不是把输出短路回输入了吗能正常工作能而且它是模拟电路里用得最多的拓扑之一。但恰恰因为它太简单绝大多数人画完就直接打板连仿真都懒得跑结果上电一看输出要么直接自激振荡要么带载之后波形塌了要么直流偏了一大截。你去论坛搜运放跟随器不稳定能翻出几千条帖子问题描述几乎一模一样但根因各不相同。我自己这些年踩过的跟随器坑少说也有十几次。有一次做一个传感器信号缓冲用的是一颗标称 10MHz 增益带宽积的运放跟随器接法输入是 100kHz 的正弦输出直接变成了一团毛刺。当时第一反应是运放坏了换了一颗还是一样。后来拿示波器一点点看才发现是输出端那根 10cm 的飞线加上探头电容在反馈环路上引入了一个极点相位裕度直接掉到 20 度以下。所以这篇内容我想干的事很明确把电压跟随器不稳定这件事拆开从相位裕度、容性负载、GBW 选型、PCB 布局、直流误差五个角度把每个坑的成因、判断方法和解决手段讲透。适合已经会画基本运放电路、但一上电就出问题的朋友也适合想系统梳理模拟电路设计思路的工程师。看完你至少能做到拿到一个跟随器电路知道该先查什么、后查什么而不是盲目换芯片。2. 相位裕度才是稳定性的总开关先把它搞明白2.1 相位裕度到底在描述什么很多人对相位裕度的理解停留在大于 45 度就稳定这个口诀上但不知道它为什么重要。我用一个生活化的类比来解释。想象你在推一个秋千。你每次推的时机如果和秋千的自然摆动节奏完全同步秋千会越荡越高这就是正反馈系统失控。如果你推的时机总是慢半拍秋千就会慢慢停下来这是负反馈系统稳定。相位裕度描述的就是你推的时机离完全同步还差多少。具体到运放电路运放内部有多个极点每个极点在高频处都会贡献最多 90 度的相位延迟。当环路增益降到 0dB也就是增益为 1的那个频率点上如果总相位延迟已经接近 180 度那么负反馈就变成了正反馈电路必然振荡。相位裕度就是在这个 0dB 频率点上实际相位延迟距离 180 度还差多少度。相位裕度 90 度系统非常稳但响应慢像蜗牛相位裕度 60 度工程上的甜点区响应快且几乎没有过冲相位裕度 45 度临界状态阶跃响应会有明显振铃相位裕度小于 30 度基本可以准备看振荡波形了电压跟随器的麻烦在于它的闭环增益是 1也就是 0dB。这意味着运放的数据手册里那条开环增益曲线和 0dB 线的交点频率就是跟随器的工作带宽。而这个交点往往落在运放第二个极点的附近相位裕度天然就比同相放大电路要低。2.2 为什么跟随器比同相放大器更危险这里有一个反直觉的结论同一个运放做成跟随器比做成 2 倍同相放大器更容易振荡。原因在于环路增益。同相放大器的闭环增益是 1Rf/Rg假设是 2 倍那么环路增益 β1/2。运放的开环增益需要降到 1/β2 的时候环路才降到 0dB这个频率比跟随器的 0dB 交点频率要低。频率越低相位延迟越小相位裕度就越大。跟随器的 β1环路增益等于开环增益0dB 交点频率最高相位延迟最大所以最危险。这就是为什么很多运放手册里会专门标注单位增益稳定Unity Gain Stable这个参数。如果一颗运放没有标注单位增益稳定你把它接成跟随器大概率会振荡。我整理了一个简单的对照方便你快速判断电路类型闭环增益环路增益β0dB交点频率相对稳定性电压跟随器11最高最差同相2倍20.5中等中等同相10倍100.1最低最好反相1倍-11最高差注意反相放大器那一行反相接法的噪声增益是 1Rf/Rg如果 RfRg噪声增益是 2但信号增益是 -1。稳定性看的是噪声增益不是信号增益这一点很多人会搞混。2.3 用数据手册快速估算相位裕度拿到一颗运放怎么快速判断它做跟随器稳不稳我的做法是看三个参数增益带宽积GBW、压摆率SR、以及开环相位曲线。以经典的 LM358 为例它的 GBW 只有 1MHz 左右压摆率 0.5V/μs。这个参数做跟随器只要输入信号频率不超过几十 kHz基本不会振荡因为它本身就慢0dB 交点频率很低相位裕度很充裕。但代价是带宽窄、响应慢你让它处理 100kHz 的信号输出幅度会明显衰减。再看 NE5532GBW 10MHz压摆率 9V/μs。这颗运放做跟随器如果输入是几百 kHz 的方波输出会有明显的过冲和振铃因为它的 0dB 交点频率高相位裕度相对紧张。但 NE5532 是标注了单位增益稳定的所以不会持续振荡只是瞬态响应不好看。真正危险的是那些没有标注单位增益稳定的高速运放比如某些电流反馈型运放或者 GBW 超过 50MHz 的电压反馈型运放。这类运放做跟随器如果不加补偿上电就振。提示判断一颗运放能不能做跟随器第一眼看数据手册第一页有没有Unity Gain Stable字样。没有的话要么换芯片要么在输出和反相输入之间串一个小电阻人为降低环路增益。3. 容性负载跟随器振荡的头号元凶3.1 容性负载为什么会让跟随器发疯电压跟随器的输出阻抗理论上接近零但实际上运放的开环输出阻抗通常在几十欧姆到几百欧姆之间。当你接上一个容性负载比如同轴电缆的分布电容、MOS 管的栅极电容、或者 ADC 的采样保持电容这个输出阻抗和负载电容就构成了一个 RC 低通滤波器。问题在于这个 RC 滤波器在反馈环路内部引入了一个额外的极点。极点会带来相位延迟原本相位裕度就不宽裕的跟随器再被这个极点一拖直接跌破临界值振荡就来了。更麻烦的是这个极点还会让输出端在阶跃响应时出现振铃——输出先冲过头再慢慢回落来回好几次才稳定。你用示波器看就是一个方波的上升沿上叠了一串衰减振荡。我遇到过最典型的一次是给一个 16 位 ADC 做输入缓冲。ADC 的采样电容是 10pF看起来很小但运放输出到 ADC 之间有一段 5cm 的走线分布电容大概 5pF加起来 15pF。运放的开环输出阻抗是 100Ω这个极点频率算下来是f 1 / (2 × π × 100Ω × 15pF) ≈ 106MHz106MHz 看起来很高但运放的 0dB 交点频率如果是 10MHz这个极点就在交点附近相位裕度直接掉 30 度以上。实测输出波形果然有过冲。3.2 隔离电阻最简单也最有效的解法解决容性负载振荡最常用的手段是在运放输出和负载电容之间串一个隔离电阻 Riso。这个电阻的作用是把负载电容和运放输出隔开让反馈环路在低频时不受电容影响高频时电容被电阻隔离极点被推远。Riso 的取值有个经验公式Riso ≈ 1 / (2 × π × f_unity × C_load)其中 f_unity 是运放的 0dB 交点频率C_load 是负载电容。以刚才的例子f_unity10MHzC_load15pFRiso ≈ 1 / (2 × π × 10MHz × 15pF) ≈ 1kΩ实际取值可以在 10Ω 到 1kΩ 之间调试。取值太小隔离效果不够取值太大输出带载能力下降因为负载电流会在 Riso 上产生压降。但 Riso 有个副作用它会让输出端的直流精度变差。如果负载电流是 1mARiso 是 100Ω那么输出就低了 100mV。对于高精度场合这个误差不能接受。3.3 反馈环内补偿与环外补偿的区别Riso 有两种接法效果完全不同很多人在这里搞错。第一种是环外补偿Riso 接在运放输出和负载之间反馈直接从运放输出端取。这种接法Riso 在反馈环路外面不影响直流精度但隔离效果有限因为反馈点还是在运放输出端负载电容的影响通过 Riso 被削弱了但没有完全消除。第二种是环内补偿Riso 接在运放输出和负载之间反馈从负载端取。这种接法Riso 在反馈环路内部隔离效果更好但直流精度会受负载电流影响因为反馈点包含了 Riso 上的压降。我的经验是如果负载是纯容性或者容性为主用环外补偿牺牲一点隔离效果换精度。如果负载是容性加阻性且对精度要求不高用环内补偿稳定性更好。还有一种进阶做法是在 Riso 两端并联一个小电容 Cf构成一个零点抵消负载电容带来的极点。Cf 的取值大约是 C_load 的 1/10 到 1/5。这个做法在高速运放电路里很常见但调试起来比较麻烦需要实际测波形来微调。注意Riso 不是万能的。如果负载电容超过 1μF单靠 Riso 很难压住振荡这时候要考虑用专门的容性负载驱动运放或者在运放后面加一级缓冲晶体管。4. GBW 和压摆率选型不是越大越好4.1 增益带宽积决定了跟随器的可用带宽增益带宽积GBW是运放最核心的参数之一。对于电压跟随器闭环增益是 1所以理论上可用带宽就等于 GBW。但实际上可用带宽要打折扣。原因有两个。第一运放的开环增益不是无限大在接近 GBW 的频率上开环增益已经很低了闭环增益会偏离 1输出幅度会衰减。第二相位裕度在接近 GBW 的频率上会下降输出会有相位延迟。工程上我一般把跟随器的实际可用带宽取 GBW 的 1/10 到 1/5。比如 GBW10MHz 的运放做跟随器处理 1MHz 以内的信号比较稳妥超过 2MHz 就要仔细看波形了。这里有个常见的误区很多人以为 GBW 越大越好选一颗 100MHz 的运放做跟随器结果发现振荡了。原因是 GBW 大的运放0dB 交点频率高相位裕度天然紧张对布局和负载更敏感。而且高 GBW 运放通常静态电流大功耗高成本也高。选型的原则是够用就好留 2 到 5 倍余量。你的信号最高频率是 100kHz选 GBW 在 500kHz 到 1MHz 的运放就够了没必要上 10MHz。4.2 压摆率不够会怎样压摆率SR描述的是运放输出电压的最大变化速度单位是 V/μs。它决定了大信号下的响应能力。如果输入信号的频率和幅度要求输出电压的变化速度超过运放的压摆率输出波形就会失真。对于正弦波压摆率的需求可以用这个公式估算SR_required 2 × π × f × V_peak假设你要输出一个 100kHz、峰峰值 2V峰值 1V的正弦波SR_required 2 × π × 100kHz × 1V ≈ 0.63V/μsLM358 的压摆率是 0.5V/μs不够输出会变成三角波。NE5532 的压摆率是 9V/μs绰绰有余。对于方波压摆率决定了上升时间。上升时间 tr 和压摆率的关系是tr V_step / SR如果输出跳变 5VSR1V/μs上升时间就是 5μs。这个上升时间会限制方波的最高频率因为上升沿和下降沿占用的时间不能超过半个周期。4.3 4558 增益 70 倍会自激吗这个问题在热词里出现了我顺便说一下。4558 是一颗很老的运放GBW 大约 1MHz压摆率 1V/μs。如果做成 70 倍增益闭环带宽只有 1MHz/70 ≈ 14kHz。在这个带宽下相位裕度通常很充裕不会自激。但要注意70 倍增益意味着反馈电阻网络的分压比很大如果布局不好反馈走线太长寄生电容会在反馈网络上引入极点可能导致高频自激。另外4558 的输入失调电压比较大70 倍增益会把失调放大 70 倍输出直流偏移可能达到几百 mV。所以 4558 做 70 倍增益自激的概率不大但直流精度和噪声性能会很差。如果非要用建议在反馈电阻上并联一个小电容限制高频增益同时做好电源去耦。5. PCB 布局看不见的寄生参数才是暗雷5.1 反馈走线越短越好这不是废话电压跟随器的反馈走线就是输出到反相输入的那根线。这根线越短越好原因不是看起来整洁而是它直接决定寄生电感和寄生电容的大小。走线有电感大约每厘米 5 到 10nH。走线之间和走线对地有电容大约每厘米 1 到 2pF。这些寄生参数在低频时无所谓但在高频时反馈走线上的电感会和运放输入电容形成谐振反馈走线对地的电容会直接加在反相输入端和反馈网络一起改变环路相位。我的做法是跟随器的反馈走线控制在 5mm 以内最好直接在运放引脚旁边打过孔连接。如果实在做不到走线要尽量短、尽量粗减少电感。还有一点反馈走线不要从运放输出引脚绕一大圈到反相输入引脚哪怕这样画起来更好看。走最短路径哪怕看起来丑。5.2 电源去耦电容的位置比容值更重要运放的电源引脚旁边必须放去耦电容这个大家都知道。但很多人放的位置不对电容离引脚太远去耦效果大打折扣。去耦电容的作用是为运放提供高频电流回路。运放内部晶体管在开关时会产生高频电流尖峰这些电流需要从最近的电容获取而不是从远处的电源。如果电容离引脚远走线电感会阻碍高频电流去耦失效运放可能通过电源轨耦合振荡。我的标准做法是每个电源引脚旁边放一个 0.1μF 的陶瓷电容距离引脚不超过 2mm电容的地端直接连到运放的地引脚不要绕。另外在电源入口处放一个 10μF 的钽电容或电解电容作为低频储能。对于高速运放还要考虑在电源引脚和地之间加一个 1nF 到 10nF 的小电容专门滤除更高频的噪声。但要注意电容太多也可能引起电源轨谐振一般 0.1μF 加 10μF 的组合就够了。5.3 地平面和信号回流路径PCB 布局里最容易被忽视的是信号回流路径。电流总是走阻抗最小的路径高频时这个路径是紧贴信号走线下方的地平面。如果地平面被分割或者信号走线下方没有完整的地平面回流路径就会绕远形成一个大环路。这个大环路相当于一个天线会接收噪声也会辐射噪声。对于跟随器这种高阻抗输入电路噪声耦合进来直接体现在输出上。我的建议是跟随器电路下方保持完整的地平面不要在地平面上开槽。如果必须分割地平面确保信号走线不跨越分割缝。输入信号走线尽量短远离输出走线和电源走线减少耦合。提示如果你用的是双层板底层尽量铺完整的地。如果是四层板把地平面放在第二层电源平面放在第三层信号走顶层。这个叠层结构对模拟电路最友好。6. 直流误差和失调跟随器不只是稳定性问题6.1 输入失调电压会被 1 倍放大但影响依然存在电压跟随器的闭环增益是 1所以输入失调电压不会被放大直接出现在输出端。听起来好像问题不大但实际电路中失调电压的影响比想象中严重。以 LM358 为例它的输入失调电压典型值是 2mV最大 7mV。如果输出接一个 12 位 ADC参考电压 3.3V那么 1LSB 对应的电压是 3.3V/4096 ≈ 0.8mV。7mV 的失调相当于 8 个 LSB 的误差对于精密测量来说完全不能接受。NE5532 的失调电压典型值是 0.5mV最大 4mV好一些但也不算精密。真正精密的运放比如 OP07失调电压典型值只有 30μV但价格贵很多GBW 也低。选择运放时要根据你的精度需求来。如果只是做信号缓冲后级有 ADC 校准普通运放够用。如果是精密测量必须选低失调运放或者加调零电路。6.2 输入偏置电流在高阻抗源下会变成误差输入偏置电流是运放输入端需要的直流电流。对于双极型运放这个电流通常在 nA 到 μA 级别。对于 CMOS 运放通常在 pA 级别。偏置电流本身不大但如果信号源阻抗高它就会产生误差电压。误差电压等于偏置电流乘以源阻抗。假设偏置电流是 100nA源阻抗是 1MΩ误差电压就是 100mV。这个误差比失调电压大得多。电压跟随器的同相输入端接信号源如果信号源阻抗高偏置电流就会在源阻抗上产生压降导致输出偏移。解决方法是选择 CMOS 或 JFET 输入运放偏置电流在 pA 级别1MΩ 源阻抗下误差只有 μV 级别。另外可以在同相输入端和地之间加一个电阻阻值等于信号源阻抗让偏置电流在两个输入端产生的压降相互抵消。这个电阻叫平衡电阻但要注意它会产生热噪声阻值越大噪声越大。6.3 共模输入范围跟随器最容易忽略的边界电压跟随器的同相输入端电压等于输入信号电压这个电压必须在运放的共模输入范围内。如果超出范围运放会工作异常输出可能锁死或者反相。LM358 的共模输入范围是 V- 到 V - 1.5V。也就是说如果供电是 0V 和 5V输入信号最高只能到 3.5V。超过 3.5V输出就不再跟随可能直接跳到 5V 或者 0V。轨到轨Rail-to-Rail运放的共模输入范围可以接近电源轨但也不是完全到轨通常差几十 mV。如果你的信号接近电源轨必须选轨到轨输入运放并且仔细看数据手册里的共模范围指标。输出范围也是类似。普通运放的输出不能完全到电源轨通常差 1V 到 2V。轨到轨输出运放可以到几十 mV 以内。如果负载电流大输出范围还会进一步缩小。7. 实测排查从振荡波形反推根因7.1 先看波形频率判断是自激还是外部干扰运放振荡第一步是看振荡频率。用示波器探头接输出端看振荡波形的频率。如果振荡频率在几百 kHz 到几十 MHz通常是自激振荡根因在相位裕度或者容性负载。如果振荡频率是 50Hz 或者 100Hz那大概率是电源纹波耦合不是自激。如果振荡频率和某个外部信号源一致那是外部干扰不是电路本身的问题。我遇到过一次输出有 200kHz 的振荡换了三颗运放都一样。后来发现是开关电源的开关频率耦合进来的在电源引脚加了一个 LC 滤波器就解决了。所以看频率能快速缩小排查范围。7.2 断开负载看振荡是否消失如果怀疑是容性负载引起的振荡最简单的验证方法是断开负载看振荡是否消失。如果断开负载后振荡消失接上负载又出现那基本可以确定是容性负载问题。这时候可以试着在输出和负载之间串一个 50Ω 到 100Ω 的电阻再看波形。如果振荡明显减弱或者消失就确认了。然后根据实际波形调整电阻值找到稳定性和带载能力的最佳平衡点。如果断开负载后振荡依然存在那问题在运放本身或者布局。检查反馈走线是否过长电源去耦是否到位地平面是否完整。7.3 用探头直接测反馈引脚示波器探头有输入电容通常在 10pF 到 15pF。当你把探头接到运放输出端时探头电容就相当于给输出加了一个容性负载。有时候电路本身是稳定的但一接探头就振荡这就是探头电容引起的。遇到这种情况可以用一个 1kΩ 的电阻串在探头尖端隔离探头电容。或者用低电容探头输入电容只有 1pF 到 2pF。但低电容探头很贵一般用串联电阻的方法就够了。测反馈引脚的时候也要注意反相输入端的阻抗很高探头电容会影响环路相位。最好用高阻抗、低电容的探头或者用场强探头非接触测量。7.4 一个完整的排查流程我把跟随器振荡的排查流程整理成一个表方便你按顺序检查步骤检查项判断方法解决手段1振荡频率示波器测频率高频自激查相位低频查电源2断开负载看振荡是否消失消失则加Riso3反馈走线目视检查长度缩短到5mm以内4电源去耦检查电容位置移到引脚2mm内5运放选型查数据手册换单位增益稳定运放6探头影响串电阻再测排除测量引入的振荡7共模范围查输入电压换轨到轨运放这个流程我用了很多次基本上 90% 的跟随器振荡问题都能定位到。剩下 10% 可能是运放本身损坏、PCB 有短路、或者电源有问题需要更细致的排查。8. 几个容易被忽略的实战细节8.1 输入端的保护电阻和电容电压跟随器的同相输入端直接接信号源如果信号源有超过电源轨的电压运放输入级可能损坏。加一个串联电阻和钳位二极管可以保护输入端。串联电阻的取值要权衡太大会引入热噪声并且和输入电容形成低通限制带宽太小保护效果不够。一般取 1kΩ 到 10kΩ。钳位二极管用 BAT54S 这类肖特基二极管正向压降小反应快。输入端还可以加一个小电容到地滤除高频噪声。但要注意这个电容和串联电阻形成的极点会影响环路相位如果运放做跟随器这个极点可能引起振荡。所以输入滤波电容不能太大一般不超过 100pF。8.2 输出端的短路保护运放输出短路到地或者电源轨可能损坏运放。很多运放内部有短路保护但保护电流可能达到几十 mA长时间短路还是会发热损坏。在输出端串一个小电阻比如 22Ω 到 100Ω可以限制短路电流。这个电阻还可以兼作隔离电阻抑制容性负载振荡。但电阻会降低输出带载能力如果负载电流大电阻上的压降不能忽略。对于需要驱动大电流负载的场合可以在运放后面加一级射极跟随器用晶体管扩流。这样运放只负责电压精度电流由晶体管提供短路保护也由晶体管承担。8.3 单电源供电时的偏置问题电压跟随器在单电源供电时如果输入信号是交流需要把同相输入端偏置到电源电压的一半否则负半周会被削掉。偏置电路通常用两个等值电阻分压比如两个 10kΩ 电阻从电源到地中点接同相输入端。但这两个电阻会引入噪声而且分压点的阻抗是 5kΩ和运放的偏置电流作用会产生误差。更好的做法是用一个低阻抗的基准电压源比如 TL431 或者 REF3025提供精确的偏置电压。如果对成本敏感可以在分压电阻两端并联一个大电容降低交流阻抗。8.4 运放自激的应急处理如果电路已经打板发现自激又不想重新打板有几个应急手段可以试试。第一在反馈电阻上并联一个小电容通常 10pF 到 100pF降低高频增益牺牲一点带宽换稳定性。第二在输出和反相输入之间串一个小电阻比如 10Ω 到 50Ω降低环路增益。第三在电源引脚就近加焊一个 0.1μF 电容改善去耦。这些手段都是治标不治本但能让你先拿到可用的波形后续再改版。我做过一个项目板子已经量产了才发现跟随器有轻微振铃就是在反馈电阻上并联了 22pF 电容解决的成本几乎为零。9. 写在最后的一些个人体会电压跟随器这个电路我画了十几年到现在每次画完还是会仔细检查一遍反馈走线和电源去耦。不是不自信而是这个电路太简单简单到容易让人放松警惕而模拟电路的坑往往就藏在那些看起来没问题的地方。如果你刚开始接触运放我的建议是不要一上来就追求高性能先用 LM358 或者 NE5532 这类通用运放把基本电路跑通用示波器看波形理解相位裕度、容性负载、压摆率这些概念在实际电路中怎么体现。等你能一眼看出波形上的过冲是相位裕度不足还是探头电容引起的再换高速运放做更复杂的设计。还有一点仿真软件里的运放模型通常是理想化的不会体现寄生参数和布局影响。仿真通过不代表实际电路能工作。我见过太多人仿真波形完美打板后振荡得一塌糊涂。仿真用来验证原理实际调试还是要靠示波器和反复试验。最后分享一个我常用的技巧在画跟随器 PCB 的时候提前在输出和负载之间预留一个 0Ω 电阻的位置。如果调试时发现振荡把这个电阻换成 50Ω 或者 100Ω问题可能就解决了。如果不振荡保留 0Ω 电阻不影响性能。这个预留位置不占地方但能省掉一次改版的钱和时间。
返回列表