3. 电源管理基础:LDO与DC-DC选型、电源树设计、上电时序控制
电源管理,说白了就是给系统里的每个芯片喂对电、喂好电。我见过太多项目,功能逻辑调得妥妥的,一上电就死机,最后查出来是电源纹波太大,或者某个芯片上电顺序反了。嗯,这章咱们就把这些坑一个个填上。
3.1 LDO vs DC-DC:你该怎么选?
很多新手问我:「LDO和DC-DC到底用哪个?」我的回答是:看场景。没有绝对的好坏,只有合不合适。
3.1.1 LDO(低压差线性稳压器)
LDO的工作原理很简单——把多余的电压以热量形式消耗掉。所以它效率低,但输出干净。
- 优点:输出纹波极小(μV级),电路简单,外围只需两个电容
- 缺点:效率 = Vout/Vin,压差越大效率越低,发热严重
- 适用场景:模拟电路供电(ADC、运放、传感器)、噪声敏感电路
关键参数:
- Dropout电压:LDO能正常工作的最小输入输出压差。我习惯选< 200mV的型号
- 静态电流(Iq):电池供电设备要选Iq < 1μA的LDO
- PSRR(电源抑制比):越高越好,至少60dB@1kHz
我的经验:给ADC供电时,我从来不用DC-DC直接供电。哪怕DC-DC后面加LC滤波,也不如一个LDO来得干净。有一次项目里ADC采样值总跳,查了两天,最后把DC-DC换成LDO,问题立刻消失。
3.1.2 DC-DC(开关稳压器)
DC-DC通过电感储能和开关切换来转换电压。效率高,但噪声大。
- 优点:效率可达90%以上,可升压可降压,发热小
- 缺点:输出纹波大(mV级),外围元件多(电感、电容、反馈电阻),PCB布局要求高
- 适用场景:数字电路供电(MCU、FPGA、DDR)、电池供电设备的主电源
注意:DC-DC的开关频率选择很关键。频率高,电感电容可以小,但开关损耗大;频率低,效率高,但外围元件大。我一般选1-2MHz,平衡体积和效率。
3.2 电源树设计:从电池到每个芯片
电源树,就是一张从输入电源到每个负载的供电拓扑图。我习惯先画出来,再动手。
3.2.1 设计步骤
- 列出所有电压需求:3.3V(MCU)、1.8V(DDR)、1.2V(FPGA内核)、3.0V(模拟)
- 估算电流:每个负载的最大电流、平均电流、瞬态电流
- 选择拓扑:先DC-DC降压到中间电压,再用LDO给噪声敏感电路供电
- 计算功耗:每级转换效率相乘,确保总功耗在电池容量范围内
一个典型的电源树示例:
电池(3.7V Li-ion)
│
├── DC-DC (3.3V) ──→ MCU、数字传感器
│ │
│ └── LDO (3.0V) ──→ ADC、运放
│
└── DC-DC (1.8V) ──→ DDR、Flash
│
└── LDO (1.2V) ──→ FPGA内核
避坑指南:我曾经在一个项目里把LDO放在DC-DC前面,结果LDO压差大、发热严重,电池续航直接砍半。正确的做法是:DC-DC先降压,LDO再稳压。这样LDO压差小,效率高。
3.2.2 电源树分析工具
我常用Excel或者LTspice做电源树仿真。Excel算功耗和效率,LTspice看纹波和瞬态响应。你想想看,如果不在仿真阶段发现问题,等板子打回来再改,那成本可就高了。
3.3 上电时序控制:为什么重要?
很多芯片对上电顺序有严格要求。比如FPGA,内核电压(Vcore)必须先于IO电压(Vccio)上电,否则IO引脚可能处于未知状态,导致芯片锁死甚至烧毁。
3.3.1 常见上电时序要求
| 芯片类型 | 上电顺序 | 典型延迟时间 |
|---|---|---|
| FPGA(Xilinx/Altera) | Vcore → Vccaux → Vccio | 1-10ms |
| DDR3/DDR4 | VDD → VTT → VREF | 200μs-5ms |
| MCU(STM32等) | VDDA → VDD(或同时) | 100μs以内 |
| ADC(高精度) | 模拟电源 → 数字电源 | 1ms以上 |
3.3.2 实现方法
实现上电时序控制,有几种常见方案:
- RC延迟:最简单,用电阻电容产生延迟。但精度差,温度漂移大。我一般只在低要求场合用。
- 电源监控芯片:如TPS3808、MAX16025。可以设定阈值和延迟时间,精度高。
- FPGA/CPLD控制:用可编程逻辑控制使能引脚。灵活,但需要先有电才能工作——有点鸡生蛋蛋生鸡的问题。
- PMIC(电源管理芯片):集成多路电源和时序控制。比如TI的TPS65218,一颗搞定所有。
我曾经踩过的坑:用RC延迟控制FPGA上电时序,结果温度从25℃升到85℃时,延迟时间变了3倍,FPGA直接启动失败。后来换成电源监控芯片,再也没出过问题。所以,别在时序上省钱。
3.4 低功耗设计中的电源管理技巧
对于分析仪器这种电池供电设备,电源管理直接决定了续航时间。我分享几个实战技巧:
3.4.1 动态电压调节(DVS)
MCU或FPGA在低负载时降低供电电压,可以大幅降低功耗。比如STM32L4系列,在1.8V下运行比3.3V下省电40%。我习惯在代码里根据任务负载动态切换电压。
3.4.2 电源域划分
把系统分成多个电源域,不用的模块直接断电。比如:
- Always-on域:RTC、唤醒逻辑(用超低功耗LDO供电)
- Sleep域:MCU内核、RAM(可关断)
- Peripheral域:传感器、通信模块(按需供电)
我的习惯:每个电源域用独立的LDO或负载开关控制。这样在休眠时,可以彻底切断外围电路的电源,漏电流降到nA级。
3.4.3 选择合适的电源管理IC
对于分析仪器,我推荐集成多路输出的PMIC。比如:
- TI TPS65218:5路DC-DC + 4路LDO,带时序控制
- ADI ADP5350:升压+降压+LDO+电池充电,一颗搞定
- Maxim MAX77650:超小封装,静态电流仅0.3μA
3.5 总结
电源管理不是简单的「找个芯片接上就行」。LDO和DC-DC各有千秋,电源树要画清楚,上电时序不能马虎。我做了十几年硬件,最深的体会是:电源设计花的时间越多,后面调试的时间就越少。
下一章咱们聊聊低功耗MCU选型和时钟管理,到时候我会分享一些让电池续航翻倍的小技巧。