4、系统级排查:电源树分析,逐级测量法,定位纹波源头是前级还是后级

纹波超标了,板子拿在手里,示波器探头一搭——确实有纹波。但问题来了:这纹波到底是从哪来的?是前级电源本身就没搞好,还是后级负载把纹波给“勾”出来的?

我见过不少工程师,一上来就对着输出电容猛换,钽电容换陶瓷,陶瓷换聚合物,折腾半天纹波纹丝不动。其实啊,方向错了,再努力也白搭。这一章,我就跟你聊聊怎么用系统化的方法,把纹波的源头给揪出来。

4.1 电源树分析:先画图,再动手

我个人习惯,拿到一块有纹波问题的板子,第一件事不是上电,而是先画电源树。说白了,就是把板上所有电源轨的层级关系理清楚。

举个例子,一个典型的嵌入式系统电源树可能是这样的:

12V 输入
  ├── 5V Buck (U1) → 给传感器供电
  ├── 3.3V LDO (U2) → 给 MCU I/O 供电
  │     └── 1.8V LDO (U3) → 给 DDR 供电
  └── 1.2V Buck (U4) → 给 FPGA 核心供电
        └── 0.9V LDO (U5) → 给 FPGA 内部 PLL 供电

为什么要画这个?因为纹波会沿着电源树传播。前级的纹波会直接串到后级,后级的噪声也可能通过电源路径反灌回前级。你想想看,如果 5V Buck 的纹波本身就大,那后面接的 3.3V LDO 就算再好,也滤不掉低频纹波——LDO 的 PSRR 在低频段还行,到了几百 kHz 以上就衰减得厉害。

关键认知: 纹波定位不是猜的,是按电源树层级一级一级排除的。先确定纹波是“继承”来的,还是“自产”的。

4.2 逐级测量法:三步锁定源头

电源树画好了,接下来就是动手测。我总结了一套“三步走”的方法,这些年帮我在不少项目里快速定位了问题。

第一步:测输入源

先测板子的总输入电源,比如 12V 适配器输出。如果这里纹波就超标,那后面所有问题都是“继承”来的。我曾经遇到一个案子,客户说 3.3V 纹波有 80mV,我测了 12V 输入,发现纹波 200mV——嗯,源头在适配器,跟板子设计没关系。

第二步:测中间级

如果输入源干净,那就沿着电源树往下测。比如先测 5V Buck 输出,再测 3.3V LDO 输出。注意,这里有个技巧:要同时测前级输出和后级输入。为什么?因为 PCB 走线有阻抗,前级输出纹波小,不代表后级输入端纹波也小——走线太长、回路面积太大,都会耦合噪声进来。

第三步:测负载端

最后测负载芯片的供电引脚。很多时候,电源模块输出端纹波合格,但到了负载端就超标了。原因通常是:

  • 去耦电容离负载太远
  • 过孔太多,增加了寄生电感
  • 负载瞬态电流太大,在走线阻抗上产生了压降

我的习惯: 测量时用示波器的 AC 耦合,带宽限制设为 20MHz,探头用接地弹簧(不要用长地线夹)。这样测出来的纹波才是真实的,不会把高频噪声误判为纹波。

4.3 如何判断纹波是前级还是后级引起的?

测了一圈,数据摆在那了,怎么判断?我一般用两个方法:

方法一:断开负载法

把后级负载断开(或者用电子负载拉一个恒定小电流),看纹波有没有变化。

  • 纹波不变 → 问题大概率在前级电源本身
  • 纹波明显变小 → 问题出在后级负载的瞬态电流上
  • 纹波反而变大 → 可能是后级负载的噪声反灌到了前级

方法二:频率成分分析法

用示波器的 FFT 功能,看纹波的频率成分。前级开关电源的纹波频率通常是开关频率(几百 kHz),后级负载引起的纹波频率往往跟负载的工作频率有关(比如 DDR 的刷新频率、FPGA 的时钟频率)。

纹波频率特征 可能源头 典型值
开关频率 ± 谐波 前级 DC-DC 本身 300 kHz ~ 2 MHz
低频波动 (100/120 Hz) 前级 AC-DC 整流滤波不足 100 Hz / 120 Hz
突发性尖峰 后级负载瞬态跳变 几十 ns 宽
与时钟同步的噪声 后级数字电路耦合 时钟频率

避坑指南: 我曾经在一个项目里,FFT 看到 1.2V 电源轨上有 400 kHz 的纹波,以为是前级 Buck 的问题。结果查了半天,发现是 FPGA 内部的 PLL 锁相环噪声通过供电引脚反灌出来的。所以,频率分析只能作为参考,最终还是要靠断开负载法来确认。

4.4 系统级排查流程图

下面这张图,是我自己总结的排查流程。每次遇到纹波问题,我就按这个走一遍,基本不会漏掉关键环节。

系统级纹波排查流程图 发现纹波超标 步骤1:绘制电源树 步骤2:逐级测量(输入→中间→负载) 步骤3:断开负载 + FFT 分析 纹波是否 随负载变化? 否 源头:前级电源本身 是 源头:后级负载或耦合 针对性整改

4.5 实战案例:一个让我印象深刻的定位过程

最后分享一个真实案例。有一款通信设备,12V 转 1.0V 的电源轨纹波超标,规格要求 30mV,实测 65mV。团队折腾了两周,换电容、调频率、加磁珠,都没用。

我接手后,按电源树逐级测:

  1. 测 12V 输入:纹波 15mV,干净
  2. 测 1.0V Buck 输出端:纹波 28mV,合格
  3. 测 FPGA 核心供电引脚:纹波 62mV,超标

问题很明显了——纹波是在 PCB 走线上“长”出来的。我用断开负载法,把 FPGA 置于复位状态(几乎不耗电),纹波降到 30mV。再用 FFT 一看,超标成分是 533 MHz——正好是 FPGA 内部 DDR 接口的工作频率。

最终定位:FPGA 的 DDR 接口在读写时,瞬态电流高达 8A,在 PCB 走线寄生电感上产生了压降。解决方案不是改电源,而是在 FPGA 旁边加了两颗 100nF 的 0402 电容,纹波直接降到 28mV。

经验总结: 纹波超标,不一定是电源的锅。很多时候,问题出在 PCB 布局、去耦电容位置、或者负载的瞬态特性上。系统级排查的意义,就是让你不盲目动手,而是先搞清楚“病根”在哪。