BUCK基础电路容易出现的问题及原因:一个老工程师写给开关电源新手的避坑笔记
经常有刚入行的朋友问我,说BUCK降压电路看着简单,不就是开关管加电感加电容吗,可为什么自己一搭就出问题?要么输出电压不对,要么芯片发烫,要么电感啸叫,折腾一整天都不知道哪里出了问题。这个现象我太熟悉了,我自己当年从线性电源转到开关电源时,也在这个最简单也最经典的BUCK拓扑上栽过不少跟头。
这篇文章就是想把我在BUCK电路调试中遇到过的、以及帮别人排查过的高频问题整理出来,结合原因分析一条条讲清楚。适合完全没接触过开关电源、第一次上手BUCK电路的新手。我会尽量不去堆公式,多用打比方的方式把原理讲透,配合故障现象、排查思路和实操注意点,让你看完之后能少走弯路。内容比较多,建议先收藏再慢慢看。
1. 从零认识BUCK:先把降压这件事想明白
1.1 BUCK到底在干什么
BUCK电路俗称降压电路,它的任务就是把一个较高的直流电压稳定地降到较低的直流电压。比如输入12V,输出3.3V给单片机供电,或者输入24V,输出5V给传感器供电,这些都是BUCK最常见的应用场景。
你可以把BUCK理解成一个自动调节的水龙头:上游水管里的水压很高,但你需要的是涓涓细流,水龙头通过快速开、关、开、关,让平均流出的水量正好等于你需要的量。BUCK电路里的开关管就是这个水龙头,它以极快的速度(通常是几十千赫兹到几兆赫兹)不断开通和关断,配合电感和电容把这种高速开关动作变成平稳的直流输出。
新手要建立的第一个观念是:BUCK不是一个“一直导通”的电路,而是一个“不断切换”的电路。所有输出电压的调整,本质上都是通过改变开关管导通时间和关断时间的比例来实现的。这个比例有个专门名字叫占空比,你用逻辑去想一想就能明白:输入电压越高,需要导通的占比就越小;输入电压越低,需要导通的占比就越大。理想情况下,占空比约等于输出电压除以输入电压。
1.2 先弄懂三个核心元件各自扮演什么角色
BUCK电路最核心的元件只有几个:开关管(MOS管或芯片内部集成)、续流二极管(或同步整流的低边MOS管)、电感、输出电容,再加上反馈电阻和补偿网络。
开关管负责“斩波”,把连续的直流输入切成一段一段的方波。你可以把它想象成一个高速开关,一秒钟开关几万次甚至上百万次。它导通的时候电流流过,关断的时候电流截断,正是这种不断的通断为后续的降压创造了条件。
电感是BUCK的灵魂,它的作用可以用一句话概括:抗拒电流突变。电感的电流不能瞬间改变,所以当开关管导通时,流过电感的电流是逐渐上升的;当开关管关断时,电感会维持电流继续流动,电流逐渐下降。这个特性让电感就像一个“缓冲池”,把脉冲式的能量输入变成了相对平滑的电流输出。这里要特别提醒新手一句:BUCK输出的能量主要靠电感来传递,而不是靠电容。
续流二极管的作用是在开关管关断期间给电感电流提供一条通路。开关管断开后,电感要继续往负载送电流,电流总得有个回路,这个回路就是通过续流二极管回到电感的。如果用的是同步BUCK,这个二极管被一个低边MOS管替代,因为MOS管的导通压降比二极管小很多,效率更高。
输出电容的作用则是进一步平滑输出电压,吸收负载突变带来的能量波动。打个比方,电感是稳定电流的,电容是稳定电压的,两者配合才能得到一个纹波小、动态响应好的输出。
1.3 把时间轴拆开:开关管通断时电路里发生了什么
把BUCK电路的工作过程拆成两个时间段来看,新手会更容易理解。
开关管导通时:输入电源通过开关管给电感充磁,电流从输入电源流经电感再到输出电容和负载。这个阶段电感中的电流线性上升,电感储能增加,同时电容被充电。此时续流二极管是反向截止的,因为它的阳极接在开关管和电感的连接点,这个点电压近似等于输入电压,比它的阴极也就是输出电压高得多。
开关管关断时:电感中的电流不能突变,所以电感两端会产生反向电动势,迫使电流继续沿原方向流动。电流现在走的路是:电感 -> 负载 -> 地 -> 续流二极管 -> 电感,形成一个闭合回路。此时电感中的电流线性下降,储能逐渐释放给负载。这个阶段续流二极管正向导通,管压降约0.3V到0.7V,具体取决于你用的是肖特基还是快恢复管。
两个状态交替进行,电感上的平均电流等于负载电流,输出电压通过反馈环路来调节占空比,从而实现稳压。
搞清楚这个基本过程后,接下来就能顺理成章地理解各种故障为什么发生了。所有BUCK电路的问题,几乎都能追溯到这四个环节里:开关动作是否正常、电感电流是否连续、二极管续流是否通畅、反馈采样是否准确。
2. 新手最容易踩的坑:输出电压不正常
2.1 输出电压偏高,先别怀疑芯片
输出电压偏高是新手经常遇到的问题。明明设置的3.3V输出,结果一上电变成5V甚至更高。这时候很多人第一反应是芯片坏了,但实际排查下来,大多不是芯片的问题。
最常见的原因是反馈电阻的取值不对。BUCK芯片的反馈引脚FB通常要求电压稳定在某个基准值,比如0.6V或0.8V。输出分压电阻把输出电压分压后送到FB脚,如果分压电阻的比值算错了,反馈电压就会偏离基准,芯片的环路会错误地认为输出电压不够,于是拼命增大占空比,把输出电压顶得很高。
还有一种情况是反馈电阻虚焊或者PCB走线断裂,导致FB引脚悬空。FB引脚一旦悬空,内部比较器接收不到正常反馈信号,有些芯片会直接把占空比拉到最大,输出电压直接冲到接近输入电压。这个问题在手工焊接的板子上特别常见,尤其是用0402、0603封装的电阻,一脚没焊好肉眼很难看出来。排查方法也很简单,用万用表量一下FB脚电压,如果和规格书里的基准电压对不上,再用镊子轻轻拨一下反馈电阻确认焊点是否牢固。
另外,有些芯片要求FB引脚连接一个前馈电容,电容取值不对也可能导致输出电压偏移。前馈电容的作用是改善瞬态响应和环路的稳定性,但它也会轻微影响分压比例,尤其是电容漏电比较大的情况。这个问题相对少见,但如果你的输出电压不是偏高一点点,而是明显偏移,也可以往这个方向查一下。
2.2 输出电压偏低,常见原因逐个排查
输出电压偏低的原因比偏高要多,排查思路要按优先级来。
先看输出是不是被短路了。用万用表的二极管档或电阻档量输出端对地的阻值,如果接近零欧姆,那就先找短路点。常见短路点包括:输出电容焊反或击穿、PCB焊桥短路、负载端故障。
再看输入电压是否足够。BUCK需要的输入电压有最低限制,如果输入电压比规格书要求的最低值还低,芯片可能无法正常工作。有些芯片内部有欠压锁定的保护功能,输入电压不够时芯片直接不工作,输出为0;也有些芯片在输入刚够阈值时工作状态不稳定,输出电压忽高忽低。新手容易忽略的是,测量输入电压要在芯片引脚上量,而不是在电源适配器输出端量,因为导线和接插件都有压降,大电流下可能损失几百毫伏。
第三种情况是电感饱和。前面说了,电感是BUCK的核心能量传递元件,但如果电感的额定电流选小了,或者磁芯已经饱和,电感量会急剧下降,相当于一根导线,电路就失去了降压能力。临床表现是输出电压偏低,同时电感严重发热甚至烫手,芯片的开关电流会非常大。如果示波器能看到开关节点波形,饱和时波形会明显变形。
此外还要排查续流二极管的问题。如果二极管接反、击穿或者选型不对,续流阶段就无法正常工作。比如用了一个超慢的整流二极管代替肖特基二极管,它的反向恢复时间太长,导致开关管还没完全关断、二极管还在导通,电感电流无法按正常规律释放,输出电压就会掉下去。这个问题在非同步BUCK中很常见,强烈建议新手不要为了省钱省事随便换个二极管上去。
2.3 反馈电阻计算与选型中容易埋的雷
反馈电阻的计算本身不难,公式就是R上 / R下 = Vout / Vref - 1,但实际操作中有几个细节很值得注意。
第一个细节是电阻精度的选择。反馈电阻的精度直接影响输出电压精度,如果你用了5%精度的电阻,输出电压可能有5%的偏差,3.3V的输出变成3.47V也是正常现象。对大多数数字电路来说5%勉强能用,但如果给ADC基准、射频模块或精密模拟电路供电,建议用1%精度的电阻,甚至0.5%精度。电阻精度带来的偏差是系统性的,你换了芯片也一样会存在。
第二个细节是电阻阻值的选择。反馈电阻的阻值不是随便选的,它要和芯片FB引脚的输入偏置电流匹配。FB引脚的偏置电流通常在纳安到微安级别,如果流过分压电阻的电流太小(比如电阻用了兆欧级别),那么FB引脚的偏置电流会在电阻上产生明显压降,导致输出电压偏移。一般建议流过反馈电阻网络的电流至少是FB偏置电流的50倍以上。比如某芯片FB偏置电流是0.1微安,那流过下分压电阻的电流最好大于5微安,也就是说下电阻的阻值最好小于某个上限。这个细节规格书里不会太强调,新手特别容易忽略。
第三个细节是前馈电容的取值。很多人只在反馈电阻上并一个前馈电容来改善环路相位裕度,但电容取大了或者取小了都会有影响。电容取小了等于没接,取大了可能引入一个过低的零点,造成环路不稳定。一个比较稳妥的做法是参考芯片规格书推荐的参数,没有推荐值时可以先不接,默认电路能稳定工作,再做动态负载测试来决定是否需要加。
3. 发热、啸叫、烧毁:功率部分的噩梦
3.1 开关管过热,原因不是只有一个
开关管发热这个问题,几乎每个做BUCK的都会遇到,但发热的原因却五花八门。新手要理解一个核心概念:开关管上的损耗主要由三部分组成——导通损耗、开关损耗、驱动损耗。
导通损耗是指开关管完全导通时,导通电阻RDS(on)上产生的损耗,计算公式是I²×RDS(on)。比如一个导通电阻为100毫欧的MOS管流过2A电流,导通损耗就是2×2×0.1=0.4W,看着不大,但要是封装很小,热阻很大,这0.4W也足以让管子滚烫。所以选型时不是耐压够就行,同样封装和耐压下,要尽量选RDS(on)更小的管子。
开关损耗是指开关管在开通和关断过程中,电压和电流交叠产生的损耗。每次开关都不是瞬间完成的,在过渡阶段管子既承受高电压又流过电流,电压和电流的乘积就是瞬时功耗,开关频率越高,开关损耗越大。这就是为什么同一个小管子,在100kHz下工作正常,换到500kHz下就严重发热。解决方法包括选择Qg更小的MOS管、优化栅极驱动电阻、降低开关频率等。
驱动损耗则相对较小,但也不能忽略。如果驱动能力不够,开关管无法被迅速打开,会长时间处于线性区,这会带来很大的散热负担。这个问题在驱动大电流MOS管时尤其明显,有些芯片输出电流能力只有几百毫安,去驱动一个栅极电荷很大的大功率MOS管,效果很差。
从排查角度看,先用示波器看Vgs波形和Vds波形的边沿。边沿太慢说明驱动有问题,边沿快但热说明导通损耗是主因。用热成像仪可以快速定位发热部位,没有热成像仪就用手摸,但要小心烫伤,最好断电冷却后再摸。
3.2 电感啸叫,听着吓人但大多是小事
电感啸叫是BUCK电路里最让人心里发毛的故障,因为那个吱吱声听起来就像电路要爆炸一样。但实际上,绝大多数啸叫问题都不是硬件损坏,而是电感在某个频率下发生了机械振动。
电感的啸叫本质上是磁芯的磁致伸缩效应。线圈通电后产生磁场,磁芯在磁场作用下会发生微小的尺寸变化,如果这个变化的频率落在人耳可听范围(20Hz到20kHz)内,磁芯的振动就会通过空气传到耳朵里。BUCK电路的开关频率一般在几百千赫兹,本身超声频段是听不到的,但如果出现以下情况,就会产生可听噪声:轻载跳过周期工作模式时,开关频率会随负载变化而改变,当它掉到音频范围,啸叫就出现了;环路不稳定时,占空比产生低频振荡,相当于一个唱着歌的电动马达。
排查电感啸叫时,先判断是芯片的工作模式导致的还是环路不稳定导致的。如果是轻载下的PFM模式,通常只是安静环境里有点声音,不会损坏器件,但如果你所在的应用对噪声敏感(比如医疗设备、录音设备),可以考虑换用强制PWM模式的芯片,或者给电感加灌胶固定。如果啸叫伴随输出电压纹波明显增大,那就不是单纯的模式问题了,要认真查环路稳定性和PCB布局。
我个人的经验是:很多新手的电感啸叫其实是输出电容容量设计不足导致环路异常的间接表现。加大输出电容、优化反馈补偿参数,啸叫声往往会消失。另外,叠层电感比绕线电感的啸叫更明显,因为绕线电感结构更紧凑、绕线更紧。
3.3 芯片和管子烧毁的常见路径
芯片或MOS管烧毁是BUCK故障里最严重的形态,通常意味着板上某处已经发生过压、过流或过热。烧毁的形态也各不相同:有的直接炸裂,有的只是冒烟,有的芯片顶部鼓起一个小包。
从原理上看,烧毁的原因不外乎这么几条。
输入电压超过芯片或MOS管的绝对最大额定值,击穿。这个比较好查,用示波器观察输入电压波形,看有没有尖峰。很多新手用长引线从电源适配器取电,导线电感很大,芯片开关瞬间在输入线路上产生振铃尖峰,峰值可能比输入电压高出一倍。解决方法是输入端加足够容量的陶瓷电容,并且尽量靠近芯片引脚放置。
输出过流或短路时间过长。BUCK芯片一般都有限流保护,但保护电路响应需要时间,如果是瞬间短路,或者负载电流缓慢上升超过限流点,芯片就可能来不及保护。电感饱和后等效电阻急剧下降,电流迅速增长,也会导致芯片过流烧毁。
栅极驱动过压。对于外部MOS管的方案,如果驱动电压过高或振铃过大,会击穿栅氧化层。芯片很脆弱,ESD也可能在焊接或操作时悄悄损坏它,当时没显现,上电后一段时间内表现出漏电、发热、参数漂移,最后烧毁。
热累积导致热击穿。即使单次损耗不大,如果散热条件差、环境温度高、持续工作,结温会突破规格书的额定值。温度每升高几十度,失效率会成倍上升。最简单的经验法则是:用热成像或热电偶测外壳温度,确保结温不超过规格书的绝对最大额定值,并且留出20%以上余量。
4. 同步BUCK特有问题的重点提示
4.1 直通问题与死区时间
同步BUCK比非同步BUCK多了一个低边MOS管取代续流二极管,效率更高,但也带来了一个致命的问题——直通。直通指高边管和低边管同时导通,输入电源直接经过两个管子短路接地,电流瞬间飙升,管子和芯片都扛不住。
为什么会同时导通?因为MOS管的开关过程有延迟。关断一个管子需要时间,开通另一个管子也需要时间,如果高边管还没完全关断、低边管就开始导通了,两个管子之间就有了一个短暂的共同导通窗口。解决方法是在两个管子的开关之间插入一段“死区时间”,也就是让两者都关断一小段时间,再接上另一个管子。
对一个新手来说,直接使用内部集成同步管的芯片是最省心的选择,因为死区时间由芯片内部处理,通常引不出太多问题。但如果用的是外部高低边MOS管的方案(比如控制器+驱动+离散MOS),死区时间就必须认真设置。死区设得太短,直通风险高;设得太长,体二极管导通时间变长,效率下降,输出纹波变大。通过示波器观察开关节点波形、用电流探头监测输入电流,可以找到合适的死区设置。
4.2 轻载效率与工作模式
同步BUCK在轻载时面临一个有意思的矛盾:如果继续保持强制PWM模式,电感电流会反向流动,也就是从输出端往输入方向灌电流,这会降低轻载效率。所以很多芯片在轻载时会切换到PFM模式或突发模式,跳过一些开关周期来降低开关损耗。这也是很多新手在轻载时听到啸叫的原因之一。
如果你在做一个电池供电的产品,轻载效率很重要,选择支持PFM模式的芯片是合适的。但要注意,PFM模式有一个代价:输出纹波比强制PWM模式大。因为跳过周期后,输出电压的波动范围更大。对于射频发射模块、音频功放这些对纹波敏感的场景,通常宁可牺牲一点效率也建议强制工作在PWM模式。
另外,有些芯片在轻载跳周期时进入一种“打嗝”状态,输出出现低频振荡,如果振荡频率落在音频范围,就会听到啸叫。遇到这种情况,可以在输出端增加一个小负载电阻,把工作点拉出跳周期区域,或者更换不同型号的芯片。
4.3 同步BUCK的布局要求
同步BUCK对PCB布局的要求比非同步BUCK更严格。因为两个MOS管高频开关,电流换向回路中有大量高频分量,如果环路面积过大,不仅会产生电磁干扰,还会造成开关节点电压振铃,严重时甚至导致芯片误动作。
关键点在于功率回路要短:输入电容到高边管到低边管再回到输入电容,这个回路必须尽可能紧凑。把输入电容紧挨着高边MOS管和低边MOS管放置,回路的走线面积越小,寄生电感越小,开关振铃越小。很多新手的layout把输入电容放得离芯片很远,这在非同步BUCK里可能勉强能用,但在同步BUCK里很可能会导致开关尖峰过高、电磁干扰严重。
我自己在画同步BUCK的板子时,习惯把功率部分放在同一面,把电感放在另一面,用多个过孔并联来降低过孔电感。电源走线尽量宽,开关节点走线短而粗,反馈走线远离开关节点和电感,这一点在下一部分细说。
5. 用示波器排查问题的实战套路
5.1 测量点选择与探头接法
示波器是排查开关电源问题的利器,但测量方法如果不对,判断就会出错。我见过很多人拿示波器探头的地线夹子夹到板子的GND点,探头探开关节点,量出来的波形振铃很大,其实是地线夹子引线电感造成的假象。
正确的做法是:测量开关节点波形时,用探头自带的弹簧接地短针,直接接在芯片旁边的GND测试点或直连芯片的GND引脚,尽量减少地线回路的长度(相当于测量回路里的电感最小)。测输出电压纹波时也一样,把探头和地线都接到输出电容的两端,而不是从板子远端引一根地线过来。
测量开关节点SW点的波形是最有价值的。SW点波形能够反映很多信息:占空比是否稳定、开关频率是否正确、是否有振铃、是否有负压尖峰。正常工作时,SW点应该是一个在输入电压和地之间快速切换的方波,边沿有一些振铃是正常的,但如果振铃幅度过大或者有异常的平台,就要具体分析了。
用电流探头测量电感电流是判断电感是否饱和的最直观方法。电流波形应该是一个三角波加直流分量,如果电流波形在峰值处突然变平并急剧上升,说明电感饱和了。没有电流探头时,也可以在回路中串入采样电阻,通过测电压间接判断,但要考虑采样电阻对电路工作的影响。
5.2 观察关键波形判断故障
学了看波形,就可以把常见故障和波形特征对应起来。
输出电压纹波大:纹波波形如果是和开关频率同步的尖峰,多半和输出电容的ESR有关,换低ESR的陶瓷电容能明显改善;如果是低频振荡,多半是环路不稳定,需要调整补偿网络。
SW点异常:SW点关断时如果出现很大的负压尖峰,说明续流或低边管存在问题;如果SW点在开通时持续高电平,说明高边管没有正常关断;如果SW点波形杂乱无规律,可能芯片进入了保护状态或者时钟频率不对。
FB点波形:正常工作的FB点接近基准电压,纹波很小。如果FB点出现明显振荡,说明反馈环路有问题,需要检查补偿电容和电阻。
5.3 常见问题速查表
| 故障现象 | 可能原因 | 检查方法 |
|---|---|---|
| 输出电压偏高 | 反馈电阻比值不对 | 核对分压比,量FB脚电压 |
| 输出电压偏高接近输入 | FB悬空或接地开路 | 查焊点、走线连续性 |
| 输出电压偏低 | 电感饱和、散热不良 | 测电感电流波形,摸电感温度 |
| 输出电压偏低 | 续流二极管损坏或选型错误 | 替换为肖特基试试 |
| 输出电压不稳 | 输入电源容量不足 | 输入并加大电容或换电源 |
| 芯片发热严重 | 开关频率过高、驱动不足 | 看Vgs边沿、降低频率 |
| 电感啸叫 | 轻载跳周期 | 换PWM模式芯片或增加负载 |
| 电感啸叫 | 环路不稳定 | 测纹波,调补偿 |
| 上电烧芯片 | 输入电压尖峰过高 | 示波器看输入波形,加TVS |
| 上电烧芯片 | 输出短路或过流 | 断开负载测试 |
这张表只是一个起点,真正排查问题时还是要结合波形和具体芯片的数据手册来分析。
6. 一些杂七杂八的实战心得
最后分享几个零散但实用的经验,都是我自己踩过坑之后总结出来的。
第一,新手焊完板子不要急着上满电压。先用限流电源供电,限流设小一些,比如先设100mA到200mA,上电后看看电流是否异常。如果电流飙得很大,马上断电,做好检查再上电,这能帮你免去很多烧芯片的麻烦。
第二,BUCK电路的输入端一定要放足够容量的陶瓷电容。很多人只放了一个电解电容,忽略了陶瓷电容对高频纹波的作用。实际上,输入电容对抑制输入振铃、降低开关噪声至关重要,它和高边MOS管的峰值电流有直接关系。建议输入至少并一个10uF到22uF的陶瓷电容(具体看电流和芯片要求),尽量靠近芯片引脚。
第三,反馈走线不能粗心。反馈引脚FB是BUCK环路里最敏感的节点,它必须直接从输出电容正端采样,拉一根细线回到芯片FB脚。千万不要让反馈走线靠近电感、SW节点,也不要和功率路径共用一段走线,否则输出调节精度会明显恶化,甚至导致环路自激振荡。很多输出电压不准、纹波大的问题,不是参数算错而是layout没做好。
第四,用手摸工作状态下的电感或芯片判断温度是有风险的。BUCK芯片正常工作时的表面温度可能在80度甚至更高,直接用手摸很容易烫伤,而且你摸完判断“有点烫”可能其实是完全正常的。建议用红外测温枪或者热成像仪,实在没有,至少断电后快速摸一下,心里有数就行。
第五,遇到问题不要频繁换芯片。新手的一个通病是:板子不上电就怀疑芯片坏了,换了三颗芯片仍然不行。其实芯片损坏的概率相对较低,更多是外围电路、layout或参数设置的问题。每换一颗芯片前,都应该问自己一个问题:这次换上去之前,我确认了外围所有条件都正常吗?
BUCK电路是开关电源里最基础也最经典的拓扑,把它的常见问题和原因搞清楚,对你后续学习BOOST、BUCK-BOOST、反激、正激这些拓扑都有很大帮助。很多原理是相通的,比如环路稳定性、功率器件的损耗、layout的要点,你在BUCK上积累起来的经验,几乎所有开关电源都能用得上。
根据我这些年的经验,能把BUCK调稳定,其实已经超过了相当一部分所谓“电源工程师”的水平。剩下的,就是遇到问题时多问几个为什么,多看波形、多查规格书,慢慢积累自己的判断力。希望这篇心得能帮你少走一些弯路。