经过一个月的努力,待机电流终于降到3.5uA以下。
网上相关STM32低功耗的资料我都看了一下,有的对,有对可能不适用于我这种情况,有的没把细节说清楚。现在总结一下,帮助遇到同样难题的朋友少走弯路。
我们公司的板子主要由STM32L151 + NB模块5311 + I2C外插式传感器构成,功耗调节主要也是这三部分。
NB模块开另外文章细说,I2C外插传感器主要由硬件MOS控制供电来实现功耗,当然单片机也要适当控制I2C引脚,本文主要说一下STM32L151的低功耗设计要点,STM32F10*系列也是适用的。总结如下.
- Standby待机还是Stop停机? 我们使用Stop停机模式,因为只有Stop停机才能在休眠时保持住软件的引脚设置。进入Stop模式后,程序停止执行进入睡眠,定时到了之后进入RTC_WKUP_IRQHandler,出了这个函数,就从之前停止的地方继续执行。
- 单片机每一个引脚在进入Stop之前都要设置。这里的每一个引脚,包含(1)芯片外部连接器件的引脚