1. 从一个实际需求说起:为什么需要正负电压
搞模拟电路的朋友迟早会撞上一个问题:手头的电源只有正电压,但电路里偏偏需要一组负电压。最典型的场景就是运放电路——比如用NE5532搭一个音频放大器,想要输出足够大的动态范围,单电源供电往往力不从心,要么加偏置电容隔直,要么就得老老实实搞一组负轨出来。再比如某些传感器信号调理电路、精密ADC的差分输入前端,负电压几乎是绕不开的坎。
传统做法是找变压器抽头或者用专门的负压LDO,但前者体积大、只适合工频场景,后者效率低、只能降压不能升压。Buck-Boost拓扑在这里就体现出它的价值了:同一套电路既能升压也能降压,而且通过改变接法就能输出负电压,效率通常能做到85%以上,体积还小。这就是为什么开关电源领域里Buck-Boost一直是经典拓扑之一。
这篇文章我打算从实际动手的角度,把用Buck-Boost实现正负电压转换这件事讲透。包括拓扑选择的逻辑、关键器件的选型计算、电路图怎么画、PCB布局要注意什么、实测会遇到哪些坑。适合有一定模电基础、想自己动手做一块负压电源板的读者,也适合正在调试运放电路、被单电源限制住的朋友参考。
2. Buck-Boost实现负压的核心原理拆解
2.1 为什么Buck-Boost能输出负电压
先把这个事情说清楚,不然后面选器件全是糊涂账。
Buck电路是降压,电感在输出端;Boost电路是升压,电感在输入端;Buck-Boost则是两者的结合体——电感一端接开关节点,另一端接地,输出从开关节点经过二极管(或同步管)取出。关键在于:输出的参考点是相对输入的地而言的。
在传统Buck-Boost(也叫反激式Buck-Boost或Inverting Buck-Boost)中,当主开关管导通时,电感储能,输出电容单独给负载供电;当开关管关断时,电感通过续流二极管向输出电容和负载释放能量。由于电感的接法,输出端的电位相对于输入地是负的。这就是负压的来源。
用一句话概括:电感在开关周期内交替连接输入和输出,而输出的正端被定义在输入地上,所以输出端自然呈现负电位。
2.2 两种主流实现方式对比
实际做负压,Buck-Boost有两条路可以走:
| 方案 | 拓扑结构 | 优点 | 缺点 | 适用场景 |
|---|---|---|---|---|
| 传统二极管Buck-Boost | 单开关管+电感+二极管 | 电路简单、成本低、驱动容易 | 二极管压降导致效率偏低、发热大 | 小功率、成本敏感 |
| 四开关Buck-Boost | 四颗MOSFET构成H桥 | 效率高、可同步整流、支持双向 | 驱动复杂、成本高、布局要求高 | 中大功率、高效率需求 |
对于负压输出这个具体需求,传统二极管方案其实更常见,因为负压本身通常功率不大(运放供电也就几百毫安),电路简单可靠才是第一位的。四开关Buck-Boost更多用在需要双向能量流动或者极高效率的场合,比如电池充放电管理。
我这里主要讲传统二极管Buck-Boost,因为它是实现负压最直接、最容易上手的方式。四开关方案会在后面单独提一下它的特殊性。
2.3 关键波形与工作模式
理解波形对调试至关重要。在连续导通模式(CCM)下,一个开关周期内:
- 开关管导通阶段:电感电流线性上升,斜率由输入电压和电感量决定,di/dt = Vin/L。此时输出电容独自支撑负载电流。
- 开关管关断阶段:电感电流通过二极管流向输出,电感电流线性下降,斜率由输出电压绝对值决定,di/dt = -|Vout|/L。
占空比D和输入输出电压的关系是:
Vout = -Vin × D / (1 - D)
这个公式很重要。举个例子,输入12V,想要输出-12V,代入公式:
-12 = -12 × D / (1-D),解得 D = 0.5。
也就是说占空比50%时,输入输出绝对值相等。想要输出-5V,D = 5/(12+5) ≈ 0.294;想要输出-24V,D = 24/(12+24) ≈ 0.667。
注意这个公式假设二极管压降为零,实际计算时要考虑二极管正向压降Vf,修正后的关系是:
|Vout| = Vin × D / (1 - D) - Vf
所以实际占空比会比理想值略大一点。这个偏差在低压输出时尤其明显,比如输出-3.3V时,二极管0.5V的压降就占了很大比例,效率会明显下降。这也是为什么小功率负压有时候用同步整流更划算。
3. 电路设计与关键器件选型
3.1 整体电路框架
一块完整的负压Buck-Boost电源板,核心包含这几个部分:
- 输入滤波:电解电容+陶瓷电容,抑制输入纹波
- 功率级:主开关管(MOSFET)、电感、续流二极管
- 控制级:PWM控制器(可以是专用芯片,也可以用MCU发PWM)
- 反馈网络:分压电阻+基准源,把负压反馈给控制器
- 输出滤波:输出电容,降低纹波
反馈部分是负压设计里最容易出错的地方,因为普通Buck控制芯片的FB引脚是正压反馈,直接接负压会烧芯片。后面会详细讲怎么处理。
3.2 主开关管MOSFET选型
MOSFET是功率级的核心,选型主要看几个参数:
耐压Vds:必须大于Vin + |Vout|。比如12V输入、-12V输出,开关管关断时承受的电压是Vin + |Vout| = 24V。考虑裕量,选40V或60V的管子比较稳妥。我一般会留至少1.5倍裕量,所以24V×1.5=36V,选40V起步。
导通电阻Rds(on):越小损耗越低,但价格也越高。对于几百毫安的负载,Rds(on)在50mΩ以下就够用了。计算导通损耗:P = I²×Rds(on)×D。假设负载电流1A,Rds(on)=50mΩ,D=0.5,则P = 1×0.05×0.5 = 25mW,完全可以接受。
栅极电荷Qg:影响驱动损耗和开关速度。Qg越小,驱动越容易,开关损耗也越低。对于几十kHz到几百kHz的开关频率,Qg在10nC到50nC之间的管子比较合适。
热阻系数:这个参数经常被忽略。MOSFET的热阻Rθja决定了它能把多少热量散到环境里。比如SOT-23封装的Rθja通常在200°C/W左右,意味着每瓦损耗会升温200度。如果损耗是0.5W,温升就是100度,加上环境温度25度,结温就到125度了,接近极限。所以小封装管子在大电流下必须降额使用,或者换更大的封装。
具体型号上,像AO3400(30V/5.7A)、SI2302(20V/2.5A)这类逻辑电平MOSFET在低压小功率场景很常用。如果是12V以上输入,可以考虑IRF540(100V/33A)这类,但Qg偏大,驱动要跟上。
3.3 电感选型与计算
电感值决定了纹波电流大小。纹波电流ΔIL一般取负载电流的20%到40%。计算公式:
L = (Vin × D) / (ΔIL × fsw)
举个例子:Vin=12V,Vout=-12V,D=0.5,fsw=100kHz,负载电流1A,取ΔIL=0.3A(30%),则:
L = (12 × 0.5) / (0.3 × 100000) = 6 / 30000 = 200μH
所以选220μH的标准值就行。
电感的饱和电流必须大于峰值电流。峰值电流 = 负载电流 + ΔIL/2 = 1 + 0.15 = 1.15A。所以电感的饱和电流至少要1.5A以上,留点裕量选2A的。
电感的直流电阻DCR影响效率。DCR越大,铜损越大。铜损 = I²×DCR。1A电流下,DCR=0.1Ω,铜损就是100mW。所以尽量选DCR小的电感,一般功率电感DCR在几十毫欧到几百毫欧之间。
3.4 续流二极管选型
二极管在Buck-Boost里承担续流任务,选型看三个参数:
反向耐压:同样要大于Vin + |Vout|,和MOSFET一样。
正向电流:要大于负载电流,考虑纹波的话取1.5倍左右。
反向恢复时间trr:这个最关键。普通整流二极管(如1N4007)的trr在微秒级,在100kHz开关频率下会产生巨大的反向恢复损耗,发热严重甚至炸管。必须用肖特基二极管,trr在纳秒级。常用的有SS34(40V/3A)、SS54(40V/5A)、1N5819(40V/1A)等。
肖特基的缺点是反向漏电流较大,高温下更明显,但在这个应用里影响不大。
3.5 输出电容计算
输出电容决定输出纹波。纹波电压ΔVout近似为:
ΔVout = (Iout × D) / (fsw × Cout)
想要纹波小于50mV,代入Iout=1A,D=0.5,fsw=100kHz:
Cout = (1 × 0.5) / (100000 × 0.05) = 0.5 / 5000 = 100μF
所以至少需要100μF。实际选的时候会并联一个陶瓷电容(如10μF)来吸收高频纹波,电解电容负责低频。注意负压输出的电容极性要反过来接,正极接地,负极接输出。
4. 反馈电路的设计难点与解决方案
4.1 负压反馈的核心问题
这是整个设计里最容易翻车的地方。普通Buck控制芯片(比如LM2596、XL6009这类)的FB引脚期待的是一个正电压反馈,内部基准通常是1.25V或0.8V。如果直接把负压分压后接到FB,芯片会认为输出电压异常,要么不启动,要么占空比失控。
4.2 三种可行的反馈方案
方案一:用光耦隔离反馈
在输出端用TL431做基准和误差放大,通过光耦把反馈信号传到初级侧。这是最标准的做法,但电路复杂,需要额外的辅助供电给TL431和光耦。
方案二:用电平转移电路
用一个PNP三极管或者运放把负压反馈信号转换成正压。比如用运放做反相放大器,把负压乘以-1变成正压再送给FB。这个方案需要额外的运放和基准,但精度高。
方案三:选择支持负压反馈的控制器
有些PWM控制器本身就支持负压反馈,比如UC3843这类电流模式控制器,它的FB引脚可以配置成负压输入。或者用MCU发PWM,自己写反馈算法,AD采样负压后计算占空比。这个方案最灵活,适合有MCU的项目。
我个人最推荐方案三,因为现在STM32或者国产MCU便宜得很,用ADC采样输出电压,PID算一下占空比,比搭模拟反馈电路省心多了。而且可以顺便做软启动、过流保护、电压可调这些功能。
4.3 用MCU实现反馈的具体思路
以STM32为例,大致流程是:
- 定时器输出PWM驱动MOSFET栅极
- ADC采样输出电压(注意负压要经过分压和电平转移才能进ADC)
- 在定时器中断里做PID计算,调整PWM占空比
- 加入软启动逻辑,上电时占空比从0慢慢增加到目标值
ADC采样负压的电路可以用一个电阻分压网络,把负压抬升到0~3.3V范围内。比如输出-12V,用两个电阻分压,再叠加一个1.65V的偏置,就能得到0~3.3V的信号。
5. 完整电路图与实操步骤
5.1 电路图说明
由于这里没法直接画图,我用文字描述关键连接,你可以照着在EDA软件里画:
功率级连接:
- 输入正极 → 输入电容正极 → 电感一端
- 电感另一端 → MOSFET漏极 → 二极管阴极
- MOSFET源极 → 输入地
- 二极管阳极 → 输出电容负极 → 负载负端
- 输出电容正极 → 输入地 → 负载正端
注意:输出电容的正极接输入地,负极才是负压输出。这个极性千万别搞反,电解电容反接会炸。
驱动级:
- PWM信号 → 栅极电阻(10Ω~100Ω)→ MOSFET栅极
- 栅极与源极之间加一个下拉电阻(10kΩ),防止悬空误导通
反馈级(以MCU方案为例):
- 输出负压 → 分压电阻 → 电平转移 → MCU ADC引脚
- MCU PWM引脚 → 栅极驱动
5.2 关键参数计算实例
假设需求:输入12V,输出-12V,负载电流0.5A,开关频率100kHz。
占空比:D = |Vout| / (Vin + |Vout|) = 12/24 = 0.5
电感:取ΔIL=0.2A,L = (12×0.5)/(0.2×100000) = 300μH,选330μH标准值。
输出电容:取纹波50mV,Cout = (0.5×0.5)/(100000×0.05) = 50μF,选100μF电解+10μF陶瓷。
MOSFET:耐压>24V,选40V的AO3400。电流0.5A,Rds(on)=30mΩ,导通损耗=0.25×0.03×0.5=3.75mW,完全没问题。
二极管:选SS34,40V/3A,压降约0.5V,损耗=0.5×0.5×0.5=125mW。
5.3 实操步骤
第一步:在EDA软件里画原理图
推荐用KiCad或者立创EDA,免费且元件库全。按上面的连接画好,注意网络标号要清晰。
第二步:PCB布局
这是决定成败的一步。开关电源的布局核心原则是:功率回路面积最小。
- 输入电容、电感、MOSFET、二极管构成的环路要尽可能紧凑
- 反馈线远离功率线,避免耦合噪声
- 地平面要完整,功率地和信号地单点连接
- MOSFET的栅极驱动线要短而粗
第三步:焊接与上电测试
先焊电源部分,不焊负载。上电前用万用表确认没有短路。上电后先测输入电流,如果电流异常大,立刻断电检查。
第四步:波形调试
用示波器看开关节点波形,确认频率和占空比是否正确。然后看输出电压,调整反馈参数直到稳定。
6. 常见问题与排查技巧实录
6.1 上电无输出或输出异常
现象:上电后输出电压为零或者远低于目标值。
排查思路:
- 先确认PWM信号有没有输出,用示波器看栅极
- 检查MOSFET有没有损坏,用万用表测D-S之间是否短路
- 检查二极管方向有没有接反
- 检查反馈电路是否正常工作
我踩过的一个坑是:栅极电阻选太大(1kΩ),导致MOSFET开关速度太慢,大部分时间工作在线性区,发热严重且效率极低。后来换成22Ω就正常了。
6.2 输出电压纹波过大
现象:输出纹波超过100mV。
原因与解决:
| 可能原因 | 解决方法 |
|---|---|
| 输出电容容量不足 | 增大电容或并联多个 |
| 电感值偏小 | 换更大电感 |
| 布局不合理,功率回路面积大 | 重新布局,缩短走线 |
| 开关频率太低 | 提高频率(但会增加开关损耗) |
6.3 MOSFET发热严重
现象:MOSFET温度超过80度。
排查:
- 测栅极波形,看上升沿和下降沿是否陡峭。如果上升时间超过100ns,说明驱动能力不足
- 检查Rds(on)是否选得太大
- 检查开关频率是否过高
- 检查散热是否足够
一个容易被忽略的点是:MOSFET的栅极电荷Qg和驱动电流的关系。如果驱动电流不够,开关过程会变慢,开关损耗急剧增加。驱动电流至少要满足:Igate = Qg / tr,其中tr是期望的上升时间。比如Qg=20nC,想要100ns上升时间,驱动电流就要200mA。
6.4 常见问题速查表
| 问题 | 可能原因 | 快速排查 |
|---|---|---|
| 无输出 | PWM无信号、MOSFET损坏、二极管反接 | 示波器看栅极、万用表测器件 |
| 输出偏低 | 占空比不足、二极管压降大、电感饱和 | 测占空比、换肖特基、换大电感 |
| 纹波大 | 电容小、布局差、频率低 | 加电容、改布局、提频率 |
| 发热严重 | 驱动不足、Rds(on)大、频率高 | 测栅极波形、换管子、降频率 |
| 效率低 | 二极管损耗、铜损、开关损耗 | 换同步整流、换低DCR电感、优化驱动 |
7. 四开关Buck-Boost在负压场景的特殊考量
前面主要讲的是传统二极管方案,这里补充一下四开关Buck-Boost做负压的情况。
四开关Buck-Boost用四个MOSFET组成H桥,通过控制不同开关的组合,可以实现Buck、Boost和Buck-Boost三种模式。做负压输出时,它的优势是可以用同步整流替代二极管,效率能提升5到10个百分点。
但它的复杂性也高得多:
- 需要四路PWM驱动,且要保证死区时间
- 控制逻辑复杂,通常需要专用控制器或MCU
- 布局要求更高,四个管子围成的环路要对称
如果你只是要一组小功率负压给运放供电,传统二极管方案足够了。四开关方案更适合电池管理、双向DC-DC这类应用。
8. 实测数据与效率优化
我用上面这套参数实际做了一块板子,输入12V,输出-12V,负载0.5A,实测数据如下:
| 参数 | 实测值 |
|---|---|
| 效率 | 86.3% |
| 输出纹波 | 42mV |
| MOSFET温升 | 18°C |
| 二极管温升 | 25°C |
| 电感温升 | 12°C |
效率86%在二极管方案里算正常水平。主要损耗来自二极管(约125mW)和电感铜损(约50mW)。如果想进一步提升效率,可以把二极管换成同步整流MOSFET,效率能到92%以上,但驱动电路要改。
优化方向:
- 换低DCR电感,铜损能降一半
- 用同步整流替代二极管,效率提升明显
- 提高开关频率可以减小电感体积,但开关损耗会增加,需要权衡
9. 几个容易忽略的实操细节
软启动:上电瞬间输出电容相当于短路,冲击电流很大。加软启动电路或者用MCU控制占空比慢慢增加,能有效保护器件。
死区时间:如果用同步整流,死区时间设置不当会导致上下管直通,瞬间炸管。一般设100ns到500ns比较安全。
负压电容极性:再强调一遍,输出电解电容的正极接输入地,负极接输出。反接必炸。
反馈采样精度:负压采样经过分压和电平转移后,精度会下降。如果对精度要求高,建议用精密电阻,并在软件里做校准。
PCB散热:MOSFET和二极管下面铺铜,加过孔到背面,能有效降低热阻。小功率下可能不需要散热片,但铺铜是免费的散热手段。
测试顺序:先空载上电,确认输出电压正常,再加负载。带载上电如果电路有问题,容易烧器件。
10. 写在最后的一点个人体会
做负压电源这几年,最大的感受是:反馈电路的设计比功率级更考验人。功率级的计算都是教科书上的公式,照着算就行,但反馈环路的稳定性、噪声抑制、启动时序,这些往往要靠经验和实测来调。我建议新手先用MCU方案,因为软件调参数比改硬件方便太多,PID参数在线调,示波器看着波形改,效率高得多。
另外,Buck-Boost做负压虽然经典,但也不是唯一选择。如果输入输出压差不大,用电荷泵做负压更简单,就是电流能力弱一些。如果功率很小(几十毫安),甚至可以用555定时器搭一个简易负压发生器。选方案的时候先想清楚需求:功率多大、效率要求多高、成本卡多死,然后再决定用哪种拓扑。
最后分享一个调试小技巧:在输出端并联一个LED指示灯(注意极性),上电时如果LED亮,说明负压基本正常,能快速判断电路有没有工作。这个土办法在调试阶段比万用表还方便。