做电源或者做嵌入式的朋友,一定见过这种场景:产品整机待机电流明明只有十几毫安,输入端的功率却高得吓人,一算效率不到四成。电池供电的东西最怕这个,设备没干多少活,能量全在电源路径上白白浪费掉了。
我最近调一块降压电路就踩了同样的坑,后来把芯片换成支持PWM/PFM自动切换工作模式的XU9232,同样十几毫安的轻负载,输入端功耗肉眼可见地降下来,板子也不怎么发热了。这颗芯片的核心卖点就是标题里那句:轻负载时自动从PWM切到PFM模式。这篇博文就把这件事掰开揉碎讲清楚:PWM和PFM到底差在哪、芯片内部靠什么机制完成切换、外围电感和电容怎么选、PCB怎么布局、以及调试中常见的那些坑。适合正在做DC-DC电源设计、嵌入式供电、电池类产品的工程师,也适合刚接触电源、想搞懂PFM和PWM区别的入门读者。
1. 先搞清楚PWM和PFM到底在解决什么问题
1.1 PWM调制:固定频率、调节占空比
PWM(Pulse Width Modulation)是降压转换器最经典的调制方式。芯片内部以固定频率打开和关闭上管,通过改变导通时间占空比来调节输出电压。类比一下:水龙头每秒固定开关50万次,每次开启的时间长短决定平均出水量。
固定频率带来的好处非常明显:输出电压纹波集中在一个已知频率及其谐波上,EMI滤波器好设计,环路补偿也好做。负载从轻到重,占空比平滑变化,动态响应快且稳定。
但PWM有一个绕不开的短板:每一次开关,栅极驱动都要消耗能量,开关管的寄生电容充放电也要消耗能量。这些损耗和负载电流大小基本无关,只和开关频率成正比。负载电流大时,这些损耗占比小,无伤大雅;负载电流只有几毫安时,固定的开关损耗就成了压垮效率的最后一根稻草。这就是为什么纯PWM模式的芯片在轻载下效率经常跌破50%。
1.2 PFM调制:固定能量、调节频率
PFM(Pulse Frequency Modulation)的思路完全反过来:每次开关送出固定的能量包,通过改变脉冲出现的频率来调节平均输出功率。同样类比:抽水马桶每次冲水量固定,水位低了就冲一次,水位接近目标就不冲,冲水的频率由用水速度决定。
轻载时PFM模式会自动拉长脉冲间隔,开关频率从500kHz一路掉到几十千赫兹甚至更低。开关次数少了,每次开关消耗的能量自然减少,轻载效率能大幅回升。比如同样10mA负载,PWM模式可能勉强到60%效率,切到PFM后能回到80%以上。
代价也很直观:输出纹波比PWM大一些,开关频率随负载漂移,EMI频谱不再集中在单一频率,滤波网络要按宽频带去考虑。另外,PFM模式下环路特性也会变化,负载瞬态响应不如PWM那么硬朗。所以好的方案不是“二选一”,而是让芯片根据负载自动选模式。
1.3 轻载必须切换的账,算给你看
我以12V输入、3.3V输出、负载10mA的典型场景来估算。负载功率大约33mW。假设PWM开关频率500kHz,上管开关过程中电压电流交叠产生的开关损耗约12mW,栅极驱动损耗、电感磁损、芯片静态电流等再吃掉几毫瓦,总损耗可能超过20mW。算下来效率只有60%上下,如果你用的模块Iq高一点,效率跌到40%都不奇怪。
切到PFM之后,开关频率降到大约50kHz,开关损耗降到原来的十分之一,总损耗剩下5到8mW,效率可以回到80%以上。待机一周的耗电,光这一个切换就能省出一大截。对电池产品来说,这是决定续航能不能多撑一个月级别的差异。
2. XU9232的自动切换工作模式,里面是怎么实现的
2.1 自动切换如何被触发
既然PWM和PFM各有优劣,芯片就需要一个机制判断“现在该用哪种模式”。主流做法是检测电感电流的工作状态。同步降压转换器工作在CCM(连续导通)时,电感电流始终大于零;负载轻到一定程度,电感电流会在开关周期内跌到零,进入DCM(断续导通)。
芯片内部一般有一个过零检测比较器,实时盯电感电流是否降到零。如果连续几个周期都检测到DCM,说明负载确实轻了,控制逻辑就把调制策略从PWM切换到PFM。反过来,当负载增大,电感电流峰值持续超过某个阈值,芯片就会从PFM平滑回到PWM。XU9232这类芯片采用的就是类似架构,整个过程由模拟比较器和状态逻辑自动完成,不需要外部干预。
还有一类芯片通过误差放大器的输出电压来判断负载轻重:EA输出拉低到一定范围,说明输出电压容易维持、负载很轻,于是切到PFM。这种方式实现简单,但响应粒度不如过零检测精细。
2.2 切换点设计与迟滞防抖
自动切换最忌讳一个现象:负载在临界点附近抖动,芯片来回切换。假如PWM→PFM的阈值是300mA,PFM→PWM的阈值也是300mA,负载电流恰好在300mA上下波动,模式就会反复横跳。每次切换都可能带来输出电压的小扰动,严重时还会产生可闻噪声。
解决办法是给切换逻辑加迟滞。例如PWM→PFM在负载降到280mA时触发,而PFM→PWM要等负载升到350mA才切回。中间这70mA就是迟滞带。XU9232这类芯片内部都设计了这样的阈值窗口,目的就是让模式切换“干净利落”而不是“反复试探”。你在示波器上如果看到SW节点波形在两种模式之间来回跳,先不要怀疑芯片坏了,看看是不是负载恰好落在迟滞窗口内。
2.3 模式切换前后的实际表现
从PWM切到PFM不是瞬间完成的,芯片内部需要一个短暂的状态转移过程,通常在几微秒到几十微秒。切换期间输出电压可能会有小幅波动,但只要输出电容容量足够、反馈环路带宽合理,这个波动会被限制在几十毫伏以内。
PFM模式也不是一直维持很低的频率。随着负载逐渐增大,PFM的脉冲频率会不断升高,直到接近PWM的开关频率,再平滑合并回PWM。所以整个效率曲线在切换点附近是连续的,不会出现效率突然跳变的情况。实际测试时,用示波器探头点住SW节点,同时缓慢增大电子负载,能看到波形从稀疏的burst逐渐变密,最后变成均匀的固定频率方波。这个现象是我判断芯片切换逻辑是否正常最有效的手段。
3. 这类芯片在实际项目里怎么用
3.1 场景一:MCU系统的多级供电
MCU特别是低功耗MCU,工作电流动态范围可以到三个数量级。STM32G070这类Cortex-M0+内核的芯片,跑满外设时可能吃几十毫安,进入STOP模式后待机电流只有几个微安级。如果供电的DCDC不带PFM切换,MCU睡眠时整个系统还在以高频PWM做无用功,电池寿命肉眼可见地缩水。
XU9232这类芯片用在MCU供电轨上是最典型的场景:MCU睡眠时芯片自动切到PFM,靠极低的静态电流维持输出电压;MCU醒来瞬间需要拉大电流,芯片又能快速回到PWM模式,保证瞬态响应不拉胯。
我实际测试过:传感器节点用普通PWM-only降压芯片时,整机待机电流大约是900μA;换成支持PWM/PFM自动切换的芯片后,同样待机状态掉到280μA,电池续航的差距就是这么来的。
3.2 场景二:PWM调光与LED驱动
说句容易混淆的话:很多热词里的PWM调光,指的还是MCU输出PWM信号去控制LED亮度,这是控制层面的PWM。而XU9232内部的PWM/PFM是功率级的调制方式,两者不是一个层面的东西。
但需求和场景可以串起来。给LED灯条供电时,MCU输出PWM到调光MOS管,光源的电源来自一颗DCDC。灯条亮度低、PWM占空比很小时,电源侧的负载电流也低,这时候如果DCDC能切到PFM,整个系统的待机功耗和发热都会更好。反过来,如果灯条需要高频PWM调光,输出电容上会叠加低频脉动,电源还需要足够的环路响应能力。
如果你在做一个支持PWM调光的灯具电源,选型时最好确认一下:DCDC在PFM模式下的输出纹波能不能扛住PWM调光带来的电流波动,必要时在输出侧加一级滤波。
3.3 场景三:电机驱动与舵机供电
PWM控电机转速和舵机角度,本质也是控制信号的PWM,由MCU的定时器产生。电机和舵机的供电侧,则需要DCDC提供稳定的功率轨。电机的负载特性很恶劣:启动瞬间电流可能是额定电流的好几倍,堵转时会持续灌入大电流。
用带自动切换的DCDC给这类负载供电,好处是电机不转、系统待机时电源侧自动进入省电状态;电机启动瞬间电源又能迅速切到PWM高频模式,扛住瞬态大电流。比如做一个小型云台,大部分时间舵机处于保持状态,电流不大,但云端转动时突然需要几安培,这种动态范围恰好是PWM/PFM自动切换的强项。
3.4 别把“控制PWM”和“功率级PWM/PFM”搞混
写这篇博文前我特意翻了热搜词,发现很多人在搜“STM32配置PWM”、“STM32G070 PWM输出程序HAL库函数”、“PB6 PWM输出初始化”之类的问题。这些内容本质是教你怎么用MCU的定时器对外输出PWM控制信号,用来驱动舵机、LED调光、电机调速。
而XU9232的PWM/PFM自动切换,是芯片内部功率级的调制方式,决定的是电能转换的效率,不是对外输出的控制信号。举个最直白的例子:你用STM32的PB6输出一个20kHz、50%占空比的PWM去控制舵机,这和XU9232内部500kHz的功率级PWM没有任何直接关系。一颗电源芯片并不会因为你用MCU输了PWM就改变自己的模式,它的PWM/PFM切换只由负载电流大小决定。
新手如果在这个地方卡住,建议先把信号链捋一遍:MCU产生的PWM是控制信号,DCDC输出的稳定电压是功率轨,两者中间可能还隔着驱动器和功率管。分清信号域和功率域,很多困惑会迎刃而解。
4. 关键参数与外围器件选型
4.1 开关频率与占空比计算
选用XU9232这类芯片之前,先摸清它的额定开关频率。以常见的500kHz到1MHz档位为例,频率高则电感可以选小,但开关损耗更大;频率低则损耗小,但电感体积和输出纹波会增大。做便携产品我一般倾向选600kHz到1MHz之间的值,兼顾体积与效率。
CCM模式下PWM占空比的计算公式很简单:
D = Vout / (Vin × η)
其中η是预估效率。以12V输入、3.3V输出、效率90%代入,D ≈ 3.3 / (12 × 0.9) ≈ 0.31。也就是说,上管导通时间约占开关周期的31%。这个数值决定后面电感伏秒积的估算。
注意,PFM模式下这个公式不直接适用。PFM的每个脉冲可能是固定导通时间,也可能是固定峰值电流,输出电压靠脉冲频率来稳定。所以用公式时务必搞清楚芯片当前处于哪种调制方式。
4.2 电感选型:感值、饱和电流、磁芯
电感值按允许的电流纹波来算,经验值是让纹波电流ΔIL为最大负载电流的20%到40%。公式如下:
L = (Vin - Vout) × D / (fsw × ΔIL)
举个例子:Vin=12V,Vout=3.3V,D=0.31,fsw=500kHz,假设最大负载2A,取ΔIL=0.5A。代入计算L ≈ (12 - 3.3) × 0.31 / (500000 × 0.5) ≈ 10.8μH。实际取标称值10μH或12μH都合理。
电感饱和电流不能只看最大负载。PFM模式下,某些芯片的峰值电流限制策略和PWM不同,轻载时单脉冲峰值电流可能比稳态负载高不少。保守的做法是选饱和电流为最大输出电流的1.3到1.5倍,同时留出温度降额。
磁芯选型上,我建议优先用屏蔽电感,比如一体成型电感。PFM模式轻载时开关频率掉进音频范围,裸露磁芯的电感容易产生机械振动,严重时会发出可闻噪声。一体成型结构对绕组的固定更好,啸叫概率明显降低。
4.3 输入输出电容的讲究
输入电容的主要职责是吸收开关纹波电流,计算公式可以简化成:
CIN = Iload × D × (1 - D) / (fsw × ΔVin)
拿上面的参数算:2A × 0.31 × 0.69 / (500kHz × 100mV) ≈ 8.6μF。考虑到陶瓷电容的直流偏压特性——电压越高有效容量越低,实际可以放两颗10μF并联,容量裕量才够安心。输入电容要尽量靠近芯片的VIN引脚,否则回路电感会在高频下搞出振铃,严重时甚至让芯片误触发过压保护。
输出电容决定的是负载瞬态时的电压跌落。简化估算:
Cout = ΔIload / (fsw × ΔVout)
如果负载从100mA跳到1A,允许跌100mV:Cout ≈ 0.9 / (500kHz × 0.1V) ≈ 18μF,取22μF陶瓷电容合适。多颗并联还能降低ESR和ESL,对PFM模式下偏高的纹波也有帮助。如果纹波依然超标,我习惯加一颗1μF的高频陶瓷电容放在负载端,效果往往立竿见影。
4.4 选型对比参考
我把PWM-only、PFM-only和自动切换三种控制策略放在一张表里对比,方便你代入自己的项目需求选择:
| 控制策略 | 轻载效率 | 重载能力 | 纹波表现 | 动态响应 | 适合场景 |
|---|---|---|---|---|---|
| PWM-only | 低(开关损耗固定) | 强 | 优秀 | 优秀 | 重载为主、对EMI要求高的系统 |
| PFM-only | 高 | 弱(频率上限受限) | 一般 | 较弱 | 纯轻载、微功耗系统 |
| PWM/PFM自动切换 | 高 | 强 | 良好 | 良好 | 电池设备、宽动态负载范围 |
XU9232属于第三类,它的定位就是覆盖宽负载范围,同时在两端都保持较好性能。选型时还要关注芯片的静态电流Iq。轻载时芯片自身的Iq往往占据总损耗大头,选择Iq在几十微安级别的版本,待机续航才真正有优势。
5. 布局布线经验
5.1 功率回路要短,高频环路更短
DCDC的PCB布局是一个高频问题,不只是走线好看的问题。输入电容、上管、下管、电感、输出电容之间有一个高频电流环路,这个环路的面积直接决定寄生电感和辐射噪声的大小。
以XU9232这类同步降压芯片为例,输入电容必须紧贴VIN和GND引脚,上管导通时的脉冲电流从这个回路灌入。环路面积越大,寄生电感越高,SW节点的振铃越凶,严重时芯片的过压保护都会被误触发。我把这个经验总结成一句话:先把输入电容放在最靠近芯片的位置,再谈别的。
5.2 SW节点与电感摆放
SW节点是开关频率最高的节点,同时也是电流跳变最大的节点。铜皮太大会增加寄生电容,影响效率;太小则散热不足。一般建议SW节点铜皮面积比芯片焊盘略大一圈即可,不要大面积铺铜。
电感放在SW节点和输出电容之间,方向和铜皮垂直,避免和SW线平行耦合。电感底下尽量不要走敏感信号线,PFM模式下这个区域的磁场变化相对剧烈,容易干扰旁边的反馈走线。
5.3 反馈采样和地线处理
反馈分压电阻建议放在芯片FB引脚附近,采样点从输出电容之后取。采样线要细要短,最好走Kelvin走线,直接连到输出电容正端,不要在高频电流路径上取信号。高频开关噪声如果灌进FB脚,输出电压就会出现莫名其妙的抖动。
地线处理上,功率地和控制地要单点连接。芯片的GND引脚、输入电容地、输出电容地属于功率地,它们之间用短粗铜皮连接;反馈分压电阻的地属于控制地,单独走线后在某个低噪声点汇入功率地。这样控制信号不会被功率地上的di/dt干扰。
5.4 散热与过孔
XU9232这类小封装芯片,散热主要靠PCB。芯片底部的散热焊盘一定要开地过孔,孔径0.3mm左右,数量尽量多,直接打到背面地平面。过孔不仅导热,还能降低地回路电感。背面铺铜面积不要抠抠搜搜,散热路径通畅,芯片温度能低不少,PFM模式下的热循环应力也小。
6. 常见问题与排查实录
6.1 轻载输出电压偏高
PFM模式下输出电压偏高是常见抱怨。原因多半是芯片为了维持最低开关频率,每个脉冲送出的能量超过了负载消耗,输出电容被“充过头”。这类芯片通常靠PFM脉冲之间的间隙来泄放多余能量,如果负载太小,或者反馈电阻的阻值太大导致FB引脚漏电流引入误差,输出就会漂高。
排查方法:先测量输出在空载和1mA负载下的电压差。如果空载时明显偏高,试着在输出端加一个几百欧的假负载电阻,拉走多余的电荷。假负载会牺牲一点待机效率,但能把输出电压拉回稳定带。
6.2 切换点附近纹波突然变大
负载电流刚好落在迟滞窗口内时,模式切换可能持续发生,输出纹波会比稳定在单一模式时大。用电子负载缓慢扫过切换区间,观察纹波变化趋势,确认是否只是切换过程中的短暂现象。
如果纹波在切换点确实无法接受,可以在输出端并联一个小容量陶瓷电容,先把高频分量滤掉。电容容量不要贪大,太大反而影响环路稳定性。
6.3 PFM模式下出现啸叫
啸叫的根源是电感或陶瓷电容在音频频率范围内发生机械振动。PFM轻载时开关频率掉到几百赫兹到几千赫兹,正好落在人耳敏感区,电感的线圈和磁芯在周期应力下开始“唱歌”。
处理顺序:先换一体成型屏蔽电感,大多数情况下能解决;还不行就在电感上点胶固定,减少机械自由度;如果仍然叫,检查PFM模式的最小频率是否过低,必要时调整负载,让工作点偏离听觉敏感区间。
6.4 用示波器确认模式切换是否正确
判断芯片工作模式,最直接的手段是测SW节点波形。PWM模式下,SW是一串频率恒定、占空比稳定的方波;PFM模式下,SW是一簇簇间隙不等、可能成组出现的脉冲簇。
具体操作方法:示波器探头接SW节点,地线用最短的接地弹簧,避免探棒引入振铃。把电子负载从零缓慢加载到满载,同时观察SW波形密度和频率的变化。如果波形从稀疏到密集,过渡平滑,说明自动切换正常工作。如果看到波形频繁地在两种形态之间横跳,优先怀疑负载落在迟滞窗口,而不是芯片故障。
6.5 排查流程速查表
| 现象 | 可能原因 | 处理办法 |
|---|---|---|
| 轻载效率不达标 | 未真正进入PFM | 用示波器确认SW模式;检查负载是否过轻或芯片Iq偏高 |
| 输出纹波大 | 输出电容偏小或ESR高 | 增大输出电容,选低ESR陶瓷电容,加1μF高频电容 |
| 模式切换点抖动 | 负载在迟滞窗口内 | 调整负载范围,或接受小幅切换过渡 |
| PFM时啸叫 | 电感机械振动 | 换一体成型电感,点胶固定 |
| 输出电压偏高 | PFM脉冲能量过剩 | 加假负载,检查反馈阻值是否过大 |
| SW波形振铃严重 | 输入电容回路过长 | 重排布局,缩短输入电容到芯片的走线 |
排查时我习惯按照“先看SW波形,再测输出纹波,最后查布局”的顺序进行,不要一上来就怀疑芯片型号不对。绝大多数问题要么是外围参数不合适,要么是布局细节没到位,真正芯片问题反而少见。
最后说一点我自己的体会。用带自动切换的芯片,测试和认证阶段一定要把PFM模式的场景覆盖到。很多产品做EMI测试是按重载PWM模式来调的,滤波器参数都针对单一开关频率优化,结果轻载进入PFM时频点漂移,辐射反而超标。我吃过这个亏,后来学乖了:样机阶段就把轻载、中载、满载三种状态的实测波形和频谱都留档,做滤波器设计时按宽频带处理。XU9232这类自动切换芯片带来的续航收益非常直接,但这些隐藏的工程细节,同样值得你提前花心思。