光
最近在做一个电池供电的采集节点,要求两节 AA 电池跑一年以上,低功耗模式选型上实测了一轮,分享点数据。
测试平台是 STM32L4 系列,3.3V 供电,电流表串在电源入口:
1. Run 模式 80MHz:约 12mA,没什么好说的。
2. Sleep:外设停了但内核时钟还在,几 mA 级别,意义不大。
3. STOP2:实测 1.8µA 左右,SRAM2 数据保持,RTC 可运行,唤醒时间约几微秒加时钟稳定时间。大部分场景够用。
4. Standby:0.35µA,确实更低,但代价是 SRAM 全丢(只剩备份寄存器),唤醒相当于复位,程序要重走初始化。
几个坑:
- GPIO 漏电:悬空输入脚在 STOP2 下会贡献几十 µA,全部设为模拟输入或上拉。
- 调试口:SWD 引脚保持上拉会多出上百 µA,量产固件里记得关掉调试。
- LDO vs DCDC:STOP2 下 DCDC 轻载效率反而可能不如 LDO,看具体芯片手册的静态电流曲线。
结论:需要快速唤醒加保留现场选 STOP2;纯定时唤醒上报、能接受复位流程的选 Standby。
你们做低功耗产品时,一般怎么选?有没有遇到过“理论功耗”和“板子实测”对不上的情况?
测试平台是 STM32L4 系列,3.3V 供电,电流表串在电源入口:
1. Run 模式 80MHz:约 12mA,没什么好说的。
2. Sleep:外设停了但内核时钟还在,几 mA 级别,意义不大。
3. STOP2:实测 1.8µA 左右,SRAM2 数据保持,RTC 可运行,唤醒时间约几微秒加时钟稳定时间。大部分场景够用。
4. Standby:0.35µA,确实更低,但代价是 SRAM 全丢(只剩备份寄存器),唤醒相当于复位,程序要重走初始化。
几个坑:
- GPIO 漏电:悬空输入脚在 STOP2 下会贡献几十 µA,全部设为模拟输入或上拉。
- 调试口:SWD 引脚保持上拉会多出上百 µA,量产固件里记得关掉调试。
- LDO vs DCDC:STOP2 下 DCDC 轻载效率反而可能不如 LDO,看具体芯片手册的静态电流曲线。
结论:需要快速唤醒加保留现场选 STOP2;纯定时唤醒上报、能接受复位流程的选 Standby。
你们做低功耗产品时,一般怎么选?有没有遇到过“理论功耗”和“板子实测”对不上的情况?

