BUCK-BOOST电路在很多人眼里就是个能升能降的拓扑但真正把它跑通、尤其是拿它做电压反转的时候你会发现坑远比想象中多。我最近在做一个双极性供电的运放前端需要从单路12V输入得到一组-12V手头正好有几片LM2597的库存就顺手搭了一个BUCK-BOOST反转电路来验证。结果从电感选型到波形振铃前后折腾了三四天示波器上才终于出现干净利落的开关波形。这篇就把整个过程拆开讲清楚——BUCK-BOOST为什么能反转电压、LM2597这类芯片在反转模式下和常规降压用法有什么本质区别、电感电容怎么算、PCB布局哪里最容易翻车、以及示波器上那些振铃和尖峰到底该怎么读。适合已经会用降压模块、想进一步搞懂反转拓扑的硬件工程师和电子爱好者也适合正在调试四开关BUCK-BOOST、想从传统拓扑入手理解开关波形的人。1. 电压反转到底是怎么发生的先搞懂BUCK-BOOST的能量搬运逻辑1.1 从电感不允许电流突变说起要理解BUCK-BOOST为什么能输出负压得先放下电压变换这个思维定式转而从电感的电流行为入手。电感有一个铁律流过它的电流不能瞬间改变。BUCK-BOOST正是利用这一点把能量先存进电感再倒到输出端而输出端的参考方向恰好和输入相反于是电压就反了。具体分两个阶段。开关管导通时输入电压加在电感两端电感电流线性上升此时电感在储能输出电容独自给负载供电二极管截止输入和输出是隔离的。开关管关断时电感为了维持电流继续流动会感应出一个反向电动势把电流通过二极管推到输出端给输出电容和负载充电。注意这个阶段电感电流的方向没变但输出端的电位被拉到了地以下——这就是负压的来源。用一个生活化的类比电感像一个惯性很大的飞轮开关管导通时你在给它加速储能关断时飞轮靠惯性继续转通过一个单向阀门二极管把能量甩到另一个水箱输出电容里。因为阀门的方向和甩出的方向决定了水箱的水位是负的所以输出电压相对地是负的。1.2 传递函数里的负号从哪来很多人记BUCK-BOOST的公式只记结论不理解那个负号。理想情况下BUCK-BOOST的电压传递比是Vout / Vin -D / (1 - D)其中D是占空比。这个负号不是人为加的而是拓扑结构决定的。当D小于0.5时|Vout|小于Vin是降压反转当D大于0.5时|Vout|大于Vin是升压反转D等于0.5时|Vout|等于Vin只是极性相反。这里有个反直觉的点BUCK-BOOST的输出电压绝对值可以大于也可以小于输入但它不像BUCK那样有直通路径输入电流是断续的只在开关管导通时从输入抽取电流所以输入端的纹波电流很大这是后面电容选型要重点考虑的地方。1.3 为什么LM2597在反转模式下不太一样LM2597本身是一颗降压型开关稳压器数据手册里的典型应用是BUCK。但它的内部结构——固定频率振荡器、误差放大器、以及一个高边开关管——恰好也能用在BUCK-BOOST反转拓扑里。区别在于标准BUCK应用里芯片的GND引脚接系统地输出正压而在反转应用里芯片的GND引脚要接到负输出端芯片的地是浮动的。这一点极其关键也是新手最容易懵的地方。芯片的反馈引脚FB需要检测输出电压但在反转拓扑里FB的参考点是芯片自己的GND也就是负输出所以反馈电阻网络要重新设计。LM2597的FB基准是1.23V你需要让FB引脚相对芯片GND的电压等于1.23V而此时输出电压是负的电阻分压网络要接在输出和芯片GND之间。提示LM2597的反转应用在数据手册里有专门的一节但很多人只看BUCK那部分就上手结果反馈接错输出要么不启动要么直接飙到输入电压。动手前务必翻到手册的Inverting Regulator章节。2. 元件选型不是抄手册就行电感、电容、二极管的实战取舍2.1 电感值怎么算以及为什么不能只看公式BUCK-BOOST的电感计算公式和BUCK类似但要注意电流应力更大。以我的应用为例Vin12VVout-12V负载电流Iout0.5A开关频率f150kHzLM2597的固定频率。先算占空比。由|Vout|/Vin D/(1-D)代入12/121解得D0.5。再算电感电流。BUCK-BOOST的平均电感电流等于输入电流加输出电流的某种组合更直接的方法是电感峰值电流大约为IL_peak (Iout / (1-D)) ΔIL/2其中Iout/(1-D)是电感平均电流ΔIL是纹波电流。取纹波系数30%ΔIL 0.3 × Iout/(1-D) 0.3 × 0.5/0.5 0.3A。所以IL_peak ≈ 1.0 0.15 1.15A。电感值由ΔIL Vin × D / (f × L)反推L Vin × D / (f × ΔIL) 12 × 0.5 / (150000 × 0.3) 133μH。取标准值150μH。但公式只是起点。实际选型时我踩过的坑是电感的饱和电流必须大于IL_peak并留足余量。我一开始用了一颗标称1.5A的贴片电感结果在满载启动瞬间电感饱和电流直接冲到2A以上芯片的限流保护反复触发输出根本稳不住。换成饱和电流3A的屏蔽电感后才正常。所以饱和电流至少取IL_peak的1.5到2倍别卡着算出来的值选。2.2 输出电容的ESR比容量更重要BUCK-BOOST的输出电容承受的是断续电流纹波电流有效值比BUCK大得多。输出纹波电压主要由两部分组成电容充放电引起的容性纹波和ESR引起的阻性纹波。在开关频率较高时ESR纹波往往占主导。ΔVout ≈ ΔIL × (ESR 1/(8 × f × Cout))我用了两颗220μF的固态电容并联ESR各约20mΩ并联后10mΩ。代入ΔIL0.3AESR项贡献约3mV容性项约1/(8×150000×440e-6)×0.3≈0.57mV总纹波远小于1%。实测示波器上输出纹波约15mV峰峰值比计算值大原因是PCB走线的寄生电感和电容的等效串联电感ESL在高频下贡献了额外尖峰。注意别用普通的铝电解电容做BUCK-BOOST输出ESR太高纹波会大到离谱。固态电容或低ESR的电解电容是底线条件允许的话再并一颗1μF的陶瓷电容滤高频。2.3 续流二极管的速度决定效率上限BUCK-BOOST里的二极管在开关管关断时导通承担全部电感电流。它必须是肖特基二极管原因有两个正向压降低反向恢复时间短。如果用普通整流二极管反向恢复时会产生巨大的尖峰电流不仅效率低还会在开关节点上制造严重的振铃。我选的是SS343A/40V肖特基正向压降约0.5V。在0.5A输出、D0.5的情况下二极管导通时间占一半导通损耗约0.5V×1A×0.50.25W加上开关损耗整体效率实测约78%。如果想再提效率可以换更低VF的肖特基或者干脆上同步整流方案也就是四开关BUCK-BOOST的思路后面会提。元件选型要点我的实际选择踩坑记录电感饱和电流≥1.5倍峰值电流150μH/3A屏蔽电感1.5A电感满载饱和输出电容低ESR优先2×220μF固态1μF陶瓷铝电解纹波超标二极管肖特基耐压≥2倍VinSS34普通二极管振铃严重输入电容承受大纹波电流100μF固态10μF陶瓷忽略输入纹波导致输入跌落3. 从原理图到PCB布局决定了你是拿到干净波形还是满屏振铃3.1 开关回路的面积必须压到最小BUCK-BOOST里有一个高频开关回路输入电容正极→电感→开关管→输入电容负极在开关管导通时。这个回路的电流变化率极高回路面积越大寄生电感越大开关节点上的振铃就越严重。我的第一版PCB把输入电容放在了板子另一头开关回路面积大概有3平方厘米结果开关节点波形上振铃峰峰值超过8V几乎等于输入电压。第二版把输入电容紧贴芯片的VIN和GND引脚回路面积压到0.5平方厘米以内振铃降到2V左右。这个改善是立竿见影的。具体做法输入陶瓷电容10μF和固态电容100μF并联陶瓷电容放在最靠近芯片VIN引脚的位置固态电容紧随其后。芯片的GND引脚通过短而宽的走线连到输入电容负极不要绕路。3.2 反馈走线要远离开关节点FB引脚是高阻抗节点极易受干扰。在反转拓扑里FB走线还要跨过芯片GND和输出负端之间的区域如果这条走线靠近电感或开关节点耦合进来的噪声会让输出抖动甚至振荡。我的做法是FB分压电阻紧靠FB引脚放置走线尽量短分压电阻的下端直接连到芯片GND引脚不是系统地上端连到输出负端。整条FB走线用地线包围屏蔽并且远离电感至少5mm。改完之后输出的低频抖动明显减小。3.3 芯片GND的处理是反转拓扑的独有难点标准BUCK里芯片GND就是系统地没什么好纠结的。但反转拓扑里芯片GND是负输出端它相对系统地是浮动的。这意味着芯片的GND引脚不能随便接到系统的大面积地铜皮上否则负输出就被短路到地了。正确的做法是芯片GND、输出电容负极、反馈电阻下端、以及负载的负端这几个点单独走一条负压地的走线最后只在输出电容负极这一个点与系统地输入电容负极相连。这个单点连接很关键如果多点连接负压回路和输入回路会形成地环路噪声互相串扰。提示如果你用示波器测输出纹波探头的地线夹要夹在输出电容负极负压地而不是系统地否则测出来的波形是错的。这个细节我第一次测的时候搞反了盯着一个纹波巨大的波形查了半天最后发现是探头地夹错了位置。4. 波形分析示波器上那些振铃、尖峰和斜坡到底在说什么4.1 开关节点波形振铃的根源与抑制开关节点电感与开关管、二极管的连接点的波形是BUCK-BOOST调试中最有信息量的信号。理想情况下它应该在Vin和-Vout约-0.5V二极管压降之间跳变边沿陡峭、顶部平坦。但实际波形上跳变瞬间会有高频振铃。振铃的根源是开关回路的寄生电感和开关管/二极管的寄生电容形成的LC谐振。频率通常在几十MHz量级。抑制手段有三个缩小回路面积前面说了、在开关节点加RC吸收电路snubber、以及选用寄生电容更小的二极管。我试过在开关节点对地加一个10Ω470pF的RC吸收振铃峰峰值从2V降到0.8V但代价是增加了约0.1W的损耗效率掉了2个百分点。对于我这个应用2V的振铃还在可接受范围所以最终没加吸收电路而是靠布局优化解决。4.2 电感电流波形判断是否饱和的直接证据电感电流波形需要用电流探头或者串一个采样电阻来测。正常的电感电流是三角波上升斜率由Vin/L决定下降斜率由|Vout|/L决定。如果看到电流波形在峰值处出现台阶或者突然变陡那就是电感饱和了。我第一版用1.5A电感时满载电流波形在峰值处明显变平这就是饱和的典型特征。换成3A电感后三角波干净利落峰值1.15A和计算值吻合。4.3 输出纹波波形区分容性纹波和ESR纹波输出纹波波形上你会看到两种成分一种是和开关频率同步的三角波容性纹波另一种是叠加在跳变沿上的尖峰ESR和ESL引起的。如果尖峰占主导说明电容的ESR/ESL太大需要换电容或并陶瓷电容。如果三角波占主导说明容量不够需要加大电容。我的实测波形里尖峰约10mV三角波约5mV总纹波15mV峰峰值对于-12V输出1.25%纹波来说可以接受。如果想进一步降低可以在输出端加一级LC滤波但要注意LC滤波器的谐振频率要远低于开关频率否则会引入新的振荡。波形类型正常特征异常特征对应问题开关节点边沿陡峭振铃2V振铃5V边沿圆滑回路面积大/驱动不足电感电流干净三角波峰值处台阶/变陡电感饱和输出纹波尖峰小三角波尖峰巨大/三角波巨大ESR高/容量不足FB电压稳定1.23V抖动/振荡反馈受干扰/补偿不足4.4 启动波形软启动和浪涌电流LM2597内部有软启动功能但反转拓扑下启动瞬间的浪涌电流仍然可能很大因为输出电容要从0充到-12V全部能量都要经过电感和二极管。我的实测启动波形显示输入电流在启动后约2ms内冲到1.8A然后回落到0.9A稳态。如果输入电源的限流点设得太低启动时会被拉垮导致反复重启。解决办法加大输入电容给启动浪涌提供本地能量缓冲或者选择带可调软启动的芯片把启动时间拉长降低浪涌峰值。LM2597的软启动是内部的不可调所以我在输入端并了一颗470μF的电解电容启动就稳了。5. 从传统BUCK-BOOST到四开关拓扑什么时候该升级方案5.1 二极管方案的效率天花板传统BUCK-BOOST用二极管续流效率的天花板就在那里。二极管的正向压降乘以平均电流就是白白的损耗输出电流越大这个损耗占比越高。我这个小功率应用0.5A还能接受但如果要做到2A以上二极管损耗会超过1W散热都成问题。另外二极管的反向恢复特性在高频下会加剧开关损耗和EMI。虽然肖特基的反向恢复很轻微但在高电压、大电流场景下仍然不可忽视。5.2 四开关BUCK-BOOST解决了什么四开关BUCK-BOOST也叫H桥BUCK-BOOST或非反相BUCK-BOOST用两个开关管替代了二极管实现同步整流。它的核心优势有三个效率更高没有二极管压降、可以双向能量流动、以及输入输出不反相输出正压。但它的代价是控制复杂度大幅上升。四个开关管需要精确的时序控制死区时间设置不当会导致直通炸管。通常需要专门的控制器芯片或者用STM32这类MCU做数字控制。如果你只是要一个负压传统BUCK-BOOST反转拓扑简单可靠没必要上四开关。如果你要的是大电流、高效率、非反相的输出那四开关才是正解。5.3 用STM32做数字控制的思路如果确实要用四开关拓扑STM32是一条常见的路径。基本思路是用高级定时器如TIM1产生四路PWM两两互补带可调死区用ADC采样输入电压、输出电压和电感电流在中断里跑电压外环和电流内环的双环控制输出占空比给定时器。关键难点在死区时间的设置。死区太短会直通太长会降低效率并增加谐波。一般根据MOS管的开通关断时间和驱动电路的延迟来定经验值在100ns到500ns之间。另外电感电流采样要用差分放大或者霍尔电流传感器普通的分流电阻在高端会有共模问题。提示数字控制四开关BUCK-BOOST时模式切换降压模式和升压模式之间是最容易出问题的地方。切换瞬间占空比会突变如果控制环响应不够快输出会大幅波动。建议在切换点附近做平滑过渡或者干脆让拓扑工作在Buck-Boost混合模式避免硬切换。6. 调试中那些手册不会告诉你的细节6.1 空载时输出为什么会飘BUCK-BOOST在空载或轻载时如果芯片没有强制PWM模式也就是允许跳周期输出会略微偏高或出现低频抖动。原因是轻载时电感电流进入断续模式DCM传递函数变了反馈环的相位裕度下降。LM2597在轻载时会进入跳周期模式我的实测是空载输出-12.3V比满载时高了0.3V。如果应用对空载精度要求高可以在输出端加一个最小负载电阻比如1kΩ让电路始终工作在CCM模式。代价是多了约0.14W的静态损耗。6.2 输入电压范围窄的陷阱BUCK-BOOST的占空比随输入电压变化。Vin升高时为了维持Vout不变D会减小。但D不能无限减小芯片有最小导通时间限制。如果Vin太高D小到接近最小导通时间输出就会失控。反过来Vin降低时D增大接近1时芯片可能无法提供足够的关断时间给自举电容充电如果是高边N沟道MOS管的话。LM2597是内部集成的开关管这方面限制小一些但输入范围仍然要留余量。我的应用Vin12V固定所以没这个问题但如果你要做宽输入范围务必查手册的占空比范围。6.3 热设计的隐性成本LM2597的封装是TO-220或者TO-263功耗主要来自开关损耗和导通损耗。我的实测在0.5A输出时芯片表面温度约55°C环境25°C不需要散热片。但如果输出电流翻倍功耗大约翻倍温度会到80°C以上就必须加散热片了。计算芯片功耗的粗略方法是P_chip ≈ P_in - P_out - P_diode - P_inductor。我的实测输入功率约7.7W输出功率6W二极管损耗0.25W电感损耗约0.3W芯片功耗约1.15W。TO-263封装的热阻约40°C/W所以温升约46°C和实测吻合。6.4 测量本身的坑最后说一个容易被忽略的点测量方法本身会引入误差。用示波器测输出纹波时探头的接地引线会形成一个环路天线拾取开关噪声。正确做法是使用探头自带的弹簧地针而不是长地线夹并且把探头尖端和地针都直接接触输出电容的两个引脚。这样测出来的纹波才是真实的。我第一次测的时候用长地线夹测出来纹波50mV换成弹簧地针后降到15mV。所以如果你测出来的纹波大得离谱先检查测量方法别急着改电路。整个项目从搭板到波形调通前后花了大概四天。最大的体会是BUCK-BOOST反转拓扑的原理不难难的是把那些看起来不重要的细节做对——反馈参考点的处理、负压地的单点连接、开关回路的面积控制、以及测量方法的正确性。这些细节手册上都有但分散在各个章节里只有真正动手踩过一遍才会形成肌肉记忆。如果你也在做类似的负压电源希望这篇记录能帮你少走两天弯路。
阅读完成 · 觉得有帮助?