4. 电源系统设计

嵌入式Linux载板通常需要从单一输入电源(如12V适配器或5V USB-C)派生出十余路不同电压:SoC核心0.8~1.1V大电流、DDR 1.1V/1.8V、IO 3.3V、外设5V、模拟1.8V/3.3V等。电源系统设计的目标不是"把电压变出来",而是在效率、纹波、时序、成本、面积五个维度上取得平衡。本章围绕DC-DC与LDO选型、上下电时序、电源树规划以及纹波与效率优化展开。

一、DC-DC与LDO的核心差异与选型逻辑

DC-DC(Buck/Boost)通过电感储能与开关斩波实现高效变换,效率通常85%~95%,但开关噪声大、外围元件多、纹波在mV~数十mV量级。LDO通过调整管线性稳压,输出纹波可低至几十μV、无开关噪声、外围仅需输入输出电容,但效率近似等于Vout/Vin,压差大时发热严重。

选型的第一原则是先看压差与电流:当输入输出压差小(<0.5V)或负载电流小(<300mA)时优先LDO;当压差大、电流大(>1A)时必须用DC-DC,否则LDO功耗P=(Vin−Vout)×Iout会迅速超过封装热阻允许值。第二原则是看噪声敏感度:PLL、ADC基准、射频、音频Codec等模拟/时钟域优先LDO或DC-DC后级LDO。第三原则是看动态响应:SoC核心电流跳变可达数A/μs,需关注DC-DC的环路带宽与输出电容ESR配置。

选型速判:压差×电流 = LDO功耗;若该功耗使结温超过Tj_max(一般125℃),必须改用DC-DC。噪声敏感负载则采用"DC-DC预降压 + LDO后稳压"的两级方案。

二、电源树规划:从输入到负载的层级分配

电源树是电源系统的骨架,它决定了电压层级、上电顺序、电流路径与故障传播关系。规划时先列出所有负载的电压/电流/纹波/时序需求,再按"高压大电流在前、低压小电流在后、噪声敏感单独分支"的原则分层。典型三层结构:第一层12V→5V/3.3V主Buck;第二层5V→1.8V/1.1V/0.9V多路Buck;第三层LDO为模拟域、PLL、RTC提供干净电源。

电源树还需标注使能信号(EN)来源与Power Good(PG)反馈,这两者是实现上下电时序的硬件基础。下图给出一个典型嵌入式Linux载板的电源树与上下电时序关系示意。

嵌入式Linux载板电源树与上下电时序 DC 12V 输入 适配器 / PoE Buck1 12V→5V 3A, η≈92% Buck2 12V→3.3V 2A, η≈90% Buck3 5V→1.8V DDR IO / 外设 Buck4 5V→1.1V DDR VDD Buck5 5V→0.9V SoC 核心大电流 LDO 1.8V→1.8V PLL / ADC 模拟 LDO 3.3V→3.3V 音频 / 传感器 LDO 5V→3.3V RTC / 待机域 上电时序(Power-Up Sequence) t0 t1 t2 t3 t4 t5 12V→5V/3.3V 1.8V / 1.1V SoC 0.9V 核心 PLL / 模拟 LDO RESET 释放 启动 下电时序(Power-Down Sequence) t0 t1 t2 t3 t4 t5 RESET 拉低 模拟 LDO 关断 SoC 核心关断 1.8V / 1.1V 关断 5V / 3.3V 关断 12V 断开

三、上下电时序:为什么顺序错了会烧芯片

SoC与DDR、外设之间存在体二极管、ESD二极管、IO钳位等寄生通路。若3.3V IO先于1.8V DDR上电,电流会经IO钳位二极管倒灌进1.8V域,轻则漏电、重则闩锁。因此必须遵循"先核心后IO、先数字后模拟、先低压后高压"的通用原则,具体顺序以SoC数据手册的Power Sequencing章节为准。

实现方式有三种:一是利用DC-DC的PG引脚级联EN,形成菊花链;二是用专用时序控制器(如TPS650系列)配置延时;三是用CPLD/GPIO在Bootloader前控制。下电顺序通常与上电相反,且要求RESET先拉低,避免IO悬空。

常见误区:只按"电压从低到高"上电,忽略DDR VDDQ与VDD的相对关系。部分DDR要求VDD先于VDDQ,或两者同时,需查JEDEC与SoC手册。时序错误往往在量产批次才暴露,务必在样机阶段用示波器四通道同时抓取各路电压与RESET。

四、纹波与效率优化方法

纹波优化从三个层面入手:器件层——选择低ESR陶瓷电容、合适电感(饱和电流≥1.3×Iout、DCR小)、低ESR输出电容并联;布局层——输入电容紧贴芯片VIN与GND、SW节点铜箔面积最小化、反馈走线远离SW与电感、模拟地单点连接;参数层——提高开关频率可减小纹波但降低效率,增大输出电容可减小纹波但影响环路相位裕度。

效率优化则关注:降低开关损耗(选低Qg MOSFET)、降低导通损耗(低Rds(on)或低DCR电感)、减少死区时间、在轻载时切换至PFM/Burst模式。下表给出典型选型与优化对照。

负载域 推荐方案 关键参数 纹波目标 效率目标
SoC 核心 0.9V/5A 多相Buck或大电流单相Buck Fsw 500kHz~1MHz,低DCR电感 <20mV >88%
DDR 1.1V/2A 同步Buck 低ESR陶瓷输出电容 <15mV >90%
3.3V IO/1A Buck PFM轻载模式 <30mV >85%
PLL/ADC 1.8V/200mA LDO(前级Buck预降) PSRR>60dB@1MHz <100μV —
RTC/待机 3.3V/10mA 低静态电流LDO Iq<10μA <1mV —

五、案例与复盘:一次DDR初始化失败

某载板使用SoC + LPDDR4,样机启动偶发失败,串口打印DDR训练错误。排查发现:1.1V DDR电源与1.8V IO电源由同一颗Buck的PG级联,但1.8V Buck的软启动时间比1.1V长,导致1.1V先建立、1.8V后建立,违反DDR上电顺序。将1.8V的EN改为由12V直接使能、1.1V由1.8V的PG使能后,问题消失。

复盘要点:时序设计不能只看原理图,必须实测。建议在PCB上为每路电源预留测试点,用四通道示波器抓取上电波形,并记录软启动时间、PG释放阈值、RESET释放时刻。对于多路电源,可编写脚本自动比对时序窗口。

# 示例:用示波器抓取四路电源上电时序(伪代码)
scope.ch1 = "5V_MAIN"
scope.ch2 = "1.8V_DDR_IO"
scope.ch3 = "1.1V_DDR_VDD"
scope.ch4 = "SOC_RESET"
scope.trigger(ch1, rising, 4.5V)
scope.capture()
assert ch2.rise_time < ch3.rise_time   # 1.8V 应先于 1.1V
assert ch4.rise_time > ch3.rise_time   # RESET 最后释放
电源系统设计检查清单:①每路负载的电压/电流/纹波/时序是否明确;②LDO功耗是否在结温允许内;③电源树是否标注EN与PG;④上电顺序是否符合SoC手册;⑤下电顺序是否与上电相反;⑥关键测试点是否预留;⑦轻载效率与待机功耗是否达标;⑧纹波是否在示波器20MHz带宽限制下实测。

电源系统是载板可靠性的地基。选型决定效率与噪声上限,电源树决定架构清晰度,时序决定芯片能否安全启动,而纹波与效率优化则贯穿布局、器件与参数三个层面。只有把这几件事在原理图阶段就规划清楚,后续调试才不会陷入"改一路、动全身"的被动局面。