4. 电源管理:电源域划分、电压调节技术、电源开关与隔离
电源管理,说白了就是管好每一毫安电流的去向。很多工程师觉得低功耗就是选个低功耗MCU完事,结果一测电流,几十微安下不去。问题出在哪?出在电源架构上没下功夫。
我做过一个表计项目,硬件改了三版才把休眠电流从12µA压到1.5µA。回头一看,核心就三件事:该关的域要关死、该降的电压要降到位、该隔离的信号不能漏电。这一章咱们就把这三件事掰开揉碎讲清楚。
4.1 电源域划分——把电路切成几块
电源域划分,就是把芯片上的不同功能模块,接到不同的电源网络上。每个域可以独立开关或调压。你想想看,如果整个芯片只有一个电源,休眠时RAM还得供电,那漏电就省不下来。
我习惯把电源域分成三类:
| 域类型 | 典型模块 | 供电策略 | 休眠电流贡献 |
|---|---|---|---|
| 常开域 | RTC、唤醒逻辑、备份寄存器 | 始终供电,电压可降至最低保持值 | 几十 nA ~ 几百 nA |
| 可控域 | CPU Core、SRAM、主要外设 | 工作时正常供电,休眠时关断或保持 | 关断时 0,保持时 µA 级 |
| 开关域 | RF PA、传感器、大功率外设 | 按需开启,用外部负载开关控制 | 关断时完全隔离 |
4.2 电压调节技术——给每个域最合适的电压
电压调节不只是把3.3V转成1.8V那么简单。不同负载、不同场景,调节方式的选择直接影响功耗。
4.2.1 LDO vs DCDC
LDO简单、纹波小,但效率低。DCDC效率高,但有开关噪声。怎么选?看场景。
| 参数 | LDO | DCDC (Buck) |
|---|---|---|
| 效率 | Vout/Vin(压差大时极低) | 80%~95% |
| 静态电流 | 可低至几百 nA | 几 µA ~ 几十 µA |
| 输出纹波 | < 50µV | 10~50mV(需后级滤波) |
| 适用场景 | 休眠保持、模拟电路供电 | 大电流负载、主核供电 |
我个人习惯:常开域用超低静态电流LDO(比如TPS7A02,Iq=25nA),主核用DCDC。如果DCDC的静态电流太大,休眠时可以把DCDC关掉,切到旁路LDO供电。
4.2.2 动态电压调节 (DVS)
DVS就是跑得快时给高电压,跑得慢时给低电压。CMOS功耗和电压的平方成正比,降0.3V可能省下30%的功耗。
// 伪代码:DVS控制逻辑
void set_voltage_for_freq(uint32_t freq_mhz) {
if (freq_mhz > 48) {
set_dcdc_voltage(1800); // 1.8V
} else if (freq_mhz > 16) {
set_dcdc_voltage(1500); // 1.5V
} else {
set_dcdc_voltage(1200); // 1.2V,最低保持电压
}
}
4.3 电源开关与隔离——把漏电路径彻底切断
电源域划分好了,电压调节选好了,但如果域之间的隔离没做好,电流会从缝隙里漏过去。嗯,这里要注意。
4.3.1 电源开关方案
关断一个电源域,最直接的办法就是串一个开关。常用方案有三种:
- PMOS 负载开关: 成本低,压降小,适合1A以下电流。我常用SiP32431,导通电阻30mΩ,关断时漏电只有1nA。
- 集成电源开关: 比如TPS22918,带软启动和输出放电,适合给传感器模块供电。
- eFuse: 带过流保护,适合大电流或安全关键场景。
4.3.2 信号隔离——漏电的隐形通道
电源域关了,但信号线还连着,电流会通过IO引脚的保护二极管倒灌进关断域。这是新手最容易踩的坑。
我曾经在一个产品中,把传感器域的电源用MOSFET关断了,但I2C的SCL和SDA还连着主控。结果传感器域虽然没供电,但I2C线上的高电平通过传感器芯片的IO保护二极管,给整个域灌了30µA的电流。折腾了两天才找到原因。
解决方案:
- 电平转换芯片: 比如TXS0102,带断电高阻特性,一侧断电时另一侧不受影响。
- IO隔离电阻: 串1kΩ~10kΩ电阻,限制倒灌电流。简单但有效。
- 三态门控制: 关断域前,先把所有连接的IO设为高阻输入。
4.4 实战:一个三域电源管理电路
下面是一个实际项目的电源架构,我把它简化后分享给你:
| 电源域 | 电压 | 供电方式 | 开关控制 | 隔离措施 |
|---|---|---|---|---|
| VDD_RTC | 1.8V | LDO (Iq=50nA) | 常开 | 无 |
| VDD_CORE | 1.2V~1.8V | DCDC + LDO 旁路 | PMOS 开关 | 电平转换至 VDD_IO |
| VDD_SENSOR | 3.3V | 负载开关 | GPIO 控制 | I2C 隔离芯片 |
这个架构的休眠电流实测:VDD_RTC 域 120nA,VDD_CORE 关断后 0A,VDD_SENSOR 关断后 0A。总休眠电流 120nA,用一颗 200mAh 的纽扣电池可以撑 190 年(理论值,实际还要考虑电池自放电)。
电源管理这块,说白了就是「分而治之」——把电路切成块,每块用最合适的方式供电,块与块之间做好隔离。做到这三点,你的低功耗设计就成功了一大半。