第2章 硬件选型与设计:低功耗MCU选型、电源管理芯片选择、外围器件低功耗选型原则
做低功耗项目,硬件选型是地基。地基没打好,后面软件再怎么优化也是白搭。我见过不少团队,芯片选了个低功耗的,结果外围器件漏电比MCU还大,整机功耗根本压不下去。这一章,咱们就聊聊怎么把这地基夯实。
2.1 低功耗MCU选型:不止看数据手册
选MCU,大家第一反应肯定是看数据手册上的功耗数值。但说实话,那都是理想值。真正决定项目成败的,是实际工况下的表现。
2.1.1 核心指标怎么看?
我个人习惯,先看三个关键点:
- 静态功耗(Stop模式电流):这是系统休眠时的底线。STM32L4系列能做到几十nA级别,但要注意,这个值通常是在室温、无外部时钟、所有外设关闭的条件下测的。实际项目中,你只要开一个RTC,电流就会往上跳一个数量级。
- 动态功耗(Run模式电流/MHz):这决定了你干活时的能耗。STM32L4大概在100µA/MHz左右。我建议你算一笔账:如果系统90%时间在休眠,10%时间在工作,那动态功耗的权重其实不高,别为了省那几µA/MHz去选一个性能太弱的芯片。
- 唤醒时间:这个容易被忽略。从Stop模式唤醒到能执行第一条指令,如果花了几百微秒,那你这段时间的电流是很大的。唤醒越慢,你为了完成同样任务需要保持活跃的时间就越长,总能耗反而可能更高。
选型黄金法则:不要只看一个数值,要算总能耗。总能耗 = 休眠电流 × 休眠时间 + 工作电流 × 工作时间 + 唤醒过程额外能耗。
2.1.2 STM32L4系列选型对比
STM32L4家族很大,从L431到L496,再到L4+系列,各有侧重。我整理了一个对比表,方便你快速定位:
| 型号 | Flash (KB) | SRAM (KB) | Stop模式电流 (典型) | 特点 |
|---|---|---|---|---|
| STM32L431 | 256 | 64 | ~30 nA | 性价比高,基础款 |
| STM32L476 | 1024 | 128 | ~30 nA | 大容量,带LCD驱动 |
| STM32L496 | 1024 | 320 | ~30 nA | 大RAM,带图形加速 |
| STM32L4R5 | 2048 | 640 | ~50 nA | L4+系列,性能更强 |
你看,Stop模式电流其实都差不多。真正拉开差距的是RAM大小和外设集成度。我的建议是:够用就好,别盲目追求大容量。多出来的Flash和RAM,在休眠时也是要耗电的(虽然很小,但蚊子腿也是肉)。
小技巧:选型时,可以关注一下芯片是否支持多级休眠模式。比如STM32L4的Stop0、Stop1、Stop2,它们的唤醒时间和功耗是逐级递减的。灵活切换,能进一步优化能耗。
2.2 电源管理芯片选择:效率是王道
电源管理芯片,说白了就是给系统提供稳定电压的。但低功耗项目里,它的效率直接决定了电池能用多久。
2.2.1 LDO vs. DCDC
这是个老生常谈的问题。我直接说结论:
- LDO(低压差线性稳压器):优点是纹波小、电路简单、成本低。缺点是效率低,尤其是压差大的时候。比如3.7V锂电池降到1.8V,效率只有1.8/3.7 ≈ 48.6%,一半的能量都变成热量浪费了。
- DCDC(开关电源):优点是效率高,通常能做到85%-95%。缺点是纹波大、电路复杂、成本高,而且轻载时效率会下降。
那怎么选?我个人的经验是:
- 如果系统大部分时间在休眠,休眠电流只有几µA,那LDO的静态功耗(自身消耗的电流)可能比DCDC还低。这时候LDO反而是更好的选择。
- 如果系统需要长时间工作,或者压差很大,那DCDC的效率优势就体现出来了。
避坑指南:我曾经在一个项目中,为了追求高效率,选了一颗DCDC。结果发现它在轻载(<1mA)时,效率掉到了50%以下,还不如LDO。后来我换了一颗带省电模式(PFM)的DCDC,问题才解决。所以,选DCDC一定要看它的效率曲线,特别是你系统实际工作电流对应的那个点。
2.2.2 电源管理芯片选型清单
这里列几个我常用的芯片,供你参考:
| 芯片型号 | 类型 | 输入电压 | 输出电压 | 静态电流 | 适用场景 |
|---|---|---|---|---|---|
| TPS7A02 | LDO | 1.5V - 5.5V | 0.8V - 5.0V | 25 nA | 超低功耗休眠场景 |
| XC6215 | LDO | 1.5V - 6.0V | 1.2V - 5.0V | 1 µA | 通用低功耗场景 |
| TPS62740 | DCDC | 2.2V - 5.5V | 1.2V - 3.3V | 360 nA | 电池供电,需要高效率 |
| LTC3388 | DCDC | 2.7V - 20V | 1.2V - 5.0V | 720 nA | 宽输入电压,高电压电池 |
你看,TPS7A02的静态电流只有25nA,比很多MCU的休眠电流还低。如果你系统休眠电流要求极低,这种LDO就是首选。
2.3 外围器件低功耗选型原则
MCU和电源选好了,外围器件也不能掉链子。很多项目翻车,就翻在外围器件上。
2.3.1 电阻分压:能省则省
电阻分压网络,比如电池电压检测,是功耗大户。一个10kΩ的电阻,在3.3V电压下,就会产生330µA的电流。这比MCU休眠时的电流大了好几个数量级。
我的做法是:
- 用大电阻:比如1MΩ,电流就降到3.3µA了。
- 加MOS管开关:只在需要测量时才给分压网络供电。平时关断,零功耗。
原则一:任何持续导通的通路,都要审视它的电流是否必要。
2.3.2 传感器:选带使能引脚的
很多传感器都有休眠模式,但有些传感器的休眠电流还是很大。我建议优先选那些带使能引脚(EN pin)的传感器。这样,MCU可以通过一个GPIO直接切断传感器的电源,实现真正的零功耗。
举个例子,温湿度传感器SHT30,它的休眠电流只有0.2µA,但如果你用带EN引脚的SHT31,直接断电,电流就是0。
2.3.3 电平转换:注意上拉电阻
不同电压域之间通信,经常需要电平转换。很多人习惯用电阻分压或者上拉电阻来实现。但你要注意,上拉电阻在电平为低时,会持续消耗电流。
我建议:
- 使用专用的电平转换芯片,比如TXS0102,它的静态电流极低。
- 或者用MOS管搭建双向电平转换电路,功耗也很低。
避坑指南:我曾经在一个I2C总线上,用了两个4.7kΩ的上拉电阻。结果发现,在总线空闲时(SCL和SDA都为高),这两个电阻上几乎没有电流。但当总线被拉低时,每个电阻上都有3.3V/4.7kΩ ≈ 700µA的电流。两个就是1.4mA!这在低功耗系统里是致命的。后来我换成了100kΩ的上拉电阻,电流降到了33µA,问题解决。
2.4 知识结构图:硬件选型核心逻辑
下面这张图,总结了硬件选型的核心逻辑。你可以把它当作一个检查清单:
2.5 本章小结
硬件选型,说白了就是一场平衡游戏。你要在性能、功耗、成本、体积之间找到那个最适合你项目的点。没有最好的芯片,只有最合适的方案。
记住几个关键点:
- MCU选型,算总能耗,别只看一个数。
- 电源管理,LDO和DCDC各有优劣,看工况选。
- 外围器件,任何持续导通的通路都要审视,能关断就关断。