2. 硬件选型与功耗模型:核心器件选型、系统功耗模型与电池寿命估算
各位同学,咱们直接进入正题。做电池供电项目,最怕什么?怕选型拍脑袋,怕焊完板子才发现电流下不去。我见过太多团队,MCU 选了个大封装,DCDC 效率曲线没看,传感器待机电流是标称值的 10 倍……结果电池没撑过三个月。
这一章,我就把硬件选型的几个关键点掰开揉碎讲清楚。同时,咱们要建立一套系统功耗模型,学会估算电池寿命。说白了,就是让你在设计阶段就能算出“这块电池到底能用多久”。
2.1 核心器件选型:MCU、DCDC、LDO、传感器
选型不是看参数最大值,而是看工作区间。我习惯先列一个需求清单,再逐个器件去卡。
2.1.1 MCU 选型:STM32L4 系列怎么挑?
STM32L4 家族很庞大,从 L431 到 L496,Flash 从 256KB 到 1MB。我的建议是:
- 看功耗模式:L4 系列有 Stop 0/1/2、Standby、Shutdown 等模式。Stop 2 模式下典型电流 1.1 µA,还能保留 SRAM 和部分 GPIO。我做过一个水表项目,就是靠 Stop 2 模式把平均电流压到了 3 µA 以下。
- 看唤醒时间:从 Stop 2 唤醒到执行第一条指令,大约 5 µs。如果你的传感器需要频繁采样,这个时间很关键。
- 看外设集成:L4 系列自带 LPUART、LPTIM、LCD 驱动。能省掉外部芯片,就省掉。
核心原则:MCU 的静态功耗 + 动态功耗,必须小于系统总功耗预算的 30%。否则你后面怎么优化都救不回来。
2.1.2 DCDC 与 LDO:供电架构怎么选?
供电架构是功耗优化的第一道关卡。我见过有人直接用 LDO 从 3.7V 锂电降到 1.8V,效率只有 48%,一半的电都变成热量了。
| 对比项 | DCDC(降压型) | LDO |
|---|---|---|
| 效率(3.7V→1.8V) | 85%~95% | 48%~60% |
| 输出纹波 | 10~50 mVpp | < 1 mVpp |
| 静态电流 | 1~5 µA(轻载高效型) | 0.5~2 µA |
| 适用场景 | 主供电、大电流路径 | 模拟电路、射频、低噪声路径 |
我个人习惯的架构是:DCDC 做主降压 + LDO 做后级滤波。比如用 TPS62740(DCDC,静态电流 360 nA)把 3.7V 降到 2.1V,再用一个超低 dropout 的 LDO(如 TPS7A02,静态电流 25 nA)降到 1.8V 给 MCU 的模拟部分供电。这样既保证了效率,又控制了噪声。
避坑指南:我曾经在一个项目中直接用了 DCDC 给 ADC 供电,结果采样值跳得厉害。后来加了 LDO 做二级稳压,问题才解决。记住:数字电路吃效率,模拟电路吃干净。
2.1.3 传感器选型:待机电流是陷阱
很多传感器标称“待机电流 0.1 µA”,但那是理想状态。实际项目中,传感器上电瞬间的浪涌电流、I²C 总线漏电、上拉电阻的静态损耗,都会吃掉你的电池。
我总结了一个传感器选型三步法:
- 看待机电流:必须小于系统休眠电流的 20%。
- 看启动时间:从待机到数据就绪的时间,决定了你唤醒 MCU 的窗口。
- 看供电电压:尽量选 1.8V 供电的传感器,避免电平转换带来的额外功耗。
举个例子,BME280 温湿度传感器,待机电流 0.1 µA,测量时 1.8 µA,非常适合电池项目。而一些老款的温湿度传感器,待机就 10 µA,直接 pass。
2.2 建立系统功耗模型
功耗模型不是算总账,而是算“时间切片”。我把系统运行周期拆成几个阶段:
- 休眠阶段:MCU Stop 2 + 传感器断电 + DCDC 轻载
- 唤醒阶段:MCU 启动 + 传感器上电 + 时钟稳定
- 采样阶段:传感器测量 + MCU 读取数据
- 通信阶段:无线发送 / 数据存储
每个阶段的电流和时间相乘,再除以周期,就是平均电流。公式很简单:
I_avg = (I_sleep * T_sleep + I_wake * T_wake + I_sample * T_sample + I_tx * T_tx) / T_cycle
嗯,这里要注意:唤醒阶段的电流往往被忽略,但它的时间占比可能很小,电流却很大。比如一个 LoRa 模块发射时 120 mA,持续 100 ms,如果每小时发一次,平均电流只有 3.3 µA,但如果你每天发一次,平均电流就降到 0.14 µA。所以,通信频率直接决定了电池寿命。
实战案例:我做过一个环境监测节点,采样周期 10 分钟,LoRa 每 30 分钟发一次。算下来平均电流 12 µA,用 2000 mAh 的锂亚电池,理论寿命 19 年。但实际测试发现,电池自放电和 DCDC 轻载效率下降,实际寿命约 12 年。所以,理论值要打 0.6~0.7 折。
2.3 电池寿命估算方法
电池寿命估算,说白了就是“电池容量 ÷ 平均电流”,但有几个坑要避开。
2.3.1 电池容量不是标称值
电池容量受温度、放电倍率、老化影响很大。比如 CR2032 纽扣电池,标称 225 mAh,但在 0°C 时容量可能只有 150 mAh。我建议用 有效容量 来算:
C_eff = C_nom * K_temp * K_rate * K_age
其中:
- K_temp:温度系数,0°C 取 0.7,25°C 取 1.0
- K_rate:放电倍率系数,小电流放电取 0.9~1.0
- K_age:老化系数,第一年取 0.95,之后每年递减 2%
2.3.2 自放电不可忽略
锂亚电池自放电每年约 1%~2%,锂聚合物电池约 5%~10%。如果你的设备平均电流只有 5 µA,电池自放电可能占掉总消耗的 30% 以上。
重要提醒:不要用“电池容量 / 平均电流”直接算寿命。一定要把自放电、温度、老化都算进去。我见过一个团队算出来 10 年寿命,结果 3 年就没电了,就是因为没算自放电。
2.3.3 实用估算公式
我常用的估算公式是:
Life (years) = (C_eff * 0.85) / (I_avg * 8760 + I_self * 8760)
其中 0.85 是安全系数,8760 是一年的小时数,I_self 是电池自放电电流(折算成等效电流)。
举个例子:
- C_eff = 2000 mAh(锂亚电池,25°C)
- I_avg = 12 µA
- I_self = 2 µA(自放电 1.5%/年)
- Life = (2000 * 0.85) / ((12 + 2) * 8760 / 1000) ≈ 13.8 年
这个结果就比较接近实际了。
2.4 知识体系:硬件选型与功耗模型全景图
下面这张图,我把本章的核心逻辑串起来了。你可以把它当作选型时的检查清单。
这张图从左到右,就是咱们选型到估算的完整流程。你设计时,可以对着这张图逐个检查,确保每个环节都卡到位。
2.5 本章小结
这一章的内容,说白了就是三件事:
- 选型:MCU 看功耗模式,DCDC/LDO 看效率与噪声,传感器看待机电流。
- 建模:把系统运行周期拆成时间切片,算平均电流。
- 估算:用有效容量、自放电、安全系数,算出靠谱的电池寿命。
嗯,这些方法我在多个项目中验证过,误差基本在 15% 以内。你只要照着做,设计阶段就能把功耗问题解决掉,不用等到板子回来再抓瞎。