你做了这么多年电源或嵌入式开发,大概率遇到过这种场景:电池供电的产品,满负载时候一切正常,一到待机、休眠这种轻负载工况,整机功耗就压不下去。查了一圈,MCU 也睡了,外设也断了,最后发现罪魁祸首是 DC-DC 在轻负载下依然用固定频率工作在 PWM 模式,开关损耗把好不容易省下来的电全吃回去了。
这时候再看 XU9232 这类支持 PWM/PFM 自动切换的电源芯片,就会觉得"轻负载自动切到 PFM"这个功能实在是个好东西。它不光是省几个毫安的静态电流,而是直接决定了你的产品在待机状态下能撑几天还是几周。这篇文章我不打算照着规格书念,而是结合我自己实际调板、测波形、改物料踩过的一些坑,把 XU9232 这个自动切换模式的来龙去脉、测试方法和配套设计逻辑讲透。无论你是在做电池供电的传感器节点、便携仪表,还是用 STM32 做 PWM 调速的电机驱动板,这篇文章都值得花几分钟看完。
1. 为什么"轻负载切换到 PFM"是电源设计的隐形刚需
1.1 先搞清楚 PWM 模式下轻负载为什么费电
PWM 调制的基本逻辑是固定开关频率、调占空比来稳定输出电压。比如一个 1.5MHz 开关频率的降压转换器,无论输出电流是 1A 还是 1mA,开关管都在以 1.5MHz 的频率不停导通和关断。每一次开关动作都要对栅极电容充放电,这部分损耗大约等于 f × Qg × Vgs,和负载电流关系不大,属于"固定开销"。
在重负载下,输出电流大,开关损耗在总损耗里占比很小,PWM 的闭环响应又稳又准,优势很明显。可当负载掉到几十毫安甚至几毫安时,情况就不一样了。电感上的纹波电流、开关管的开关损耗、控制电路的静态电流,这些"固定成本"摊到很小的输出电流上,效率会迅速掉到 70%、60% 甚至更低。图上看就是一条在中负载之后急剧向下弯的效率曲线,这也是很多手持设备待机电流虚高的根本原因。
1.2 PFM 在轻负载下的省电逻辑
PFM,脉冲频率调制,核心思路是"负载轻的时候,别让开关管白忙活"。XU9232 的自动切换逻辑就是在检测到负载变轻时,把开关频率降下来,改为根据输出电压的高低决定什么时候打一个脉冲,什么时候停一阵子。负载越低,开关频率越低,开关损耗几乎随着负载线性下降,待机效率自然就上去了。
我用一个很直白的类比:PWM 相当于一辆车无论高速还是市区堵车都保持 3000 转行驶,油耗固定;PFM 相当于堵车时直接挂空挡滑行,需要加速了才踩一脚油门。前者响应快但费油,后者省油但动力响应不那么线性。XU9232 做的事情,就是让这个"挂空挡"的动作自动完成,不用软件干预,也不让 MCU 去判断负载大小。
1.3 为什么不能用软件强制切换
有人会说,我可以用 MCU 的 GPIO 控制芯片的 MODE 引脚,休眠时候强制切到 PFM 或跳过周期模式。确实有一部分芯片支持这种操作,但实际工程里很麻烦:你要引入负载检测、状态机切换、切换时候的软启动,还要担心系统刚好在切换瞬间出现负载突变。XU9232 把切换逻辑做到芯片内部,根据反馈环路里的电流信息自动判断,相当于硬件实时监测负载,比你用软件轮询快几个数量级,而且没有代码维护成本。
2. 从 PWM 到 PFM:XU9232 内部到底发生了什么
2.1 占空比和反馈环路的"分工"
在 PWM 模式下,XU9232 内部的误差放大器会持续比较输出电压分压值和基准电压,输出一个误差信号,再通过 PWM 比较器和固定频率的三角波发生器,生成对应占空比的开关信号。这里的核心参数是占空比 D = T_on / T_sw,稳态时约等于 Vout / Vin。占空比计算公式说起来简单,但实际负载变化时,占空比是在不停微调的,这就是闭环调节的过程。
当负载变轻,输出电压有上升趋势,误差放大器输出的控制电压会往下压,要求更小的占空比。但问题在于,PWM 模式下最小可控占空比受开关频率和最小导通时间限制。比如开关频率 1.5MHz,周期约 667ns,芯片若限制最小导通时间不可低于 100ns,那占空比最低只能到 15% 左右。如果输入电压较高、输出又低,轻负载下需要的占空比可能已经低于这个下限,输出电压就会失控上冲,芯片只能在"跳过一些周期"和"继续开 PWM"之间二选一。
2.2 电感电流归零检测:进入 PFM 的信号
同步降压转换器在轻负载下通常会进入电感电流连续模式 CCM。此时即使输出电流很小,电感电流也是双向流动,负向部分由低边开关管把能量从输出端抽回输入端,实际上白费了一部分能量。XU9232 这类芯片内部有零电流检测比较器,实时监测低边开关管电流过零的时刻。
一旦检测到电感电流在开关周期内提前降到零,就意味着负载需要的电流已经小于电感纹波电流的一半,系统到了 CCM 和 DCM 的边界。此时芯片判断进入轻负载工况,自动切换到 PFM 模式。在 PFM 模式下,芯片会拉长各开关周期的间隔,电压低于阈值时打一个固定的脉冲串,电压够了就全部关断进入睡眠态,静态电流降到微安级别。这种"打嗝式"的工作方式,看着波形有点像突发模式,原理上是一致的。
2.3 切换滞回:防止 PWM/PFM 在边界来回抖
如果芯片只有一个固定的电流阈值,理论上负载一旦跨越该点就会瞬间切换模式。但实际负载不是恒定不变的,传感器、无线模块、屏幕背光都在动态波动。假如此刻负载正好在模式切换阈值附近抖动,芯片今天切过去、明天切回来,输出电压稳定不住,还会产生可听噪声和额外的 EMI。
XU9232 的做法通常是设置一组滞回区间:比如从 PWM 切到 PFM 的负载电流阈值为 100mA,但从 PFM 切回 PWM 需要负载升到 130mA 才触发。这个滞回窗口让模式切换不会过于灵敏,也保证了环路响应切换时留有足够余量。实际测试时,你用电子的负载从 500mA 往下扫,然后从 50mA 往上扫,两种方向上的切换点往往会差出一截,这恰恰是芯片有意设计的滞回特性,不是异常。
3. 自动切换模式的代价:纹波、噪声和负载瞬态
3.1 PFM 模式下输出纹波明显变大
说完省电,必须说代价。PFM 模式是以输出电压纹波换效率的。PWM 模式下开关频率固定,输出纹波主要取决于电感纹波电流和输出电容的 ESR、容量,频率成分单一,容易通过 LC 和后级滤波抑制。PFM 模式下,开关脉冲的间隔是不固定的,负载越轻间隔越长,输出电压会呈现明显的锯齿状纹波,波谷出现在下一次脉冲到来之前。
我在实际测 XU9232 的输出纹波时,PWM 模式下大概能控制在十几毫伏的水平,切换到 PFM 后纹波可以到四五十毫伏甚至更高,具体看输出电容大小。如果你的后端给的是对电源噪声敏感的模拟电路、射频 PA 或者高精度 ADC,这几十毫伏的纹波可能直接变成底噪抬升。所以在设计之初就要问自己:这个产品到底更看重待机功耗,还是更看重输出纯度?
3.2 模式切换瞬间的电压过冲与回落
另一个容易忽略的现象是 PWM/PFM 切换瞬间的输出电压扰动。从 PWM 切到 PFM 时,芯片要停止大部分开关动作,输出电压靠电容里的能量维持,会有一小段电压下落。从 PFM 切回 PWM 时,负载突然加重,芯片要从近乎休眠状态唤醒,重新启动固定频率开关,唤醒过程如果补偿慢了,电压会有几十毫伏的下冲。
这些扰动在数字电路和一般 LED 负载下基本无感,但如果你驱动的是舵机、电机这种对电压跌落敏感的负载,就要注意了。舵机 PWM 控制信号的逻辑电平如果因为电压跌落跌破阈值,可能引起舵机误动作。我的经验是让 XU9232 的输出经过一路 LDO 再给 MCU,而舵机直接吃电池或 XU9232 的主输出,这样切换扰动被 LDO 的电源抑制比挡掉一层,逻辑更干净。
3.3 轻负载下的音频噪声和示波器误判
PFM 的脉冲间隔如果落在 20Hz 到 20kHz 人耳可听范围内,磁性元件会产生"吱吱"声。这通常是电感材质选择和脉冲串频率共同作用的结果。使用 XU9232 这类自动切换芯片时,如果听到待机状态有明显的音频噪声,不要急着怀疑芯片坏,优先查两件事:一是电感的额定电流和磁芯材质是否适合这种间歇脉冲驱动,二是输出电容是否容量偏小导致脉冲间隔过长、落入可听频段。换成高饱和电流的电感或稍加一点输出电容,通常能改善。
示波器测 PFM 波形时也要注意,如果触发模式设置不当,你会看到一堆杂乱无章的脉冲,以为芯片工作异常。实际上把时基拉长、用余辉模式观察,会看到规律的"脉冲串—静默—脉冲串"结构,这就是 PFM 的正常形态。
4. 实测 XU9232:用电子负载和示波器把切换点找出来
4.1 测试平台的搭建
要真正摸清 XU9232 的自动切换行为,得有一台能恒流模式的电子负载和一台带宽至少 100MHz 的示波器。建议测试时直接测电感前端的开关节点波形,也就是 SW 引脚对地的电压。这个节点能直观反映开关管动作频率和脉冲密度变化。
我通常的测试步骤是:
- 输入接可调电源,先按典型电压供电,比如 5V。
- 输出端接电子负载,从 500mA 开始,工作在恒流模式。
- 示波器探头接 SW 节点,接地用短弹簧地线,避免长地线引入噪声。
- 用记录模式或余辉模式连续捕获波形,同时缓慢减小负载电流,观察开关脉冲密度的变化。
- 记下从连续等间隔 PWM 波形变成稀疏 PFM 脉冲时的负载电流值。
4.2 怎么判断"自动切换"是否真的生效
判断切换点的直接依据就是 SW 节点的波形形态。在 PWM 模式下,SW 节点波形是等间隔的方波,频率就是芯片标称开关频率,占空比随负载微调。进入 PFM 之后,方波不再是等间隔输出,中间会出现明显的无开关动作静默期。静默期越长,说明负载越轻,这就是"轻负载时切换到 PFM 模式"的直观证据。
我测过的一块典型板子,在负载降到 80mA 左右时,SW 波形开始出现间隔不均匀。到 20mA 时,静默期已经占到整个周期的很大比例,平均开关频率从 1.5MHz 降到几十 kHz 甚至更低。整个过程中输出电压始终稳定在设定值附近,只是纹波形态变化明显。这个测量结果可以直接写进测试报告,比单纯看效率曲线更有说服力。
4.3 效率曲线的绘制和解读
要量化"省了多少电",就画一条从轻负载到重负载的效率曲线。用输入输出功率比值计算即可,数据的可靠性取决于电流采样的精度,万用表测电流比电子负载上的电流表更可信。常见问题是在 PFM 模式下输入电流呈脉冲状,导致误测。此时输入侧要并联大容量电解电容,让电流表读到的是平均电流,再用台式万用表手动采样或记录仪处理。
根据经验,PWM 模式强制轻载时效率可能只有 65%,而同样负载下切到 PFM 后可回升到 80% 以上。重负载段两者效率曲线趋同,因为 PFM 模式在中高负载下本来就会被自动切回 PWM。这就是自动切换的核心价值:不牺牲重负载性能,把轻负载短板补齐。
5. 适配 STM32 和电机这类 PWM 负载时的供电设计考量
5.1 XU9232 给 MCU 系统供电:和 STM32 PWM 输出的配合
在热词榜里能看到大量 STM32 生成 PWM 输出的需求,比如 stm32g070cbt6 的 PWM 输出程序、HAL 库配置、占空比计算公式。要注意,MCU 的 PWM 输出只是控制信号,它的电平质量取决于 VDD 是否干净。如果把 XU9232 作为 STM32 系统的核心供电,那么 PFM 模式的纹波可能通过 VDD 引脚耦合到 PWM 输出信号上,进而干扰舵机或电机驱动器的控制时序。
我在一块板子上遇到过一个诡异问题:用 XU9232 输出 3.3V 给 STM32 供电,MCU 用最高频率 PWM 驱动一个数字舵机,舵机偶尔会抽搐。起初以为是 PID 参数和占空比计算公式的问题,调了一下午毫无进展。后来用示波器测 STM32 的 VDD,发现在轻负载下 PFM 纹波高达 60mV,而且 PWM 输出高电平也跟着纹波微颤。把 XU9232 的输出反馈分压电阻上的电容稍微加大,同时给 STM32 的 VDD 加了 10uF + 100nF 陶瓷电容,问题立刻消失。
这个案例说明,芯片自动切换模式本身没有错,错在没考虑轻负载纹波对 MCU 数字系统的传导。所以设计电源架构时,把敏感负载和开关电源之间做一级 LDO 或足够的 π 型滤波,是很值得的工程投入。
5.2 直流电机 PWM 调速和舵机控制的供电分割
再看 PWM 控制直流电机转速、PWM 控制 RGB 调光这类场景,负载本身是电流型脉冲负载。电机启动瞬间电流可能是稳态的好几倍,RGB 灯珠则是以几百 Hz 到几千 Hz 的频率切换导通。如果把 XU9232 直接接到这种负载上,PFM 模式下的开关响应会先因为负载突变切回 PWM,再因为负载变轻切回 PFM,来回切换频率其实不低。
我的习惯是给电机、舵机、LED 功率级和 MCU 各自安排独立的电源路径:XU9232 只负责给 MCU 和逻辑电路提供稳定电压,电机和灯珠直接从电池电压经低功耗开关或专用驱动 IC 控制。这样做还有一个额外好处,电机反电动势和灯珠开关噪声不会顺着供电线污染 MCU 电源。如果你一定要用单路 XU9232 兼顾两种负载,务必在靠近负载端加大容量储能电容,降低突变电流对 XU9232 反馈环路的冲击。
5.3 占空比、频率和调光/调速分辨率的关系
做 PWM 调光或者电机调速时,所有人都避不开两个参数:PWM 频率和占空比精度。PWM 频率决定了调光/调速的平滑度和电磁噪声,占空比分辨率由定时器计数周期决定。STM32 的通用定时器做 PWM 时,占空比计算公式一般是:
占空比 = CCR / ARR
其中 ARR 决定周期,CCR 决定高电平时间。XU9232 在这里扮演的角色不是产生 PWM,而是保证产生 PWM 的 MCU 供电电压纹波足够小,否则占空比再精确,输出到电机或舵机上的实际电平也会叠加噪声抖动。换句话说,电源的 PFM 纹波控制,直接影响你的 PWM 调速精度是否"表里如一"。
6. 配套电路设计中的常见坑
6.1 反馈分压电阻和零点电容的选择
XU9232 这类芯片的反馈引脚通常需要两个分压电阻设置输出电压,输出电压 = Vref × (1 + R上 / R下)。很多人忽略的是分压电阻两端的并联电容,也就是前馈电容。这个电容能在瞬态时把一部分输出电压变化直接耦合到反馈引脚,帮助环路更快响应。
但电容选太大会拖慢 PFM 模式下电压检测的速度,导致切换点判断滞后。我一般先按规格书给的典型值起步,比如 22pF 到 100pF,再根据实际瞬态波形微调。轻负载频繁切换模式时,如果反馈引脚噪声明显,还可以在反馈引脚对地再加一个小电容滤除高频毛刺,但要注意这会降低带宽,一增一减需要取舍。
6.2 电感饱和电流和 DCR 的取舍
PFM 模式下,电感上流过的电流是脉冲状的,峰值电流可能比平均负载高出很多。如果电感选型时只看了额定电流而忽略饱和电流,轻负载切换时反而更容易出问题:电感饱和后感值下降,纹波电流变大,芯片可能误判负载状态。
同时,电感的 DCR 直接影响重负载效率,但为了降低 PFM 模式的磁芯损耗,也不能只看 DCR。我踩过的坑是选了一个超低 DCR 的功率电感,结果 PFM 模式音频噪声明显。后来换成同样感值但磁芯材质偏高频的电感,噪声消失,效率只掉了不到一个百分点。这提示我们,在自动切换模式的应用里,电感不仅要看感值和电流,还要看磁芯材料对间歇脉冲的适应能力。
6.3 输出电容的 ESR 和容量对模式切换的影响
PFM 模式下输出电压的跌落速度由输出电容决定:容量越大、ESR 越低,电压保持时间越长,脉冲间隔可以拉得更开,待机功耗越低。但无限加大电容也会让环路在瞬态时恢复变慢,尤其从 PFM 切回 PWM 时,如果负载突增而输出电压还维持在高位,芯片检测不到"需要重载"的信号,切换时机就会滞后。
在 XU9232 这类自动切换芯片的输出端,我会优先选低 ESR 的 X7R 陶瓷电容,并保证总容量足够覆盖最大瞬态负载。陶瓷电容容易受 DC 偏压影响,比如 10uF 电容在 5V 下实际可能只剩 4uF 左右,这个降额必须算进去。算容量时宁可多留 30% 的余量,也不要卡着理论值。
6.4 PCB 布局的顺序和地回路
PFM 模式下开关脉冲间隔很大,反而容易让地回路上的噪声变得明显。布局时把输入电容尽量贴着芯片 VIN 和 GND 引脚,把 SW 走线缩短,输出电容靠近电感输出端。反馈分压电阻的地要单独接到芯片 GND 引脚附近,不要串到功率地回路里。
我见过一张板子,负载一轻就出现输出电压间歇性偏高,查了半天是反馈走线太长且靠近 SW 节点,PFM 脉冲带来的磁场干扰直接耦合到反馈线上。重新布局后把反馈走线拉到 PCB 另一面,输出就稳了。这类问题在 PWM 模式高频时也会出现,但 PFM 模式由于脉冲密度低,干扰反而更容易被忽视。
7. 评估 XU9232 是否适合你的项目:一个务实的检查清单
7.1 输出电流范围和负载波动特征
见到有 PWM/PFM 自动切换功能的芯片,先别高兴太早,要看它覆盖的电流区间是否落在你的典型工作负载内。比如你的设备平时工作电流 300mA,待机只有 5mA,那自动切换的省电收益就很明显。如果你的设备从头到尾都是稳定的 500mA 恒定负载,PFM 优势基本发挥不出来,选一颗强制 PWM 的常规芯片性价比反而更高。
同时要看负载波动的频率特征。无线传感器每隔几秒进行一次射频发送,每次发送时电流突增到几百毫安,发送完又回落到微安级。这种特性非常适合自动切换。但如果是持续音频播放的设备,平均电流相对平稳且负载偏大,自动切换的价值主要体现在音量很低或暂停播放的状态。
7.2 对输出纹波和 EMI 敏感程度的评估
做精密模拟前端、无线射频前端、医疗设备或工业控制时,对电源纹波的容忍度通常很低。芯片的 PFM 模式一定会以更大纹波为代价,这就要看你能不能在后级用 LDO 或 LC 滤波器把它压回来。如果不能接受任何模式下输出波形形态的变化,那就该考虑一直强制 PWM 的选项,或者用两颗芯片分别处理重负载和低功耗路径。
EMI 方面也要提前评估。PWM 模式下开关频率固定,EMI 频谱相对集中,设计滤波器时方向明确。PFM 模式下脉冲间隔抖动,频谱呈宽带分布,相同幅度的噪声在宽带范围里更难被单点滤波器吸收。如果你的产品需要过严格杂散指标,最好在前期就带着 PFM 模式下的实测波形做预扫描。
7.3 输入电压范围和电源路径的灵活性
XU9232 的输入电压范围决定了你能接到几节电池、什么样的适配器后面。一般来说,宽压输入芯片适应两节干电池到 5V USB 输入都没问题,但要注意低压差下的占空比极限。输入电压低时,即使重负载也在高占比区间工作,开关管的压降损耗会变大;输入电压高时,轻负载对最小占空比的需求更苛刻,PFM 模式的重要性也更突出。
设计时还要考虑输入端的掉电时序。如果电池电压跌到欠压保护点,芯片会关断输出,此时 MCU 必须能在电源丢失前把 PWM 输出状态复位,防止电机失控或舵机乱转。这种系统级的时序配合,比单纯调芯片参数要重要得多。
8. 我最后想提醒的三件事
第一,别只看效率曲线上的亮点数字。自动切换功能的价值必须结合你的实际负载分布来看,用在待机时间主导的产品上是神器,用在恒流输出上则是鸡肋。
第二,模式切换带来的纹波、噪声和瞬态扰动,必须在原理图阶段就做预案,而不是等样板出来再救火。给 MCU、传感器、射频电路预留 LDO 或 π 型滤波位置,哪怕量产时用 0 欧电阻跳过,也比后期飞线强。
第三,示波器上看到的 PFM 波形会打破很多人的"整齐强迫症",这是正常的。你要关注的不是开关脉冲的整齐程度,而是输出电压是否稳定、切换阈值是否合理、静默期长度是否符合负载需求。看懂了这些,你才算是真正把 XU9232 这个"自动切换"功能用明白了。