目录
STM32duino lowpower 库中的低功耗调用关系
低功耗模式介绍:
(资料来源stm32l476 参考手册,RM0351_STM32L4x5 and STM32L4x6 advanced Arm®-based 32-bit MCUs)
Sleep mode:
CPU时钟关闭,所有外设(包括NVIC,SysTick,等的Cortex-m4内核外设可以运行,中断或事件发生时唤醒CPU.
Low-power sleep mode :
从Low-power run mode可以进入到这个模式:Cortex -m4关闭。
Stop 0,Stop 1 和Stop 2 mode:
SRAM1 ,SRAM2和所有寄存器内容被保留。Vcore域的所有时钟停止,PLL,MSI,HSI16和HSE失能。LSI和LSE可以保持运行。
RTC可以保持激活状态(带RTC的停止模式,不带RTC的停止模式)。
一些具有唤醒功能的外设在停止模式期间,检测到唤醒状态可以使能HSI16 。
在stop2模式下,大多数VCore域处于较低漏电流模式。
Stop 1提供最多的活跃外设和唤醒源,唤醒时间比Stop 2短,但功耗更高。在Stop 0模式下,主调节器保持开启,这允许最快的唤醒时间,但功耗更高。活跃外设和唤醒源与Stop 1模式中的相同。
从Stop 0,Stop 1或 Stop 2模式退出时,系统时钟可以是高达48 MHz的MSI或HSI16,具体取决于软件配置。
Standby mode :
Vcore域已关闭。但是,可以保存SRAM2内容:
Standby mode 保存SRAM2内容:主调节器关闭,低功耗调节器运行。
Standby mode 不保存 SRAM 2内容:主调节器和低功耗调节器均关闭。
所有Vcore域的时钟停止,PLL、MSI、HSI16和HSE关闭。LSI和LSE可以保持运行。
RTC可以保持激活状态(带RTC的停止模式,不带RTC的停止模式)。
当退出Standby mode时,MSI为系统时钟(system clock)提供1 MHz到8MHz的时钟。
Shutdown mode:
Vcore 域已关闭。VCore域中的所有时钟停止,PLL、MSI、HSI16、LSI和HSE被禁用。LSE可以继续运作。退出Shutdown mode时,MSI为系统时钟4 MHz的时钟。在这种模式下,电源电压监控被禁用,并且在电源电压下降的情况下,产品行为无法得到保证。
各个模式的切换关系
各个低功耗模式的特征总结
各个低功耗模式的进入与退出方法
参考资料:UM1884 Description of STM32L4HAL and low-layer drivers
Low-power run mode 进入与退出
Sleep mode 进入与退出
Low-power Sleep mode 进入与退出
Stop0 mode 进入与退出
Stop1 mode 进入与退出
Stop2 mode 进入与退出
Standby mode进入与退出
Shutdown mode进入与退出
STM32duino lowpower 库中的低功耗调用关系
参考资料:https://github.com/stm32duino/STM32LowPower
void shutdown (int ms)
void deepSleep (int ms)
void sleep (int ms)