
几年前我第一次独立调一颗两级运放仿真里所有指标都漂漂亮亮结果一上板输出波形直接起飞几十兆赫兹的正弦纹波趴在信号上甩都甩不掉。后来把环路断开用网络分析仪扫了一圈开环增益和相位才反应过来问题出在频率补偿上——那颗补偿电容的取值让相位裕度只剩十几度电路已经在振荡边缘来回试探了。放大器的频率补偿说白了就是调整开环增益和相位响应的形状让放大器加上反馈之后依然稳定同时尽量保住带宽和建立速度。这套方法不止适用于通用运放误差放大器、跨阻放大器、仪表放大器内部的各级单元底层逻辑全是相通的。下面这些内容我就按实际的设计和排查顺序来讲从振荡原理、主极点补偿、零点处理到手算参数、外部反馈网络补偿再到三级运放的嵌套补偿每一步都给足公式和实例适合正在调运放频响的硬件工程师也适合刚接触模拟IC设计的学生。1. 放大器为什么会自己振荡环路增益、相位裕度与自激判据1.1 负反馈变成正反馈的一瞬间一个放大器接成闭环比如跟随器、反相放大器或者仪表放大器的输出级反馈系数β就固定了。运放的开环增益A(s)随频率变化环路增益T(s)A(s)β也跟着变化一切稳定性问题都出在这个T(s)上面。如果某一个频率点满足两个条件——环路增益的幅值|T(jω)|≥1同时相位∠T(jω)回到-180°——负反馈瞬间就变成正反馈放大器自激振荡。你可以把这种状态想象成麦克风对着音箱音箱的声音被麦克风拾取放大后再从音箱出来声音越滚越大直到啸叫。放大器电路的自激和这个物理过程在数学上完全同源。实际运放的开环增益从低频的几十万倍开始以-20dB/dec的斜率衰减每个极点贡献最多-90°的相移。两三个极点叠加起来相位很快就逼近-180°而增益在0dB附近还有残留振荡条件就这么满足了。特别是跟随器、缓冲器这种β1的接法环路增益等于开环增益本身最容易出问题。1.2 相位裕度的“底线思维”相位裕度PM的定义很直接在|T(jω)|1的穿越频率处信号的相位距离-180°还有多少余量。这个余量是衡量放大器离自激还有多远的重要指标。PM0°临界振荡实际必振。PM20°勉强稳定但阶跃响应有严重振铃看着像振但还没完全振起来。PM45°闭环频响有大约2dB的尖峰瞬态响应过冲能到30%左右。PM60°频响基本平坦过冲5%-10%这是业界最常用的设计目标。PM90°对应单极点系统的表现理论上无过冲但往往是以牺牲带宽为代价换来的。增益裕度GM是另一个参考量描述的是相位恰好到-180°时环路增益还剩下多少衰减余量一般要求10dB以上。两个裕度一起看才能对稳定性做出比较完整的判断。相位裕度闭环频响阶跃响应工程判断0°尖峰无限大持续振荡危险区20°尖峰明显严重振铃不可用45°约2dB尖峰过冲约30%勉强可用60°基本平坦过冲5%-10%推荐目标90°完全平坦无过冲高精度但带宽低1.3 补偿的目标把相位亏损押后有了PM的概念补偿的本质就很好理解了。补偿不是在创造新器件而是通过调整极点-零点的布局改变开环传递函数的形状让主极点落在足够低的频率先把开环增益压下去这样其他高阶极点还没来得及贡献大量相移环路增益就已经降到1以下了。换句话说频率补偿做的是“押后爆发”的动作把相位亏损尽量推迟到穿越频率之后。理解了这一点后面看到各种补偿电路就不会觉得乱它们殊途同归——压低主极点、推远次级极点、消除或抵消有害零点。2. Miller补偿撬动极点一颗电容如何稳住两级运放2.1 Miller效应在补偿中的放大妙用一个增益为-A的放大级在输入和输出之间跨接一颗电容C从输入端看进去的等效电容是C(1A)。Miller效应在教科书里讲了很多但用在运放补偿里有个非常漂亮的结论利用这个效应可以用一颗很小的物理电容在内部产生一个很大的等效接地电容。两级运放里输入端到地的等效电容来自Cc乘以第二级电压增益gm2*R2。原本需要几百pF的电容才能达到的补偿效果现在一颗3-5pF的小电容就搞定了面积和寄生成本都低得多。这就是为什么IC运放的内部补偿几乎都是Miller结构的天下而不是真的去画一颗大电容对地那样面积代价完全没法接受。2.2 极点分裂一次补偿两个动作设两级运放第一级输出电阻为R1第二级输出端接了负载CL。Cc跨接在第二级输入和输出之间之后神奇的事情发生了主极点被压到极低频率因为输入端挂了一个被Miller效应放大的电容RC时间常数变得非常大。与此同时次极点反而被推高了因为Cc在第二级输出端形成了一条低阻抗路径削弱了这个节点的阻抗RC时间常数缩短了。这两个动作一个往下压、一个往上推在专业术语里叫极点分裂。极点分裂的意义在于它不增加级数、不消耗额外的静态电流却能系统性地把相位滞后从带宽内挪到带宽外为PM赢得宝贵空间。2.3 三个核心公式p1、p2与GBW简化后的传递函数给出三个关键结果主极点角频率ω_p1 ≈ 1/(gm2 * R1 * R2 * Cc)次极点角频率ω_p2 ≈ gm2 / CL单位增益带宽ω_u ≈ gm1 / Cc也就是GBW ≈ gm1/(2π*Cc)这三个式子基本是两级Miller补偿运放设计的地基。注意ω_p2只由第二级跨导gm2和负载电容CL决定跟补偿电容Cc没有直接关系。这说明一个很关键的问题负载电容越大次极点越低放大器就越难稳定而想要稳住要么提高gm2要么降低穿越频率。GBW由gm1和Cc决定也就是输入级的跨导除以补偿电容。一旦选定输入级的工作电流和晶体管尺寸gm1就基本固定想提高GBW只能减小Cc但Cc太小又会让Miller效应不够次极点附近出现复杂的相互作用稳定性再次恶化。3. 被很多人忽视的RHP零点来源、危害与三种收服方案3.1 前馈路径制造了一个“坏零点”Miller补偿电容Cc跨接在第二级输入和输出之间这个电容在高频下变成了一条直接通路。高频信号可以绕过第二级的放大和相移直接从输入端“前馈”到输出端这条前馈路径在传递函数里引入了一个右半平面零点也就是RHP零点。RHP零点的麻烦在于双重打击幅频响应从零点频率开始不衰减反而以20dB/dec上升相当于把高频增益抬高。相位响应和极点一样贡献约-90°的相位滞后。普通左半平面零点让相位超前、帮助稳定RHP零点则让相位雪上加霜增益还在往上走。很多新手验算相位裕度时漏了这一项实测PM比仿真低了10多度怎么调电容都压不住振荡问题就出在这里。标准的一级近似里零点频率zgm2/Cc和第二级跨导强相关。如果gm2偏小零点会落在穿越频率附近甚至以内PM被吃掉一大截电路照样振。这也就是为什么有些人加了大电容还是振荡——问题不一定在主极点而是在零点。3.2 方案一串联调零电阻Rz最经典的收服手段是在Cc支路上串联一颗电阻Rz把零点从右半平面挪走或者干脆消除。串联Rz之后零点频率变为z 1/[Cc*(1/gm2 - Rz)]这个公式有几个关键取值点Rz 1/gm2时分母为零z趋向无穷大RHP零点被完全消除。Rz 1/gm2时分母变负零点翻转到左半平面变成一个正经的左半平面零点。如果希望这个左半平面零点去抵消次极点p2可以取Rz_opt 1/gm2 CL/(gm2*Cc)。从工程角度看最稳妥的做法是把Rz调到1/gm2附近先把零点推到高频去让它离穿越频率足够远。刻意让零点抵消次极点虽然理论上能进一步提升PM但gm2随温度和工艺变化明显一旦Rz跟不上gm2的变化零点和极点错位会形成极点-零点双峰虽然不影响最终精度却会让建立时间变慢甚至出现迟滞的“长尾巴”。我自己做量产设计的时候更倾向于让零点略高于次极点而不是追求精确抵消。Rz在IC里一般用多晶硅电阻或者用工作在线性区的MOS管。比较讲究的设计会用复制gm2的偏置电路来产生Rz保证两者随温度和工艺同步漂移。3.3 方案二切断前馈通路既然RHP零点来自Cc的前馈效应那直接把前馈通路切断也是一种思路。具体做法是在Cc和输出节点之间插入一个缓冲器通常是一个源极跟随器或者共栅级。高频信号没法再通过Cc直接串到输出RHP零点自然消失补偿行为非常“干净”只剩纯粹的Miller极点和左半平面特性。代价也很明确额外一个晶体管支路的功耗额外一个高频极点输出摆幅还可能会受限制。这种结构在高精度、高线性度运放里能看到因为补偿网络干干净净电路行为好预测。3.4 方案三反相增益级让零点改邪归正第三种做法比较进阶不插跟随器而是在补偿支路里放一个反相的增益级比如共栅级或者专门的反相gm级。前馈信号的极性被反转之后原本的RHP零点就变成了左半平面零点。这种方案在文献里通常叫Ahuja补偿或类似的名字。好处是既不用额外的高阻缓冲器又能保留Miller补偿的极点分裂效果还能把零点变成“自己人”。坏处是电路结构复杂偏置要重新设计不是随便加个管子就行的。这类结构常见于宽带放大器和对相位余量要求苛刻的高速运放。3.5 定位零点问题最快的方法我每次接手一个振荡的运放电路第一件事不是改电容而是用AC仿真看开环幅相曲线再对照公式估算零点位置。具体做法是在运放主输出端断开反馈环加入一个很大的交流电感作为信号注入点另外用大电容把断开点接回去维持直流偏置扫描出开环增益和相位曲线。然后直接利用zgm2/Cc做数量级估算跟仿真相差不超过30%就基本符合预期。这个方法比盲目试电阻和电容高效得多几分钟就能判断振荡到底是主极点不够低、次极点不够高还是零点在搞鬼。4. 手算一套两级运放补偿参数从GBW与负载电容出发4.1 先定目标CL、GBW与初选Cc假设需求是做一颗单位增益稳定的两级运放负载电容CL10pF要求GBW10MHz相位裕度至少60°。第一步选Cc。经验法则取Cc≈CL/3比较合适既不会让输出节点负载太重也不至于划出太大的芯片面积。按这个原则初选Cc3.3pF。第二步由GBW公式反推输入级跨导gm1设计目标CL 10 pFGBW 10 MHzPM ≥ 60° 取 Cc 3.3 pF gm1 2π * GBW * Cc 6.28 * 10 MHz * 3.3 pF ≈ 207 μA/V这个gm1大约对应输入差分对在0.2-0.3mA尾电流下的跨导在功耗和噪声上属于比较常规的选择。4.2 输出级跨导是决定生死的那双手接下来是重头戏确定第二级跨导gm2。由ω_p2gm2/CL可知次极点位置完全由gm2和CL决定。为了让穿越频率处有足够的PM需要次极点明显高于穿越频率。先试一个较重的输出级gm21.8mA/Vp2 gm2 / CL 1.8 m / 10 p 180 M rad/s ≈ 28.6 MHz z gm2 / Cc 1.8 m / 3.3 p 545 M rad/s ≈ 86.8 MHz ω_u 2π * 10 MHz 62.8 M rad/s PM 180° - 90°主极点贡献- arctan(ω_u/p2) - arctan(ω_u/z) 180° - 90° - arctan(62.8/180) - arctan(62.8/545) ≈ 180 - 90 - 19.2 - 6.6 ≈ 64.2°PM为64度满足要求。如果输出级做轻一点比如gm2只有0.8mA/V情况就完全不一样了p2 0.8 m / 10 p 80 M rad/s ≈ 12.7 MHz z 0.8 m / 3.3 p 242 M rad/s ≈ 38.5 MHz PM 180° - 90° - arctan(62.8/80) - arctan(62.8/242) ≈ 180 - 90 - 38.1 - 14.5 ≈ 37.4°37度相位裕度阶跃响应会带着明显的振铃稍有工艺偏差就是持续振荡。这个对比说明了整个两级Miller补偿设计里最重要的一条规律第二级跨导gm2是稳定性最核心的抓手它的价值比一味加大Cc高得多。4.3 调零电阻带来的精确性提升回到gm21.8mA/V的方案再加一颗Rz1/gm2556Ω的调零电阻把RHP零点推到无穷远PM 180° - 90° - arctan(62.8/180) ≈ 70.8°相位裕度从64度提升到接近71度这个余量对付温度和工艺漂移都更稳妥。如果不满足于此还想让左半平面零点去抵消次极点可以取Rz_opt 1/gm2 CL/(gm2 * Cc) 556 10/1.8/3.3 ≈ 2.24 kΩ这个值会让PM大幅提升逼近单极点系统的行为但同时带来前面说的极点-零点双峰风险。我的意见是量产设计里这2.24k不是首选优先用556Ω把零点干干净净消掉。4.4 大负载电容下的应急策略如果CL特别大比如100pF次极点被压到很低Miller补偿会非常吃力。此时有三个方向提高gm2也就是加大输出级电流用功耗换稳定性。增大Cc主动降低GBW给次极点更多空间。改架构比如加输出缓冲级或者改用为驱动大电容专门优化的电路结构。有人直接在通用运放后面硬接大电容补偿怎么调都在振最后在输出串了一颗几十欧的隔离电阻利用阻性负载压低Q值才勉强稳住。这是工程上的妥协方案能救命但会引入额外极点和驱动能力下降的问题必须把所有负载条件都评估一遍才能用。5. 误差放大器的外部补偿Type I/II/III网络怎么选5.1 误差放大器为什么靠外部网络补偿前面几章讲的都是运放内部补偿但工程上还有一大类场景是靠外部RC网络做补偿的最典型的就是电源变换器里的误差放大器。误差放大器内部往往就是一颗高增益低带宽的运放真正的频率整形全靠外围反馈网络完成。这种做法的好处是灵活同一个误差放大器换一组RC就能适配不同的功率级滤波参数、不同的开关频率。对电源工程师来说外部补偿网络才是真正的“调音台”。5.2 Type I/II/III的职责划分外部补偿网络按结构通常分成Type I、Type II、Type III三类Type I只有一个积分电容形成一个位于原点的极点相位恒定-90°。环路稳定性天然好但带宽低几乎没有相位提升能力只适合对动态要求不高的场合。Type II一个积分极点加一个零点、一个高频极点。零点可以在穿越频率附近拉高相位适合补偿只有单极点相位衰减的功率级比如电流模式控制的Buck。Type III两个积分极点加两个零点、两个高频极点能提供最多约180°的相位提升专门用来对付电压模式控制下LC滤波器产生的双极点。选型的时候先看功率级的传递函数有几个需要补偿的极点。LC双极点存在基本就要上Type III电流模式控制把电感极点推远了Type II往往就够。5.3 Buck变换器补偿零极点布局实例举一个实际的电压模式BuckL10μHC44μFESR5mΩ开关频率500kHz。LC滤波器产生的双极点频率f_LC 1/(2π√(L*C)) 1/(2π√(10μ * 44μ)) ≈ 7.6 kHzESR产生的零点频率f_ESR 1/(2π*C*ESR) 1/(2π*44μ*5m) ≈ 723 kHz穿越频率一般取开关频率的1/10到1/6也就是50kHz到80kHz。这里取50kHz。Type III网络的零极点这样摆两个零点都放在LC双极点附近甚至略低取3.5kHz用来抵消LC双极点的相位坍塌。第一个高频极点放在ESR零点附近约700kHz。第二个高频极点放在开关频率一半附近约250kHz用来压低高频增益抑制开关噪声。这样布置后穿越频率处环路有大约55-65度的相位裕度同时低频增益很高稳态精度有保障。整个计算在Excel里就能完成不需要一上来就开仿真软件。5.4 外部补偿与内部补偿怎么分工内部补偿解决的是运放自身开环传递函数的稳定性外部补偿解决的是整个反馈环路的稳定性。两者并不是二选一的关系很多误差放大器内部已经做了某种程度的补偿但外围网络仍然可以进一步整形环路。理解这一点很重要——如果直接把内部单位增益稳定的运放拿来当误差放大器用外部网络设计的自由度会受到限制因为运放自身的带宽和相位特性已经固定了。反过来一些号称decompensated的运放内部刻意只做了部分补偿留出足够的相位空间让你用外部闭环增益去“补完”稳定性。这种运放用在固定增益大于1的场合带宽可以比单位增益稳定运放高很多但用不好就是振荡。6. 更难的场景跨阻放大器的大输入电容与三级运放的嵌套补偿6.1 TIA振荡的根因被输入电容拖累的反馈系数跨阻放大器TIA是光电检测电路的核心把光电二极管的电流信号变成电压信号。它难稳定的一大原因就是输入端电容非常大光电二极管结电容、运放输入电容、PCB寄生电容加在一起轻轻松松十来个pF。输入电容会改变反馈系数β的频率特性。设总输入电容Ci10pF反馈电阻Rf10kΩ运放GBW100MHz。没有反馈电容时β在约1.6MHz处有一个极点而运放的GBW远高于这个位置环路增益在穿越频率附近会遇到这个极点带来的近90°相移叠加运放自身的极点总相移直奔-180°必振。6.2 TIA反馈电容Cf的确定方法解决办法是在Rf上并联一个小电容Cf在β中引入零点来抵消输入电容的极点工程上常用下面的经验公式Cf ≈ sqrt(Ci / (π * Rf * GBW))代入数值Cf sqrt(10p / (3.14 * 10k * 100M)) ≈ 1.8 pF加了这1.8pF之后闭环-3dB带宽大约由Rf和Cf共同决定f_3dB ≈ 1/(2π * Rf * Cf) ≈ 1/(2π * 10k * 1.8p) ≈ 8.8 MHz这样既保证了带宽又能让相位裕度落在45-60度的安全区间。实际调试时如果还有振铃应该优先微调Cf而不是去动Rf。Rf一旦变了增益和带宽全都跟着变。还要特别注意把PCB走线和运放输入的所有寄生电容都计入Ci少算一个pF都可能让Cf偏小、相位裕度不足。6.3 三级运放一个Miller电容搞不定的系统三级运放在高增益、低功耗场景里很常见但它有三个低频极点每个极点贡献最多-90°相移三条相位曲线叠起来GBW处早就是-270°单个Miller电容只能分裂两个极点第三极点还是会狠狠切进穿越频率附近相位亏损严重。应对手段之一是嵌套Miller补偿NMC用两个补偿电容Cc1、Cc2嵌套起来一个接在第一级输出和第二级输出之间另一个接在第一级输出和最终输出之间。理想设计可以让整体闭环传递函数达到三阶巴特沃斯滤波器的极点分布Q值控制在0.707左右相位裕度60度以上。代价是补偿电容总面积大、偏置电流需求高、建立速度变慢。6.4 NMC、阻尼因子与前馈进阶打法NMC的局限催生了更聪明的结构。阻尼因子控制补偿DFCFC在补偿网络里加入一个阻尼电阻或额外的跨导级改善整个环路对负载变化的敏感度瞬态性能比NMC好不少。有源前馈补偿则是在信号通路里加一条高频旁路让高频信号绕过相移最严重的中间级直接到达后级换取更大的带宽和更好的相位特性。这些结构在高级模拟IC里很常见新手先从两级运放的Miller补偿吃透再看这些就不会迷路。它们的底层逻辑仍然是那句老话压低主极点清理穿越频率附近的相位污染。6.5 架构优化优先补偿兜底我个人的经验是补偿本质上是在跟物理限制做妥协消耗带宽、面积和功耗。如果一个放大器架构本身先天不稳优先考虑改架构比如增加共源共栅提高节点隔离度、用增益提高技术压低非主极点这比死磕一颗补偿电容更值得。很多高增益运放靠gain-boosting就稳得很根本不需要一颗大电容来拖慢速度。补偿是最后一道保险不是唯一的救命稻草。7. 仿真之外的设计习惯工艺角、版图寄生与调试顺序7.1 先AC后瞬态先公式后仿真拿到一颗运放先跑开环AC仿真把幅频和相频曲线的极点、零点标出来再用手算公式估算一遍。两者差异大的地方一定有寄生或者模型偏差先把偏差解释清楚再继续下一步。我习惯把补偿相关的公式做成一个小表格输入gm1、gm2、Cc、CL就能快速算出PM做方案对比非常方便。瞬态仿真放后面做。瞬态波形能直观看到振铃和过冲但看不出根因。只有先把频域问题定位清楚瞬态验证才有意义。7.2 工艺角要扫“最坏的那组”补偿参数在tt工艺角下很漂亮换到ss、ff或者温度高低角就会暴露问题。gm2变了RHP零点位置变了Rz的阻值也跟着漂整个稳定性平衡可能被打破。量产设计必须把工艺角和温度范围全扫一遍我额外关注两个组合最小gm2角通常是ss低温这时候次极点和RHP零点都往低频靠最大负载角输出电容按规格上限取。这两个条件最容易抓出振荡。7.3 版图寄生是补偿参数里的隐藏变量补偿电容如果用了MIM或MOS结构版图走线带来的寄生电阻和寄生电容会进入补偿支路改变Rz的有效值和零点位置。高频环路里走线电感也不是完全能忽略的。建议版图完成之后做一次寄生提取再回跑AC仿真如果PM变化超过5度就要回头调整补偿网络的取值或者优化走线。7.4 稳定是设计出来的不是调出来的调频率补偿像驯一匹烈马先给一个明确的围栏PM至少60度再慢慢放开带宽。不要一上来就追最优点那往往是最容易翻车的地方。我自己的习惯是每调整一个元件就保存一次仿真记录最后把所有版本的PM和瞬态响应摆在一起对比找出那个“既不振荡又够快”的平衡点。频率补偿没有银弹但把公式、仿真、版图这三件事串起来绝大多数振荡问题都能在设计阶段解决而不是等到样机回来在示波器上抓狂。