3. 电源系统调试:上电时序、电压纹波测量、电源芯片使能信号检查、负载响应测试

电源,说白了就是嵌入式系统的“心脏”。心脏跳得不好,整个系统就别想正常工作。我见过太多板子,功能逻辑明明没问题,就是电源上出了幺蛾子——要么上电顺序不对导致锁死,要么纹波太大把ADC精度吃掉,要么负载一拉就把电压拽塌了。

这一章,咱们就聊聊电源调试的几个硬功夫。你把这些练熟了,至少能解决现场一半的“死机”和“异常”问题。

3.1 上电时序:谁先谁后,差一点都不行

现在的SoC、FPGA、DSP,内部往往有好几个电源域。核心电压、IO电压、PLL电压、DDR电压……它们对供电顺序有严格的要求。为什么?因为如果IO先上电,核心还没起来,IO引脚的ESD结构可能会通过内部路径反向给核心供电,轻则锁死,重则烧芯片。

我遇到过最典型的一个案例:一块基于Zynq的板子,上电后偶尔能启动,偶尔卡死在初始化阶段。查了三天,最后发现是PS_PLL的1.8V比VCCINT的1.0V先到了。虽然只差了十几毫秒,但PLL的锁定状态就乱了。

3.1.1 上电时序的检查方法

别指望看数据手册就能搞定一切。你得用示波器实测。我个人习惯的做法是这样的:

  1. 选好探头:用10x衰减的被动探头,或者差分探头(如果测的是小电压差)。
  2. 设置触发:用最早上电的那一路作为触发源,通常是3.3V或5V输入。触发电平设在上升沿的50%处。
  3. 多通道同时抓:至少用4通道示波器,把核心电压、IO电压、DDR电压、PLL电压都接上。
  4. 看时序窗口:重点检查各路电压从10%上升到90%的时间差,是否满足芯片手册里的“最大延迟”和“最小延迟”。

关键指标:大多数现代SoC要求核心电压(Vcore)先于IO电压(Vccio)到达稳定值,时间差通常在0~100ms之间。有些芯片还要求Vcore和Vccio之间的上升斜率不能差太多。

3.1.2 时序不满足怎么办

如果实测发现时序不对,别急着改PCB。先看看电源芯片的使能引脚(EN)是怎么连接的。很多电源芯片都有EN引脚,你可以通过RC延迟、或者用另一路电源的PG(Power Good)信号来控制EN的上电顺序。

举个例子:

// 用TPS54620的PG信号控制下一级电源的EN
// 第一级:3.3V -> TPS54620输出1.0V (Vcore)
// 第二级:1.0V的PG信号 -> 上拉到3.3V,控制下一级TPS54620的EN
// 第三级:1.8V (Vccio) 在Vcore稳定后才开始上升

嗯,这里要注意:PG信号通常是开漏输出,必须外接上拉电阻。上拉电阻的阻值会影响PG信号的上升时间,别选太大,一般4.7kΩ~10kΩ就够。

小技巧:如果手头没有合适的电源芯片,也可以用电压监控器(如TPS3808)来产生延迟的使能信号。它的延迟时间可以通过外部电容精确设定,比RC延迟靠谱得多。

3.2 电压纹波测量:别被示波器骗了

纹波测量,看起来简单,其实坑特别多。你想想看,一个1.8V的电源,纹波要求是±30mV。如果你用示波器一测,发现纹波有100mV,那到底是电源真不行,还是你测错了?

我曾经就被骗过一次。当时测一块板子的3.3V纹波,示波器上显示有200mV的噪声。我差点就要换电源芯片了。后来老工程师过来看了一眼,说:“你把探头的地线夹子换成弹簧地线再试试。”结果一换,纹波直接降到30mV。原来那200mV是地环路耦合进来的噪声。

3.2.1 正确的纹波测量方法

  • 用弹簧地线:去掉探头那个长长的黑色地线夹子,换成探头自带的弹簧地线。这样能最大限度缩短地回路,减少高频噪声耦合。
  • 带宽限制:打开示波器的20MHz带宽限制。为什么?因为真正的电源纹波频率通常在几百kHz到几MHz之间,超过20MHz的基本都是辐射噪声,不是纹波。
  • AC耦合:用AC耦合模式,把直流分量滤掉,把示波器的垂直灵敏度调到10mV/div或更小,这样才能看清纹波的细节。
  • 测量位置:在负载端的去耦电容引脚上测,别在电源芯片的输出端测。负载端的纹波才是芯片真正吃到的电压质量。

注意:测量时探头和板子之间不要形成大的地环路。如果板子通过USB线连到电脑,电脑的开关电源可能会引入共模噪声。建议用电池供电的示波器,或者把板子和示波器都接到同一个电源插座上。

3.2.2 纹波超标怎么办

