4、电源管理单元(PMU)设计:DC-DC与LDO的选型与对比、电源轨设计原则、动态电压调节(DVS)技术、电源序列设计
电源管理单元,说白了就是给整个系统「喂饭」的。饭喂得不好,芯片要么饿死(掉电),要么撑死(过压),要么闹肚子(纹波太大)。我在医疗设备这行干了十几年,见过太多因为电源设计翻车的案例。今天咱们就把PMU设计这摊事掰开揉碎了讲清楚。
4.1 DC-DC与LDO:选型与对比
先问个问题:你手头有个传感器,需要3.3V供电,电池是4.2V的锂电。你会用DC-DC还是LDO?
很多人想都不想就说「DC-DC效率高」。嗯,这话没错,但得看场景。我个人习惯是这么判断的:
- 压差大、电流大 → DC-DC。比如从12V降到3.3V,电流500mA以上,用LDO的话,功耗全烧在管子上了,发热量能煎鸡蛋。
- 压差小、电流小 → LDO。比如3.6V降到3.3V,电流50mA,LDO效率也能到90%以上,而且噪声低、成本低、外围简单。
- 噪声敏感电路 → LDO。医疗设备里的模拟前端、心电采集、血氧探头,这些地方对电源纹波极其敏感。DC-DC的开关噪声会直接耦合到信号里,造成基线漂移。我遇到过一台监护仪,心电波形上总有50mV的毛刺,查了两天,最后发现是DC-DC的开关频率刚好落在信号带宽内。
来看个对比表,一目了然:
| 参数 | DC-DC(降压型) | LDO |
|---|---|---|
| 效率 | 85%~95%(重载) | 取决于压差,压差大时效率低 |
| 输出纹波 | 10~50mV(需加滤波) | <1mV(典型值) |
| 静态电流 | 几十μA~几mA | 几μA(超低功耗LDO) |
| 外围器件 | 电感、电容、反馈电阻 | 输入/输出电容(2个) |
| 成本 | 较高 | 较低 |
| 适用场景 | 主电源、大电流、电池供电 | 模拟电路、低噪声、小电流 |
4.2 电源轨设计原则
电源轨设计,说白了就是给板上每个芯片分配「专属电源通道」。你想想看,一个MCU、一个蓝牙模块、一个运放,它们对电源的要求能一样吗?
我总结了几条原则,记好了:
- 分区供电:数字电路和模拟电路必须分开供电。数字电路的地弹噪声会通过电源轨串扰到模拟电路。我曾经在一个血氧仪项目里,把MCU和运放共用一个3.3V,结果运放输出端全是数字噪声,波形跟锯齿似的。
- 星型拓扑:电源走线尽量采用星型结构,从电源源头分别拉到各个负载,避免「串联供电」。串联供电会导致后级负载的电流波动影响前级。
- 去耦电容就近放置:每个芯片的电源引脚旁边,必须放一个0.1μF的陶瓷电容,距离不超过2mm。这是铁律。我见过有人把电容放在板子另一面,过孔绕了半圈,那效果基本等于没放。
- 电源轨宽度:根据电流计算走线宽度。1A电流至少需要40mil(1mm)宽度的铜箔,还要考虑温升。医疗设备通常要求温升不超过10°C。
4.3 动态电压调节(DVS)技术
DVS,听起来高大上,其实原理很简单:根据芯片的工作负载,动态调整供电电压。负载重时给高点,负载轻时给低点。目的是省电。
举个例子:MCU在运行算法时,需要80MHz主频,供电1.8V;在待机时,只需要32kHz时钟,供电1.2V就够了。如果一直用1.8V,待机功耗会多出30%~50%。
实现DVS通常有两种方式:
- 通过PMIC的I2C接口调节:很多电源管理芯片(如TI的TPS62840)支持I2C动态调压。MCU在进入低功耗模式前,通过I2C发个命令,把输出电压从1.8V降到1.2V。
- 通过反馈电阻切换:用MOSFET切换反馈电阻的分压比,改变输出电压。这种方式响应快,但需要额外引脚控制。
代码示例(I2C调压,伪代码):
// 进入低功耗模式前,降低电压
void enter_low_power_mode(void) {
// 设置PMIC输出电压为1.2V
pmic_i2c_write(0x01, 0x2A); // 寄存器地址0x01,值0x2A对应1.2V
delay_ms(1); // 等待电压稳定
// 降低MCU主频
set_cpu_freq(32000); // 32kHz
// 进入睡眠
__WFI();
}
// 唤醒后,恢复电压
void wake_up_from_low_power(void) {
// 恢复主频
set_cpu_freq(80000000); // 80MHz
// 恢复电压到1.8V
pmic_i2c_write(0x01, 0x3F); // 1.8V
delay_ms(1);
}
4.4 电源序列设计
很多医疗设备里有多个电源域:比如MCU需要1.8V和3.3V,射频模块需要1.2V和2.8V,模拟前端需要±5V。这些电源的上电和下电顺序,是有严格要求的。
为什么要有顺序?因为芯片内部有ESD保护二极管、寄生PN结。如果某个电源先上电,而另一个电源还没上电,电流会通过保护二极管倒灌,轻则芯片工作异常,重则烧毁。
我见过最惨的一次:一个超声设备,FPGA的1.0V内核电压先上电,1.8V I/O电压后上电,结果FPGA内部的I/O buffer全部烧毁,整块板子报废。从那以后,我对电源序列就特别较真。
设计电源序列的要点:
- 先上内核,后上I/O:对于MCU/FPGA,通常要求内核电压先稳定,I/O电压后上电。反过来,下电时先断I/O,后断内核。
- 模拟电路先上电:模拟电路(运放、ADC)通常需要先建立稳定的参考电压,数字电路再开始工作。否则数字信号进来时,模拟电路还没准备好,会输出错误数据。
- 使用电源监控芯片:比如TI的TPS3808,可以监控电压是否达到阈值,输出一个「Power Good」信号给下一级电源的使能引脚。这样就能自动实现顺序上电。
一个典型的电源序列时序图(文字描述):
时间轴 →
1. 电池接入(4.2V)
2. 100μs后,DC-DC输出3.6V(主电源)
3. 200μs后,LDO_1输出3.3V(MCU I/O、传感器)
4. 300μs后,LDO_2输出1.8V(MCU内核)
5. 400μs后,LDO_3输出1.2V(射频模块)
6. 500μs后,所有Power Good信号都拉高,MCU复位释放,开始运行
嗯,电源管理这部分内容确实不少,但它是医疗设备低功耗设计的基石。你想想看,一个24小时连续监测的心电贴,如果电源效率低10%,电池续航可能就少了两三个小时。这可不是小事。
下一章咱们聊聊「低功耗MCU选型与配置」,到时候我会分享一些实际项目中用过的低功耗MCU型号和它们的坑。敬请期待。