2、电源系统故障:核心电压异常、DDR供电异常、PMIC配置错误、上电时序异常

电源系统,说白了就是芯片的「心脏」和「血管」。我在瑞芯微平台上调了这么多年,至少有一半的硬件故障,追根溯源都出在电源上。你想想看,CPU要1.0V,GPU要0.9V,DDR要1.2V,哪个电压偏了0.05V,系统就可能直接罢工。

这一章,我重点聊聊最常见的四类电源故障:核心电压异常、DDR供电异常、PMIC配置错误、上电时序异常。每一个我都踩过坑,咱们一个一个说。

2.1 核心电压(VDD_CPU / VDD_GPU / VDD_LOG)异常

核心电压,就是给芯片内部逻辑供电的。RK3588这类芯片,VDD_CPU、VDD_GPU、VDD_LOG是分开的。为什么?因为功耗大,分开供电更灵活。但这也意味着,任何一个出问题,系统都跑不起来。

2.1.1 常见现象

  • VDD_CPU偏低:系统启动到一半就死机,或者跑大负载时自动重启。
  • VDD_GPU偏低:GPU渲染花屏,或者跑AI模型时直接报错。
  • VDD_LOG异常:这个最隐蔽,逻辑域电压不稳,会导致系统随机死机,毫无规律。

核心排查思路:

先测静态电压,再抓动态波形。静态电压用万用表打,动态波形用示波器抓。我个人习惯,上电瞬间的波形一定要抓,很多问题就出在那一瞬间。

2.1.2 排查步骤

  1. 测静态电压:在PMIC输出端和芯片端分别测量。芯片端的电压往往比PMIC输出端低,因为有PCB走线压降。我记得有一次,VDD_CPU在PMIC端测是1.0V,到了芯片端只剩0.92V,结果系统就是起不来。后来发现是走线太细,换了粗线就好了。
  2. 抓动态波形:用示波器看电压纹波。核心电压的纹波一般要求小于50mV。如果纹波过大,先检查输出电容,再检查负载瞬态响应。
  3. 检查负载瞬态:跑一个CPU满负载的测试,看电压跌落多少。如果跌落超过10%,说明PMIC的驱动能力不够,或者输出电容太小。

我的小技巧:

抓动态波形时,探头一定要用短地线,最好用弹簧地线。否则你看到的纹波,可能只是探头自己耦合进来的噪声。

2.2 DDR供电异常

DDR供电,是另一个重灾区。DDR的电压要求非常严格,VDD_DDR(1.2V左右)和VDD_DDR_PLL(1.8V左右)都不能偏。而且DDR对时序要求极高,电压不稳,直接导致数据出错。

2.2.1 典型故障

  • VDD_DDR电压偏低:系统启动时DDR初始化失败,或者运行中随机出现内存错误。
  • VDD_DDR纹波过大:DDR读写不稳定,表现为系统卡顿、死机。
  • VDD_DDR_PLL异常:这个电压是给DDR的PLL供电的,一旦不稳,DDR频率直接跑偏,系统根本起不来。

注意:

DDR供电的纹波要求比核心电压更严格,一般要求小于30mV。我曾经遇到一个项目,DDR纹波只有40mV,但就是偶尔死机。后来把纹波压到20mV以下,问题彻底解决。

2.2.2 排查方法

  1. 测量DDR供电电压:在DDR颗粒的电源引脚处测量,而不是在PMIC输出端。因为PCB走线压降,DDR颗粒端的电压可能更低。
  2. 检查DDR参考电压(VREF):DDR的VREF一般是VDD_DDR的一半。如果VREF不准,DDR读写会出错。我建议用高精度电阻分压,不要用PMIC直接输出。
  3. 抓DDR读写时的电压波形:跑一个DDR压力测试,比如memtester,同时用示波器抓VDD_DDR的波形。如果电压跌落明显,说明供电不足。