如果实测纹波超标,先别急着加电容。你得先搞清楚纹波的频率成分。用示波器的FFT功能看一下:

  • 如果是开关频率基波(比如500kHz),说明输出滤波电容的ESR太大,换低ESR的陶瓷电容。
  • 如果是开关频率的高次谐波(比如几MHz),说明PCB布局的寄生电感太大,需要优化电源回路。
  • 如果是100Hz/120Hz的工频纹波,说明前级AC-DC的滤波不够,需要加大输入侧的电解电容。
纹波频率 可能原因 解决方法
开关频率基波 输出电容ESR过高 换低ESR陶瓷电容,或并联多个电容
高次谐波 PCB布局寄生电感大 优化电源回路,减小环路面积
100Hz/120Hz 前级AC-DC滤波不足 加大输入电解电容,或加LC滤波器
高频尖峰噪声 开关管开关速度过快 在开关节点加RC snubber

3.3 电源芯片使能信号检查:EN引脚不是摆设

很多工程师调试时,只测电压输出,从来不测EN引脚。其实EN引脚的状态直接决定了电源芯片能不能正常工作。

我遇到过一块板子,电源芯片输出正常,但系统就是上电后不工作。查了半天,发现EN引脚电压只有1.2V。而芯片手册上写的是EN高电平阈值最低1.5V。也就是说,EN引脚一直处于“不确定”状态,芯片时好时坏。

3.3.1 EN信号的检查要点

  • 测电压:用万用表测EN引脚对地的直流电压,确认它高于芯片的EN高电平阈值(通常1.2V~1.8V)。
  • 测时序:用示波器看EN信号的上升沿,是否在输入电压稳定之后才拉高。有些芯片要求EN必须在输入电压达到一定值之后才能拉高。
  • 看波形质量:EN信号上有没有毛刺?如果EN线上有噪声,可能会导致芯片反复开关,输出不稳定。

经验之谈:如果EN引脚是通过电阻分压从输入电压取电的,一定要算好分压比。我曾经见过一个设计,分压电阻选得太大,导致EN引脚上的电压被芯片内部的漏电流拉低了,结果芯片死活不启动。

3.4 负载响应测试:看看电源的“腰力”怎么样

静态电压测出来没问题,不代表动态就扛得住。负载响应测试,说白了就是看电源在负载突然变化时,电压能不能稳住。

举个例子:一个MCU从休眠模式突然唤醒,电流从10mA跳到200mA。如果电源的负载响应不好,电压可能会掉下去几百毫伏,导致MCU复位。这种问题在静态测试时根本发现不了。

3.4.1 怎么测负载响应

你不需要买昂贵的电子负载。用一块开发板上的大功率MOSFET和一个小电阻,就能搭一个简易的负载跳变发生器:

// 简易负载跳变电路
// 用信号发生器输出方波,驱动MOSFET的栅极
// MOSFET的漏极接被测电源,源极通过一个功率电阻接地
// 方波频率:1kHz,占空比:50%,幅度:0~5V
// 这样电源就会在轻载和重载之间来回切换

然后用示波器看电源输出端的电压波形。重点关注:

  • 下冲幅度:负载突然加重时,电压跌了多少?
  • 上冲幅度:负载突然减轻时,电压冲了多少?
  • 恢复时间:电压从偏离到回到稳定值,花了多长时间?

3.4.2 负载响应不好的原因

  • 输出电容太小:电容是电源的“蓄水池”,电容小了,负载一拉,电压就掉。
  • 反馈环路带宽不够:电源芯片的反馈环路响应太慢,来不及调整占空比。
  • PCB走线电阻太大:从电源芯片到负载的走线太细太长,IR压降在动态时更明显。

一个实用的经验值:对于1MHz开关频率的DC-DC,负载响应恢复时间应该控制在50μs以内,下冲幅度不超过输出电压的5%。如果超过这个范围,就需要优化输出电容或反馈补偿网络。

3.5 本章知识体系

下面这张图,把电源系统调试的几个核心环节串起来了。你可以把它当作现场调试的检查清单:

电源系统调试知识体系 电源系统调试核心环节 电源系统调试 上电时序检查 电压纹波测量 使能信号检查 负载响应测试 多通道示波器 触发源选择 时序窗口分析 弹簧地线 20MHz带宽限制 AC耦合+FFT EN电压阈值 EN时序检查 毛刺/噪声排查 负载跳变发生器 下冲/上冲幅度 恢复时间评估 现场调试时,按“上电时序 → 纹波 → 使能 → 负载响应”的顺序排查 每个环节都过一遍,电源问题基本无所遁形

好了,电源系统调试就聊到这儿。这几个方法,你下次调试时挨个试一遍,很多“玄学”问题其实都能找到根因。记住,电源稳了,系统才能稳。