1. 从一次电源板返工说起:误差放大器选型为什么值得单独拎出来讲
前阵子帮朋友复盘一块同步Buck电源板,输入12V、输出1.2V、满载6A,开关频率500kHz。板子能出电压,但负载一跳变,输出就往下掉一大截,恢复还慢,示波器上看环路响应拖泥带水。他一开始怀疑电感选小了、输出电容ESR太大,换了一轮料,问题依旧。最后把补偿网络和误差放大器那部分单独拎出来看,才发现根子在误差放大器的类型选错了——他用了一颗普通电压反馈运放搭补偿,而这类环路里更合适的其实是跨导运放(OTA)。
这件事让我觉得有必要把“Buck电路里误差放大器到底选普通运放还是跨导运放”这个话题单独写一篇。因为很多做电源的朋友,尤其是从数字电路或者通用模拟电路转过来的,第一反应就是“误差放大器不就是个运放嘛,随便挑个GBW够的就行”。但Buck的电压环补偿不是通用信号链,它有自己的传递函数结构、自己的零极点安排逻辑,误差放大器的类型直接决定了补偿网络怎么设计、环路带宽能拉多高、负载瞬态能压多小。
这篇内容适合三类人看:一是正在做DC-DC电路设计、被环路稳定性折腾过的硬件工程师;二是想搞明白“为什么有些电源芯片的COMP脚接法那么奇怪”的嵌入式开发者;三是学过运放电路工作原理、但没把它和开关电源闭环控制联系起来的电子爱好者。我会从两种放大器的本质差异讲起,把补偿网络的推导逻辑、实测对比、选型判断标准都摊开说,尽量让不同基础的人都能拿走能用的东西。
2. 普通运放和跨导运放,差的不只是一个输出级
2.1 先看输出端的本质区别:电压输出 vs 电流输出
普通运放,比如大家熟悉的NE5532、TL072、OPA2277这类,内部输出级是一个低阻抗的电压源。它的开环增益通常标成Aol,单位是V/V,输出端电压等于差分输入电压乘以这个增益。你在它输出端接反馈网络,它会把输出电压“拉”到让两个输入端虚短的程度,反馈网络里的电流由输出级提供,输出阻抗很低,一般几十毫欧到几欧。
跨导运放(Operational Transconductance Amplifier,OTA)不一样。它的输出级是一个受控电流源,开环增益标成gm,单位是A/V或者S(西门子)。输出电流等于差分输入电压乘以gm,输出阻抗非常高,理想情况下是无穷大。像LM13700、OTA在电源芯片里常见的内部误差放大器,都是这种结构。它不直接控制输出电压,而是控制输出电流,这个电流再流进外部的补偿网络,在补偿网络上产生电压。
这个区别听起来抽象,但落到Buck补偿上就是天壤之别。普通运放搭补偿,反馈网络是“电压分压+RC”,你调的是电压传递函数;OTA搭补偿,输出电流灌进一个RC网络到地,你调的是阻抗传递函数,最后电压是电流乘阻抗。两者的零极点位置公式完全不同,不能拿一套补偿参数直接套到另一种放大器上。
2.2 开环增益的“量纲”不同,导致补偿网络设计逻辑分叉
普通运放的开环增益是无量纲的,典型值80dB到120dB,也就是10000到100000倍。你在设计补偿时,通常先确定闭环带宽,然后根据开环增益和反馈网络算零极点。反馈网络里的电阻电容既决定直流工作点,也决定交流响应,两者耦合在一起。
OTA的gm是有量纲的,典型值在几十微安每伏到几毫安每伏之间,比如100μA/V到1mA/V。它的输出电流直接由差分电压决定,补偿网络是纯交流通路,直流工作点由另外的偏置或者反馈电阻决定。这意味着你可以把直流偏置和交流补偿分开设计,补偿网络只负责零极点,不用管直流。
这个差异在Buck里特别重要。因为Buck的输出电压设定靠反馈分压电阻,如果误差放大器是普通运放,分压电阻和补偿网络会互相影响,你调补偿的时候可能把直流精度也带偏了。而OTA结构下,分压电阻和补偿网络是相对独立的,调补偿更干净。
2.3 输出摆幅和驱动能力:一个容易被忽略的实战点
普通运放的输出摆幅通常能到电源轨附近,驱动能力也强,能直接驱动几毫安到几十毫安的负载。OTA的输出是电流源,输出摆幅受限于它后面的负载阻抗和供电,驱动能力弱,通常只能输出几十微安到几百微安。
在Buck的误差放大器应用里,这个差异会直接影响COMP脚的电压范围和动态响应。很多集成Buck芯片的COMP脚内部就是OTA,外面接一个RC到地,COMP电压范围可能只有0.5V到2.5V,你如果拿普通运放去替代,输出摆幅可能对不上,轻则环路增益异常,重则保护误触发。
我实测过用普通运放OPA2277搭一个Buck电压环,COMP脚电压能到3V以上,而原芯片OTA的COMP脚在同样负载跳变下只到2.2V。虽然都能工作,但动态响应和过冲完全不一样。所以选型时不能只看增益带宽积,输出摆幅和驱动结构必须一起看。
3. Buck电压环的传递函数里,误差放大器到底扮演什么角色
3.1 从功率级到补偿级:环路增益是怎么串起来的
Buck的电压环可以拆成几个部分:功率级传递函数Gvd(s)、反馈分压H(s)、误差放大器传递函数Gc(s)。环路增益T(s) = Gvd(s) × H(s) × Gc(s)。功率级Gvd(s)本身是一个二阶系统,有LC双极点,还有一个由输出电容ESR引入的零点。这个双极点会在谐振频率处产生-40dB/dec的滚降和180度相移,如果不补偿,环路在穿越频率处相位裕度会非常差。
误差放大器Gc(s)的任务就是在这个基础上加零极点,把相位裕度拉回来。普通运放和OTA实现的Gc(s)形式不同,但目标一致:在穿越频率附近提供足够的相位提升,同时保证低频高增益以减小稳态误差。
关键点在于,Gc(s)的零极点位置和误差放大器的开环特性强相关。普通运放的开环增益Aol(s)本身有一个主极点,OTA的gm(s)也有带宽限制。你设计补偿时,必须把放大器自身的极点和补偿网络的零极点一起考虑,不能只算补偿网络。
3.2 普通运放做补偿:Type II和Type III网络的推导逻辑
用普通运放搭Type II补偿,典型电路是输入电阻R1、反馈电阻R2和反馈电容C1、C2。传递函数大概是:
Gc(s) = - (1 + sR2C1) / [sR1(C1+C2)(1 + sR2C1C2/(C1+C2))]
这里有一个原点极点(由C1+C2和R1产生),一个零点(由R2和C1产生),一个高频极点(由R2和C1C2串联产生)。设计时你先确定穿越频率fc,然后让零点放在LC双极点附近,高频极点放在ESR零点附近或者更高,用来衰减高频噪声。
但这里有个坑:普通运放的开环增益Aol不是无穷大,它的主极点fp1会影响低频增益。如果Aol的主极点频率低于你的补偿零点频率,实际Gc(s)会和理论值偏差很大。我见过有人用GBW只有1MHz的运放做500kHz Buck补偿,结果低频增益不够,负载调整率很差。所以选普通运放时,GBW至少要是开关频率的10倍以上,最好20倍,同时开环增益要足够高。
3.3 OTA做补偿:为什么一个电容加一个电阻就能搞定
OTA做补偿简单得多。典型接法是COMP脚接一个电阻Rc和一个电容Cc串联到地,有时候再并一个电容Cp。OTA的输出电流io = gm × Verr,这个电流流进Zc(s) = Rc + 1/(sCc) 再并联 1/(sCp),产生COMP电压。
传递函数大概是:
Gc(s) = gm × Zc(s) = gm × (1 + sRcCc) / [s(Cc+Cp)(1 + sRcCcCp/(Cc+Cp))]
你看,形式上和普通运放的Type II几乎一样,但这里gm是常数,零极点只由Rc、Cc、Cp决定,和OTA的输入偏置、反馈分压完全解耦。这就是为什么很多集成Buck芯片的COMP脚外围只有两三个元件,因为OTA的gm已经内部固定了,你只需要调RC。
实测中,OTA的gm会随温度和工作点变化,典型温漂可能到±20%。这意味着你的补偿零点会跟着漂,相位裕度也会变。所以用OTA时,相位裕度要留够,一般建议至少45度,最好60度,给gm漂移留余量。
3.4 一个容易搞混的点:OTA的gm和普通运放的Aol不能直接换算
有人觉得OTA的gm乘以负载电阻就等于电压增益,所以可以等效成普通运放。理论上没错,但实际负载不是纯电阻,而是补偿网络的复阻抗。在直流时,OTA输出阻抗极高,负载是补偿网络的电阻部分,增益是gm × Rc;在高频时,负载是电容,增益是gm / (sC)。所以OTA的电压增益是频率相关的,不能用一个常数Aol来描述。
这个区别在环路稳定性分析里很关键。你用普通运放的分析方法去套OTA,会算错穿越频率和相位裕度。正确做法是分别写出两种放大器的Gc(s),然后代入T(s) = Gvd × H × Gc,用波特图或者仿真验证。
4. 实测对比:同一块Buck板换两种误差放大器,波形差多少
4.1 测试平台和替换方案
我搭了一个同步Buck测试板,输入12V,输出1.2V,开关频率500kHz,电感1μH,输出电容47μF陶瓷加220μF电解。功率级用的是集成MOSFET的控制器,原本内部误差放大器是OTA,gm典型值200μA/V。我把COMP脚断开,分别接两种外部误差放大器:
方案A:普通运放OPA2277,GBW 1MHz,开环增益120dB,搭Type II补偿,R1=10k,R2=100k,C1=1nF,C2=100pF。
方案B:OTA用LM13700的一半,gm设置成200μA/V,COMP脚接Rc=10k,Cc=1nF,Cp=100pF。
两种方案的补偿零点都放在约1.6kHz,高频极点放在约160kHz,穿越频率目标50kHz。负载跳变从1A到5A,上升时间1μs。
4.2 负载瞬态波形对比
方案A的波形:负载跳变时,输出电压下冲约80mV,恢复时间约200μs,有轻微振铃。方案B的波形:下冲约50mV,恢复时间约120μs,振铃更小。
为什么OTA方案更好?因为OTA的gm固定,补偿网络解耦,实际零极点更接近设计值。普通运放方案里,OPA2277的开环主极点在10Hz左右,虽然增益高,但在50kHz穿越频率处,运放自身还有额外相移,导致实际相位裕度比理论值低。我测下来方案A的相位裕度约40度,方案B约55度。
4.3 线性调整率和负载调整率对比
线性调整率:输入从10V变到14V,方案A输出变化约8mV,方案B约5mV。负载调整率:负载从1A变到5A,方案A输出变化约12mV,方案B约7mV。
差异来源是低频环路增益。OTA方案的低频增益是gm × Rc × 分压比,算下来约200μA/V × 10k × 0.1 = 0.2,也就是-14dB,加上功率级和分压,总低频增益足够。普通运放方案的低频增益受运放Aol和反馈网络影响,虽然Aol很高,但反馈网络的分压和补偿网络耦合,实际低频增益反而略低。
4.4 噪声和抗干扰表现
普通运放方案在开关节点噪声耦合上更敏感,因为运放输入端的高阻抗和补偿网络的电容会形成额外耦合路径。OTA方案输出是高阻电流源,COMP脚电压由RC网络决定,对开关噪声的抑制更好。实测方案A的COMP脚纹波约20mVpp,方案B约8mVpp。
但OTA也有弱点:gm随温度漂移,高温下gm可能下降20%,补偿零点频率上升,相位裕度下降。我在85度环境测试时,方案B的相位裕度从55度降到48度,还在安全范围。如果gm漂移更大,就需要用温度补偿或者选gm更稳定的OTA。
5. 选型判断:什么场景用普通运放,什么场景必须用OTA
5.1 集成Buck芯片的COMP脚:优先跟随原设计
大多数集成Buck芯片的COMP脚内部就是OTA,外围补偿网络是按OTA的gm设计的。你如果非要用普通运放替代,必须重新设计补偿网络,而且要注意COMP脚的电压范围和驱动能力。我的建议是:除非原芯片OTA坏了或者你要做特殊补偿,否则不要换类型。跟随原设计最稳。
5.2 分立Buck或者控制器外置误差放大器:看补偿自由度需求
如果你用分立MOSFET搭Buck,或者用PWM控制器外置误差放大器,那选择空间大。需要高直流增益、低输出阻抗、强驱动能力时,普通运放更合适。需要补偿网络解耦、简单RC补偿、低噪声耦合时,OTA更合适。
具体判断标准:
- 开关频率高于500kHz,优先OTA,因为普通运放的GBW和相移可能不够。
- 需要Type III补偿或者多零点补偿,普通运放更灵活。
- 输出电容ESR零点很低,需要精确补偿,OTA的gm稳定性要够。
- 成本敏感,OTA通常更便宜,外围元件更少。
5.3 一个折中方案:用普通运放搭OTA等效电路
如果你手头只有普通运放,又想要OTA的解耦特性,可以用普通运放加一个输出电阻Ro来模拟OTA。运放输出接Ro,Ro另一端接COMP脚和补偿网络。这样运放的输出电压转换成电流,io ≈ Vout / Ro,等效gm = 1/Ro。但要注意Ro会引入额外极点,而且运放的输出摆幅和驱动能力要够。
我试过用OPA2277加10k输出电阻模拟gm=100μA/V,效果介于纯普通运放和真OTA之间,补偿网络解耦了,但噪声和相移还是比真OTA差。适合临时验证,不适合量产。
6. 补偿网络参数计算的实操细节
6.1 先算功率级双极点和ESR零点
功率级LC双极点频率:fLC = 1 / (2π√(L × Cout))。以L=1μH,Cout=47μF为例,fLC ≈ 1 / (2π√(1e-6 × 47e-6)) ≈ 23kHz。ESR零点频率:fESR = 1 / (2π × ESR × Cout)。陶瓷电容ESR约2mΩ,fESR ≈ 1 / (2π × 0.002 × 47e-6) ≈ 1.7MHz,很高,可以忽略。电解电容ESR约50mΩ,fESR ≈ 68kHz,需要考虑。
6.2 确定穿越频率和相位裕度目标
穿越频率fc一般取开关频率的1/10到1/5,500kHz开关频率取50kHz到100kHz。相位裕度目标45度到60度。先算功率级在fc处的相移:双极点贡献-180度,ESR零点贡献+90度(如果fc高于fESR)。如果fc=50kHz,fLC=23kHz,fESR=68kHz,那在50kHz处,双极点相移约-140度,ESR零点相移约+36度,总相移约-104度。要保证相位裕度60度,补偿网络需要提供约-104 + 60 = -44度,也就是补偿网络要有足够的相位提升。
6.3 OTA补偿网络计算:Rc和Cc怎么定
OTA的Gc(s) = gm × (1 + sRcCc) / [s(Cc+Cp)(1 + sRcCcCp/(Cc+Cp))]。零点频率fz = 1 / (2πRcCc),高频极点fp = (Cc+Cp) / (2πRcCcCp)。设计时让fz等于或略低于fLC,用来提升相位。让fp等于或略高于fc,用来衰减高频噪声。
以fz=23kHz,fp=100kHz,gm=200μA/V为例。先选Cc,让gm / (2πfcCc) 在fc处提供足够增益。假设fc=50kHz,希望Gc在fc处的增益为1(0dB),则gm / (2πfcCc) = 1,Cc = gm / (2πfc) = 200e-6 / (2π × 50e3) ≈ 0.64nF,取1nF。然后Rc = 1 / (2πfzCc) = 1 / (2π × 23e3 × 1e-9) ≈ 6.9k,取10k。Cp由fp决定:Cp = Cc / (2πfpRcCc - 1) ≈ 1e-9 / (2π × 100e3 × 10e3 × 1e-9 - 1) ≈ 1e-9 / (6.28 - 1) ≈ 190pF,取200pF。
6.4 普通运放补偿网络计算:R1、R2、C1、C2怎么定
普通运放Type II的Gc(s) = - (1 + sR2C1) / [sR1(C1+C2)(1 + sR2C1C2/(C1+C2))]。零点fz = 1 / (2πR2C1),高频极点fp = (C1+C2) / (2πR2C1C2)。原点极点由R1和C1+C2决定,影响低频增益。
设计时先选R1,一般10k到100k,太小会加载分压网络,太大会引入噪声。然后根据fc处增益要求算C1+C2。假设fc=50kHz,希望Gc增益为1,则1 / (2πfcR1(C1+C2)) = 1,C1+C2 = 1 / (2πfcR1) = 1 / (2π × 50e3 × 10e3) ≈ 318pF。然后R2 = 1 / (2πfzC1),C1取300pF,R2 = 1 / (2π × 23e3 × 300e-12) ≈ 23k。C2由fp决定:C2 = C1 / (2πfpR2C1 - 1) ≈ 300e-12 / (2π × 100e3 × 23e3 × 300e-12 - 1) ≈ 300e-12 / (4.34 - 1) ≈ 90pF。
注意普通运放的输入偏置电流会在R1和R2上产生压降,影响输出精度。选运放时输入偏置电流要小,比如CMOS输入运放,偏置电流在pA级。
7. 踩过的坑和实测心得
7.1 坑一:用普通运放替代OTA后COMP脚电压被钳位
有一次我用普通运放替代某芯片内部OTA,COMP脚内部有钳位电路,电压不能超过2.5V。普通运放输出摆幅能到3.5V,结果一上电COMP脚就被钳位,环路增益异常,输出振荡。后来在运放输出串了一个二极管和电阻分压,把摆幅限制在2.5V以内才正常。所以替代前一定要看COMP脚的绝对最大电压和内部结构。
7.2 坑二:OTA的gm随温度漂移导致低温启动失败
冬天做低温测试,-20度时OTA的gm下降约30%,补偿零点频率上升,相位裕度下降,启动时输出过冲大,触发过压保护。后来把相位裕度设计到70度,低温下还有55度,才通过测试。所以用OTA时,相位裕度不能只按常温设计,要留温度余量。
7.3 坑三:普通运放的GBW不够导致高频相移
用GBW=1MHz的运放做500kHz Buck补偿,穿越频率50kHz,理论上够,但实际运放在50kHz处已经有明显相移,加上补偿网络的相移,总相位裕度只有35度,负载跳变时振铃严重。后来换GBW=10MHz的运放,相位裕度到55度,波形干净。所以普通运放的GBW至少是开关频率的20倍,最好50倍。
7.4 坑四:补偿网络电阻电容的寄生参数影响
高频下,补偿网络的电阻有寄生电容,电容有寄生电感,会导致实际零极点偏移。我测过0805封装的10k电阻,寄生电容约0.1pF,在100kHz处影响很小,但在1MHz处会影响高频极点。所以高频Buck的补偿网络要用小封装、低寄生参数的元件,布局时尽量靠近COMP脚,走线短。
7.5 一个实用技巧:用网络分析仪或者仿真验证环路
如果有网络分析仪,可以直接测环路增益和相位裕度。没有的话,用LTspice或者Tina-TI仿真,把功率级、分压、补偿网络都建进去,跑AC分析。仿真时注意运放模型要包含开环增益和相移,OTA模型要包含gm和输出阻抗。仿真结果和实测会有偏差,但趋势一致,能帮你快速筛选方案。
8. 最后分享几个选型和调试的硬经验
第一,不要迷信“OTA一定比普通运放好”或者反过来。关键看你的环路需求。集成芯片跟随原设计,分立设计看补偿自由度和成本。
第二,普通运放选型时,GBW、开环增益、输入偏置电流、输出摆幅四个参数必须一起看。GBW不够会导致高频相移,开环增益不够会导致低频调整率差,偏置电流大会影响直流精度,输出摆幅不匹配会触发保护。
第三,OTA选型时,gm的初始精度和温漂是关键。gm误差20%意味着补偿零点误差20%,相位裕度可能差10度以上。选gm稳定或者带温度补偿的OTA,相位裕度留够。
第四,补偿网络计算只是起点,实测必须调。我一般先按理论值搭,然后负载跳变看下冲和恢复时间,再微调Rc和Cc。下冲大就增大Cc或者减小Rc,恢复慢就减小Cc或者增大Rc。振铃就增大Cp或者减小高频极点频率。
第五,布局上,COMP脚走线要短,补偿网络靠近芯片,地线要干净。OTA的COMP脚是高阻节点,容易耦合噪声,周围不要走开关节点或者高di/dt的走线。
第六,如果实在拿不准,先用仿真跑一遍,再打样测试。仿真能排除大部分原理性错误,实测能暴露寄生参数和温度问题。两者结合,比单纯凭经验试错快得多。