避坑指南:

我曾经在DDR供电上踩过一个坑:用了便宜的钽电容,结果ESR太大,纹波压不下去。后来换成MLCC,问题立刻解决。所以,DDR供电的电容,千万别省。

2.3 PMIC(RK806/809)配置错误

PMIC配置错误,是新手最容易犯的错。RK806和RK809是瑞芯微常用的PMIC,配置方式不同,但原理类似。说白了,就是通过I2C或者寄存器,告诉PMIC输出多少电压、多大电流。

2.3.1 常见配置错误

  • 输出电压设置错误:比如VDD_CPU应该设1.0V,结果设成了0.9V。系统能启动,但跑大负载就死机。
  • 输出电流限制设置太小:PMIC有电流限制,如果设得太小,负载一高,电压就掉。
  • 上电时序配置错误:这个我后面会细说,PMIC的时序配置错了,芯片根本起不来。

2.3.2 排查步骤

  1. 读PMIC寄存器:通过I2C读取PMIC的配置寄存器,确认输出电压和电流限制是否正确。我习惯在系统启动后,先读一遍所有PMIC的寄存器,保存下来作为基线。
  2. 检查PMIC的反馈电阻:有些PMIC通过外部电阻分压来设定输出电压。如果电阻焊错了,电压肯定不对。
  3. 验证PMIC的负载能力:用电子负载拉一下PMIC的输出,看实际电压是否稳定。如果电压跌落,说明PMIC的驱动能力不够,或者散热不好。

我的经验:

RK809的配置比RK806复杂一些,因为它集成了音频和充电功能。我建议先看数据手册的「Power-Up Sequence」章节,把时序图看懂,再动手配置。

2.4 上电时序异常

上电时序,是电源系统里最容易被忽视的问题。瑞芯微的芯片,对各个电源的上电顺序有严格要求。比如VDD_LOG必须先于VDD_CPU上电,VDD_DDR必须先于VDD_GPU上电。顺序错了,芯片内部逻辑可能锁死,甚至烧坏。

2.4.1 典型时序要求

电源域 上电顺序 典型延迟时间
VDD_LOG 第1位 0ms(基准)
VDD_DDR 第2位 ≥1ms
VDD_CPU 第3位 ≥2ms
VDD_GPU 第4位 ≥3ms

2.4.2 排查方法

  1. 用示波器抓上电波形:同时抓多个电源的波形,看它们的上升沿是否满足时序要求。我建议用4通道示波器,一次抓4个电源。
  2. 检查PMIC的时序配置:如果PMIC支持可编程时序,检查寄存器配置是否正确。如果不支持,检查外部延时电路(比如RC延时)是否正常。
  3. 验证复位信号:芯片的复位信号(比如POR)必须在所有电源稳定之后才释放。如果复位信号提前释放,芯片可能进入未知状态。

注意:

上电时序异常,有时候不是PMIC的问题,而是PCB走线导致的。比如VDD_LOG的走线太长,电容太大,导致它上电比VDD_CPU还慢。所以,抓波形的时候,一定要在芯片端测量,而不是在PMIC端。

2.5 实战总结

电源系统故障,排查起来其实有套路。我总结了一个「三步法」:

  1. 先看静态电压:用万用表测所有电源的电压,确认是否在规格范围内。
  2. 再看动态波形:用示波器抓上电波形和负载瞬态波形,确认纹波和跌落是否合格。
  3. 最后查配置:读PMIC寄存器,确认配置是否正确。

嗯,这套方法我用了好多年,基本没失手过。你想想看,电源问题说白了就是电压、电流、时序这三件事。只要这三件事都对了,系统大概率能跑起来。

最后说一句:

电源系统是硬件设计的基础,也是故障排查的起点。如果你在瑞芯微平台上遇到奇怪的问题,先别急着怀疑芯片,先查电源。我敢说,至少一半的问题,查完电源就解决了。