STM32 低功耗实测:STOP2 和 Standby 到底差多少?

光电手记 发表于 2026-10-20 13:05 · 21 次浏览 · 6 条回复
光
最近在做一个电池供电的采集节点,要求两节 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。

你们做低功耗产品时,一般怎么选?有没有遇到过“理论功耗”和“板子实测”对不上的情况?
广告位 A8广告位招商帖子页首楼下方通栏 · 728×90 · 查看报价 · 联系 ads@oeforum.com
论 论坛助手
【编辑部】实测数据很有价值,GPIO 漏电和调试口那两条踩坑的人非常多。补充几点:

1. STM32L4 在 Standby 之下还有 Shutdown 模式,电流更低(几十 nA 量级,以具体型号手册为准),代价是连 LSE 外的大部分都关掉、只能靠唤醒引脚或 RTC 唤醒复位。
2. 算一下预算会更有感觉:两节 AA 按 2500mAh 粗算,一年 8760 小时,平均电流预算约 285µA。睡眠电流从 1.8µA 降到 0.35µA,在这个预算里占比其实很小,真正决定寿命的往往是唤醒后的采集和无线发送时间。所以「每次醒来干活多久」比「睡得有多深」更值得优化。
3. 测量方面,普通万用表在 µA 和 mA 之间切换量程时会造成压降和复位,测动态功耗建议用功耗分析仪或带自动量程的电源监测工具,看完整的唤醒周期积分电流。
4. 别忘了电池自放电和低温下的容量衰减,户外节点要留出余量。

欢迎大家补充:你们的节点里,无线发送占了总能耗的多少?
光
回一下最后的问题:我们的节点里,无线发送占总能耗的大头,实测大概 60%~70%。节点每 10 分钟唤醒一次,采集+LoRa 发送约 120ms,发送电流 40mA 级别,算下来平均电流里发送部分占了约 180µA,睡眠部分(STOP2 1.8µA 加上 LSE 和漏电)只占个零头。所以优化方向很明确:先压发送时长和发送电流,再抠睡眠电流。

补充两个容易被忽略的点:一是 RTC 的 LSE 本身功耗,32.768kHz 晶振加 RTC 外设要几百 nA,在某些超低功耗场景下能占到睡眠总功耗的三分之一,唤醒周期很长时值得评估是否真的需要精准定时;二是唤醒开销,STOP2 唤醒后 HSI16 启动加时钟稳定要几十微秒,这段时间内核全速运行,频繁唤醒的场景下这部分开销可能比睡眠电流本身还大。我们对比过:唤醒周期 1 秒、每次工作 5ms 的场景,唤醒开销占了总能耗的 40% 以上。
论 论坛助手
【编辑部】这组实测数据把「醒来干活多久比睡多深更重要」这点证实得很清楚,无线发送占六到七成也和我们见过的项目吻合。补充两个优化方向:

1. 外设低功耗化:STM32L4 的 LPTIM 和 LPUART 可以在 STOP 模式下继续工作,传感器数据收集或定时唤醒可以交给它们,减少内核全速运行的次数。
2. 唤醒后时钟策略:如果唤醒后只做简单采集,可以不切到高速时钟,用 MSI 低频运行,反而比「快速跑完再睡」更省,具体要按实际工作量实测对比。

请问你们的 LoRa 发送参数(扩频因子 SF、发射功率)有没有按距离做自适应?这对发送时长影响很大。
X
实测数据有没有?我们之前测的一组数据跟这个趋势一致。
光
回 4 楼:做了,但不是全自动 ADR,而是分档预设。节点部署前按链路预算把节点分成近/中/远三档,分别烧录 SF7/SF9/SF12 和对应的发射功率(14/17/20 dBm),出厂后不再动态切换。原因是我们用的是私有协议、上下行不对称,做闭环 ADR 的握手开销和丢包风险反而得不偿失。

实测数据:SF12 发一包 20 字节 payload 空中时间约 1.3 s、电流 40 mA,单次发送能量是 SF7 的 20 倍以上。所以远档节点的上报周期从 10 分钟放宽到 30 分钟,用周期换续航;近档 SF7 加 14 dBm,发送只占 60 ms,基本可以忽略。
光
回 5 楼 X86_老贺:贴一组我们实测的数,平台 STM32L4、3.3V:STOP2 实测 1.8µA(含 LSE 和 RTC),Standby 0.35µA。唤醒周期 10 分钟、每次采集加 LoRa(SF7、14dBm)约 120ms、发送电流 40mA,算下来发送部分平均电流约 80µA,睡眠部分约 2µA,总平均不到 100µA,两节 AA(2500mAh)理论续航约 2.8 年,留余量按 2 年设计。

另外一个小数据:GPIO 悬空输入在 STOP2 下我们测到单脚漏电流最大 40µA,全部配成模拟输入后降到可忽略。这个优化前后的差距,比 STOP2/Standby 选型本身还大,排查时建议先查 GPIO 再纠结模式。
登录 后参与回复,还没有账号?立即注册
行业企业展示索尔思光电 Source Photonics SFP 光模块产品图光模块与光芯片厂商访问官网 →行业企业展示,基于公开资料,如需撤下请联系 ads@oeforum.com