1. 低功耗需求分析:项目功耗指标定义、电池选型与续航计算、系统工作模式划分

各位同学,咱们开始第一讲。做低功耗项目,最忌讳什么?上来就画板子、写代码,最后发现电池撑不过半天。我见过太多这样的案例了。

所以,第一步必须是需求分析。说白了,就是搞清楚三个问题:你到底要多省电?用什么电池?系统怎么跑?

1.1 项目功耗指标定义

先定指标。没有指标,优化就是瞎忙活。我个人习惯,先列一个功耗预算表。

工作模式 典型电流 持续时间 占比
运行模式(全速) ~80 mA 10 ms 0.01%
睡眠模式(唤醒) ~5 mA 50 ms 0.05%
深度睡眠(Stop 2) ~3 μA 99.94% 几乎全部

这张表看着简单,但里面的坑不少。比如运行模式的80mA,你以为是平均值?其实峰值可能冲到150mA。我在项目中遇到过,传感器启动瞬间电流直接拉垮了电池电压,导致MCU复位。所以,峰值电流也要标出来。

核心指标定义清单:

  • 平均电流 (I_avg):决定总续航,单位 μA 或 mA。
  • 峰值电流 (I_peak):决定电池内阻和电压跌落,单位 mA。
  • 休眠电流 (I_sleep):决定待机时长,单位 μA。
  • 工作周期 (Duty Cycle):运行时间 vs 总时间。

为什么要定义这么细?你想想看,一个产品标称“待机一年”,结果用户一用,三天就没电了。这就是工作周期没算清楚。

1.2 电池选型与续航计算

指标定好了,下一步就是选电池。这里我给大家一个经验公式:

续航时间 (小时) = 电池容量 (mAh) / 平均电流 (mA) × 0.8

那个0.8是放电效率系数。为什么打折?因为电池实际放不出标称容量,尤其低温下。我记得有一次做户外设备,用的CR2032,标称225mAh,结果在-10°C下只放出不到一半。从那以后,我选电池必看放电曲线。

常见电池对比

电池类型 标称电压 典型容量 适用场景
CR2032 (锂锰) 3.0V 225 mAh 超低功耗、小体积
AA 碱性 1.5V 2000 mAh 中等功耗、易更换
锂聚合物 3.7V 500-2000 mAh 可充电、大电流
ER14505 (锂亚) 3.6V 2700 mAh 长寿命、工业级

选型小技巧:

如果平均电流在10μA以下,CR2032是性价比之王。但如果需要间歇性发射射频,峰值电流超过50mA,锂亚电池更靠谱。我一般会留30%的余量,别卡着理论值选。

1.3 系统工作模式划分

电池选好了,接下来要设计系统怎么跑。STM32L4支持多种低功耗模式,但你不能指望一个模式打天下。我习惯把系统分成3~4个明确的工作模式。

  • 模式1:运行模式 (Run) — 全速处理数据,外设全开。电流最大,时间最短。
  • 模式2:睡眠模式 (Sleep) — CPU暂停,外设保持。适合等待外设事件。
  • 模式3:停止模式 (Stop 2) — 大部分外设关闭,SRAM保持。这是主力低功耗模式。
  • 模式4:待机模式 (Standby) — 几乎全部关闭,仅RTC和唤醒引脚工作。电流最低,但唤醒最慢。

为什么要分这么细?我举个例子。一个温湿度传感器,每10分钟采集一次数据,通过蓝牙发送。如果全程用Stop 2,采集时唤醒,发送时切到Run,发送完再睡回去。这样平均电流可以控制在10μA以下。但如果全程用Standby,每次唤醒都要重新初始化,反而更费电。

避坑指南:

我曾经犯过一个错误:在Stop 2模式下,忘了关闭某个GPIO的上拉电阻,结果休眠电流从3μA飙到了30μA。排查了整整两天。所以,每个模式都要实测电流,不要只看数据手册。

1.4 知识结构图:低功耗需求分析框架

下面这张图,是我自己总结的低功耗需求分析流程。做项目前,先按这个框架走一遍,能避免80%的坑。

低功耗需求分析框架 低功耗需求分析框架 1. 功耗指标定义 2. 电池选型与续航 3. 工作模式划分 4. 实测与迭代 迭代优化 💡 核心原则:先定义指标 → 再选电池 → 划分模式 → 实测验证。不要跳步,不要凭感觉。 每个环节都要有数据支撑,否则后期优化会非常痛苦。

这张图的核心逻辑是自上而下、逐步细化。先定大指标,再选电池,然后划分模式,最后实测验证。如果实测不达标,就回到前面迭代。我做过一个项目,前三轮实测电流都超标,最后发现是模式切换时有个外设没关干净。嗯,这种问题,光靠理论分析是发现不了的。

1.5 本章小结

这一章我们讲了三个核心点:

  • 功耗指标:平均电流、峰值电流、休眠电流、工作周期,一个都不能少。
  • 电池选型:别只看容量,要看放电曲线和峰值能力。留30%余量是底线。
  • 模式划分:STM32L4的多种低功耗模式要组合使用,单一模式解决不了所有问题。