ARTICLE DETAIL

资讯详情

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

LDO输出振荡?一文搞懂ESR对环路稳定性的关键作用

LDO输出振荡?一文搞懂ESR对环路稳定性的关键作用 上周调一块给主控供电的板卡LDO输出2.8V空载纹波干干净净一旦负载从50mA跳到400mA输出就不老实了——示波器上能看到上百千赫兹的阻尼振荡一连好几个周期才恢复。我下意识先加电容又在输出端并了两颗10μF陶瓷电容结果振得更凶。最后把输出电容换成100μF钽电容波形才安分下来。折腾半天罪魁祸首不是容值而是电容的ESR。后来我用LTspice把整个LDO环路仿真了一遍彻底看懂了这颗“捣乱电阻”的工作机制。这篇文章把整个排查和仿真流程完整写出来包括怎么搭电路、怎么测Bode图、怎么读相位裕度、怎么用.step一键扫ESR给正在跟LDO稳定性较劲的朋友做个参考。无论你是偶尔摸一下电源的硬件工程师还是刚接触LTspice的在校学生照着操作一遍基本就能建立对稳压器环路稳定的直观感觉。1. 为什么LDO输出会自己振荡先看懂环路三大核心参数1.1 LDO不是一个“三端元件”而是一个负反馈系统很多人用LDO的时候习惯把它当成一个带输入、输出、地的三端稳压块觉得只要电容按数据手册焊上就能工作。但LDO本质上是一个负反馈环路内部误差放大器比较参考电压和输出反馈电压根据误差去控制一个串联调整管的导通程度最终让输出电压稳定。这个环路里有两个关键量前向增益A(s)从误差放大器的输入端到调整管栅极、再到输出节点的总增益。反馈系数β输出节点经过反馈分压电阻网络后回到误差放大器反相输入端的比例。环路的总开环增益就是 T(s) A(s) × β(s)。LDO能不能稳定核心就围绕这个T(s)的幅频和相频特性。只要环路增益在某个频率上幅度大于等于1同时该处的相位滞后又足够恶负反馈就会变成正反馈电路自己给自己“加油”振荡油然而生。用一个空调来比喻你设定了26℃传感器探测室温控制器调节压缩机。如果传感器、压缩机和空气流动之间的响应速度不匹配室内温度就会反复过冲忽冷忽热。LDO的环路一旦相位裕度不够输出电压就会在目标值附近来回折腾。1.2 两个极点是怎么凑成振荡的LDO环路里有两个最典型的极点主极点P1一般在误差放大器的输出级也就是调整管的栅极或基极位置。这里阻抗很高寄生电容很大主极点频率往往很低可能落在几百Hz到几kHz。输出极点P2由输出电容Cout和负载电阻Rload共同决定频率为 fp2 1 / (2π × Cout × Rload)。注意P2是跟着负载走的。轻载时Rload很大P2被压得很低重载时Rload变小P2往高频推。这样一来本来低频只有主极点P1的时候增益以-20dB/dec斜率下降相位滞后最多-90°环路想振荡都难。可一旦P2也落进带宽内两个极点同时作用增益下降斜率就变成-40dB/dec相位滞后朝-180°逼近相位裕度迅速恶化自激振荡的条件就具备了。这就是为什么LDO的稳定性问题多出现在“轻载大电容”或“重载高带宽”这两类场景——它们都能把输出极点拖进一个尴尬的频率位置。1.3 ESR电阻的关键身份一个可移动的零点提供者大家说的ESR是输出电容的等效串联电阻英文Equivalent Series Resistance。它不是一个外接的普通电阻而是电容内部电极材料、电解液或介质损耗的综合表现。在频域里ESR和电容本身会共同产生一个零点频率为fz 1 / (2π × ESR × Cout)这个零点很关键。当环路增益以-40dB/dec下滑时如果零点的位置刚好落在增益交越频率附近它就能把斜率从-40dB/dec“掰回”-20dB/dec同时把相位往回拉救相位裕度于水火。但零点不是固定不动的它会随着ESR的增大而往低频方向移动。ESR太小零点频率太高远远落在带宽之外等于没有这个零点ESR太大零点频率过低又可能让输出阻抗高频段抬高带来其他问题。下表是三类常见电容在不同容值下的ESR零点大致范围假设Cout10μF电容类型典型ESR范围零点频率估算对LDO稳定性的作用陶瓷电容MLCC5~20mΩ800kHz~3MHz零点太远对环路帮助有限钽电容0.1~1Ω16kHz~160kHz零点容易落在目标带宽附近补偿效果理想铝电解电容1~10Ω1.6kHz~16kHz零点偏低可能过补偿同时瞬态压降变大看到这儿你应该就明白为什么有些老款LDO的数据手册里会明确写“输出电容ESR必须大于0.5Ω且小于10Ω”了。这不是玄学而是它的内部补偿只依赖ESR零点来维持稳定。2. 从零搭建LDO仿真电路LTspice元件选型与.step扫ESR2.1 选一个能方便断环的LDO宏模型LTspice元件库里有很多LDO宏模型比如LT1117、LT1963、LT3060等等。我建议用可调输出ADJ版本比如LT1117-ADJ因为后面测环路增益时需要在反馈分压点和误差放大器输入端之间插入测试信号源固定输出版本内部反馈网络完全封闭根本找不到落脚点。在LTspice里按F2搜索“LT1117A”或者直接在元件库里翻到“voltage regulators”分类能找到LT1117-ADJ。它的输出电流能力为1A引脚包括IN、OUT、ADJ、GNDVREF约1.25V正好适合当教学案例。如果手上有其他厂家的SPICE模型也可以导入具体方法后面第5章会说。2.2 搭建电路与关键参数设置仿真原理图不需要复杂核心就是把LDO的外部功率部分和反馈分压网络搭完整。我给的参数如下器件设置VINDC 5V可保留0.1Ω寄生电阻CIN10μF用于输入退耦U1LT1117-ADJR110kΩ从输出端到反馈分压交点R25.6kΩ从反馈分压交点到GNDCOUT10μFESR设为参数{esr}Rload10Ω静态负载约0.33A用R110kΩ、R25.6kΩ算一下输出电压Vout VREF × (1 R1/R2) IADJ × R1 ≈ 1.25 × (1 10/5.6) ≈ 3.48VIADJ典型值只有几十微安乘以10kΩ也就是几十毫伏级仿真里可以先忽略。在LTspice里放置电容后双击电容在“Value”那一栏填容值然后在“SpiceLine”里填Rser{esr}。此时esr还没有定义直接跑仿真会报错所以还需要加一条.param esr1指令作为默认值或者直接用.step扫描。负载方面除了放一个10Ω电阻还可以并联一个脉冲电流源专门用来做负载阶跃瞬态仿真。电流源的设置是PULSE(0 0.5 100u 1u 1u 200u 500u)表示负载电流在100μs时从0跳变到0.5A上升沿1μs维持200μs后再回落到0。2.3 用.step指令一键扫ESR稳定性的对比实验最忌讳一个一个改参数反复仿真。LTspice提供了.step指令可以一次跑多组参数。这里我们这样写.step param esr list 0.01 0.1 1 5 10这时电容的ESR会依次取10mΩ、100mΩ、1Ω、5Ω、10Ω。配合AC扫描一次就能出来五组Bode图配合瞬态扫描一次也能出来五组输出波形。如果你只想快速观察趋势也可以写成.step dec param esr 0.01 10 5不过list方式更直观因为跑完之后你清楚每一组曲线对应哪个ESR值。3. Bode图怎么读相位裕度与增益交越频率判断流程3.1 先给稳定性定一个量化标准判断LDO稳定性工程师最常看两个指标相位裕度PMPhase Margin在环路增益幅度降到0dB的那个频率点也就是增益交越频率处环路相位距离-180°还差多少度。一般要求≥45°工程上做到60°比较理想。增益裕度GMGain Margin在环路相位到达-180°的那个频率点增益幅度比0dB低多少。一般要求≥6dB。相位裕度不足瞬态响应会振铃裕度越小振铃越厉害增益裕度不足可能在高频段出现自激两种都要看。只要在LTspice里把环路增益T的幅频和相频曲线拉出来这两个指标都能直接量出来。3.2 LTspice断环测量怎么操作测LDO环路增益不能简单地在输出节点上加一个交流小信号源因为那样会把输出负载阻抗改变测出来的不是真实的环路响应。我们需要把环路真正断开在断开点注入测试信号再测返回信号。推荐在LT1117-ADJ的ADJ引脚处断环。操作方法是把R1和R2的公共节点起一个网络标签比如叫adj。把LT1117-ADJ的ADJ引脚单独引出一段线起一个网络标签比如叫inj。在adj和inj之间串入一个理想电压源VtestDC值设为0AC幅度设为1。添加AC仿真指令。注意Vtest要保证分压节点和ADJ引脚之间直流电平是通的所以它的DC值必须为0这样直流工作点不会被破坏。加入AC仿真指令.ac dec 100 1 10Meg .step param esr list 0.01 0.1 1 5 10仿真完成后在波形窗口添加一个表达式将环路增益T定义为T -V(adj)/V(inj)然后分别plot这个表达式的db()和ph()就得到了Bode图。3.3 从Bode图上直接读相位裕度在LTspice的波形窗口里增益曲线看db(-V(adj)/V(inj))。相位曲线看ph(-V(adj)/V(inj))。使用游标找到增益曲线穿过0dB的那个频率点然后看同一频率下相位曲线的数值。假设交越频率处的相位为-120°那么相位裕度就是180 - 120 60°。如果相位曲线在某些状态下显示为正角比如240°你就把它等价成-120°来看本质一样。增益裕度也一样找到相位达到-180°的频率看该频率下增益比0dB低多少。如果显示为-18dB说明增益裕度有18dB比较安全。这里要说明一个容易迷惑的点负反馈环路的低频相位天然就接近-180°这不是不稳定。真正的不稳定信号要看增益交越处的相位余量。很多新手第一次看到低频相位在-180°附近容易误判以为系统已经振荡了——其实那是负反馈接线的正常状态。4. ESR从10mΩ扫到10Ω三种典型仿真结果对比分析4.1 ESR10mΩ陶瓷电容的稳定边缘在.step里跑第一组ESR10mΩ时输出电容相当于一颗低ESR的陶瓷电容。Bode图上增益交越频率通常落在几十千赫兹到几百千赫兹之间但因为ESR零点跑到1.6MHz以上远在带宽之外环路相位得不到有效补偿交越点处的相位裕度可能只有20°~30°甚至更低。瞬态仿真结果也印证了这一点负载电流突加后输出电压出现明显的衰减振荡过冲可达几十毫伏要振荡好几个周期才稳定。这就是开头我遇到的现场在输出端并联更多低ESR陶瓷电容看起来像是增强了滤波实际上只是把输出极点继续往低频拉让相位裕度进一步恶化振得更厉害。4.2 ESR1Ω钽电容的经典表现把ESR设成1Ω保持Cout10μFESR零点频率大约为16kHz。这个位置如果刚好在增益交越频率附近相位就会得到及时拉升相位裕度往往能到50°以上。瞬态仿真里输出过冲明显变小振铃几乎消失恢复时间也缩短。这是钽电容常见的稳定表现。老式LDO数据手册里推荐的输出电容范围很多就是基于这类ESR区间设计出来的。需要注意钽电容的ESR会随温度变化低温下ESR可能翻倍所以仿真时不要只取一个常温值。用.step多扫几个温度或ESR看最坏情况下的裕度是否还能接受。4.3 ESR10Ω铝电解电容的过补偿风险ESR涨到10Ω零点频率降到1.6kHz。这个零点已经落在主极点附近相位拉升作用很强理论上相位裕度挺好看。但副作用也明显零点频率太低增益曲线在低频段过早展平当调整管输出阻抗和负载电容在更高频段形成附加极点时高频段可能出现新的增益过零带来隐性振荡风险。瞬态仿真还能看到另一个问题ESR太大时负载阶跃瞬间输出电容上的压降跳变大部分落在ESR上输出电压会出现一个很大的台阶式跌落随后才缓慢恢复。这个“台阶”不是振荡但会让负载端的电源跌落超过预期。所以在实际电路里铝电解电容虽然ESR容易满足老式LDO的稳定性要求但瞬态响应和纹波表现并不算好更适合对瞬态要求不高的低频退耦场景。4.4 瞬态仿真补充三种ESR的时域表现在LTspice里可以把仿真指令切换成瞬态.tran 600u .step param esr list 0.01 1 10负载电流源用前面说的PULSE(0 0.5 100u 1u 1u 200u 500u)跑完之后对比V(out)的波形你会非常直观地看到三种ESR下的行为差异ESR值过冲幅度振铃情况恢复时间10mΩ大明显多周期振荡长1Ω小基本无振铃短10Ω台阶式跌落明显无振铃但恢复缓慢较长这种“AC看裕度瞬态看手感”的组合比单纯看DC输出准确得多。5. LTspice稳定性仿真翻车实录5个高频报错点排查5.1 断环后直流工作点不对相位曲线全乱如果插入Vtest后发现输出电压偏离了正常值最常见的原因是Vtest的DC值没有设成0。有些人在AC源参数里习惯填“AC 1”却忘记把DC设成0导致串联进去一个直流电压直接把误差放大器输入偏置抬偏了环路工作点全乱测出来的Bode图自然没有参考价值。解决方法是双击Vtest确认DC offset里填的是0AC amplitude里填的才是1。如果电路在断环后不容易收敛可以在LTspice的仿真指令里加.options gmin1e-10 abstol1e-12 reltol1e-6或者直接在输出电容上设定初始条件IC3.3V能帮工作点快速起振。5.2 相位曲线在低频从0°开始符号反了如果你画出的T表达式是V(adj)/V(inj)没有加负号相位曲线在低频段会从0°附近开始而不是从-180°附近开始。这会让不少新手误判。这不是仿真错误而是测量方向的问题。负反馈环路的低频相位本就该落在-180°附近。为了让曲线显示习惯一些可以修改表达式为-V(adj)/V(inj)。加了一个负号之后低频相位就会回到-180°一侧后续读相位裕度也更顺手。但如果加了负号之后曲线反而变成了从0°开始那说明你的测量方向定义反了把adj和inj两个标签互换一下即可。5.3 提示“Unknown schematic syntax”是哪里写错了LTspice对Spice指令的语法很挑剔经常出现的报错有这几种.step param esr list 0.01 1 10写到了原理图图纸上而不是放到Spice Directive里。放错位置LTspice会把文本当成一个无效元件报一大堆看不懂的错。电容的SpiceLine写了Rser{esr}但.param esr指令没写变量未定义仿真开始前就会报“Unknown parameter esr”。.step语句里用了中文标点比如全角空格、逗号也会导致解析失败。检查方法很简单把所有指令都通过菜单“Edit - SPICE Directive”添加。字符统一用英文半角参数名不要带下划线以外的特殊符号。5.4 外部SPICE模型导入后提示引脚未知如果不用库里的LT1117而是从官网下载其他LDO的SPICE模型最常见的导入坑是引脚顺序不对。外部模型一般是一个.subckt开头几行是.subckt LT1234 IN OUT GND但图形符号默认引脚顺序可能是输出、输入、地。两者不匹配时需要右键元件重新编辑引脚顺序或者在原理图符号上把节点标签和.subckt声明逐一对应。更省事的办法是直接为这个模型画一个匹配的图形符号文件名保存为同名的.asyLTspice会自动关联。另外模型文件必须放在当前工程目录下用.include xxx.lib引入。如果放在LTspice安装目录的lib\sub目录里记得用绝对路径或相对路径路径写错也会报文件找不到。5.5 保存后多出一堆文件仿真数据怎么管理LTspice仿真完之后工程目录下会多出.raw、.log等文件。.raw文件是波形数据.log是错误日志和简化运算记录。很多新手以为文件损坏删掉之后发现再打开原理图没有波形了。我的习惯是给每个仿真项目单独建一个文件夹原理图、模型文件、波形数据都放在一起。尤其当你用.step跑多组参数时.raw文件会很大但这是正常现象。想看哪组结果直接在.raw的波形窗口里右键选择“Select Steps”就能切换不同ESR值不用每次都重新仿真。6. 从仿真到实物ESR选型建议与实测细节6.1 不同ESR对应的电容选型方向仿真看明白之后落到实物选型上思路就清晰了。针对传统需要外部ESR补偿的LDO我一般按这个表来选输出电容电容类型典型ESR范围适用场景注意陶瓷电容MLCC5~20mΩ内部补偿完善的现代LDO传统LDO慎用易振荡钽电容0.1~1Ω传统LDO的标准伴侣注意耐压过压会短路失效铝电解电容1~10Ω大容值低频滤波高频特性差并联陶瓷后需重新测裕度MLCC外串电阻可控需要精细调整ESR零点的场合串阻功率要够瞬态台阶增大如果你用的是内部补偿良好的现代LDO比如LT3045、LT1963这类专门为低ESR陶瓷电容优化的型号那输出电容直接用低ESR的陶瓷电容反而更好不要为了追求“老经验”刻意串大电阻。所以仿真前先确认你手头LDO的内核是哪一类设计这直接影响ESR的要求。我自己的习惯是先用仿真把“ESR允许的上下限”找出来再去规格书里挑ESR落在这个区间内的电容。避免“别人说陶瓷电容好就全用陶瓷别人说钽电容稳就全用钽”的盲目跟风。6.2 LTspice中的几个提效小技巧说几个平时用LTspice做电源仿真常用的技巧第一用.step配合.meas可以自动筛出相位裕度到达目标的ESR区间。虽然LTspice的.meas语法对新手不太友好但一旦写顺手一堆ESR扫描数据就能自动汇总。简单示意.meas AC f0 find freq when mag(V(adj)/V(inj))0db .meas AC lf find ph(V(adj)/V(inj)) atf0注意这里mag表达式的写法在不同版本略有差异如果看不懂就老老实实用游标读不必花太多时间纠结自动化。第二瞬态仿真里负载阶跃的上升沿一定要设得比较陡比如1μs。如果你把上升沿拉长得跟斜坡发生器一样ESR造成的电压台阶会被时间积分抹平看不出真实过冲。第三仿真时把输入电容CIN也带上不要省。输入端的电感或寄生参数往往和LDO的负输入阻抗形成局部谐振导致高频振荡省掉输入电容会让整个环路仿真结果失真。6.3 实测时容易忽略的测量细节仿真通过只是第一步实物的PCB布局、走线寄生、探头接法都会影响稳定性判断。用示波器测输出瞬态时探头一定要接在输出电容两端而且要用短地弹簧或同轴线短地方式不要用鳄鱼夹地线拉一根长线去接地那等于在探头上接了一个大电感测出来的振铃未必是LDO自激反而是地环路噪声。如果实物振荡、仿真稳定优先检查输出电容的ESR是否和仿真假定偏差太大。可以用LCR表在100kHz频率下测一下实物电容的ESR值再对照仿真区间。很多次“仿真稳、实物振”的锅都出在电容批次差异上。我还遇到过一种情况仿真里ESR设是1Ω相位裕度很好实物却用的是“号称钽电容但实际是贴片高分子电容”ESR只有几十毫欧直接掉出稳定区间。所以选型时不要只看电容类型要看规格书里的ESR指标条件允许就用LCR表抽测。最后再分享一个偷懒技巧仿真ESR边界时别一个个改参数用.step打list多跑一遍然后把相位裕度随ESR的对应关系拉出来看挑裕度大于45°的那段ESR范围再对照规格书选电容。做过一次之后你基本就能摆脱“加电容靠玄学”的状态了。
返回列表