CM3 STM32F的低功耗

Cortex M3低功耗的模式

CM3提供了两种低功耗模式:sleepdeep sleep。在睡眠时,可以停止系统时钟(SYSCLK),但让FCLK继续走,以允许处理器能被SysTick异常唤醒。

 

寄存器

描述

SCR

SLEEPDEEP

用于控制处理器使用sleep还是使用deep sleep作为它的低功耗模式:

0 = sleep

1 = deep sleep

SLEEPONEXIT

指示从Handler模式返回线程模式时,是否退出睡眠模式:

0 = 当返回到线程模式后,不进入线程模式

1 = 当从ISR返回时,进入sleep或者deep sleep

 

 

 CM3 STM32F的低功耗_第1张图片

 

  

 Run > Sleep:

      SC_SLEEPDEEP = 0

      __WFI

 Sleep > Run:

      参考具体芯片

 Run > Deep Sleep:

      SC_SLEEPDEEP = 0

      __WFI

 Deep Sleep > Run :

      参考具体芯片

 

STM32F1/4低功耗模式的深入理解

了解低功耗模式,首先要了解时钟和电源:

 

时钟

时钟源

功能

低速内部时钟LSI

32KHz,为LSIRTC提供时钟。

低速外部时钟LSE

32.768KHz,为RTC提供时钟。

高速内部时钟HSI

16MHz,为SYSCLKPLL提供时钟。

高速外部时钟HSE

4-26MHz,为SYSCLKPLLRTC提供时钟。

系统时钟SYSCLK,提供以太网、AHBHCLKAHB总线、内核、DMAmemory;系统定时器;FCLK:为systick提供时钟)、APBAPB外设时钟、APB定时器时钟)。

STM32F4

STM32F1

 

电源

电压域

来源

设备

VDD

外部

IO逻辑、Flash memoryIWDGWakeup逻辑

1.8V

VDD经内部电压调节器

CPURAM、内核、数字外围设备

VDDA

外部

ADCDAC

VBAT

电池

LSI OSC32KWakeup逻辑、RTCRTC备份域寄存器、BKP SRAM。(VDD掉电)

 

低功耗模式

模式

进入

唤醒

1.8V

时钟的影响

VDD

时钟的影响

电压调节器

SleepSleep-nowSleep-on -exit

WFI

任何中断

CPU时钟关闭不影响其他时钟或模拟时钟源

无影响

WFE

唤醒事件

Stop

PDDSLPDS

+

SLEEPDEEP

+

WFIWFE

任何EXTI线(在EXTI寄存器中进行配置)

关闭所有1.8V域的设备的时钟

关闭HSIHSE晶振

开或者是处于低功耗模式(取决于电源控制寄存器PWR_CR

Standby

PDDS

+

SLEEPDEEP

+

WFIWFE

WKUP引脚上升沿,RTC警报,NRST引脚上的外部复位、IWDG复位

关闭

 

 

 

CM3 STM32F的低功耗_第2张图片 

 由Run模式进入Sleep模式

l Sleep-now:执行WFIWFE,条件为SLEEPDEEP=0SLEEPONEXIT=0

l Sleep-on-exit:执行WFI,条件为SLEEPDEEP=0SLEEPONEXIT=1

   只关闭CPU的时钟,包括NVICSysTick等内核外设在内的所有外设保持运行。

 由Sleep模式进入Run模式

   如果由WFI进入Sleep模式,任何可被NVIC识别的外设中断都可以将设备从Sleep模式唤醒。

   如果由WFE进入Sleep模式,一有事件发生MCU就退出Sleep模式,唤醒事件可以由以下内容产生:

l 在外设控制寄存器中使能了一个中断,但是在NVIC中没有使能,并且使能系统控制寄存器(SCR)的SEVONPEND位。当MCUWFE恢复时,外设中断挂起位和外设NVIC IRQ通道挂起位必须被清除。

l 在事件模式下,配置一个外部或内部EXTI线。因为挂起位相当于事件线没有被设置,当CPUWFE恢复时,不必清除外设中断挂起位或者外设NVIC IRQ通道挂起位。

 由Run模式进入Stop模式

   执行WFIWFE,条件为SLEEPDEEP=1PDDS=0LPDS=0/1。为了进入Stop模式,所有的EXTI线挂起位(EXTI_PR寄存器中)和RTC警报标志必须复位。否则,Stop模式进入程序被忽略,然后代码继续执行,即不能进入Stop模式。

 由Stop模式进入Run模式

   如果使用WFI进入的Stop模式,在中断模式下,配置任何EXTI线(在NVIC中,相应的EXTI中断向量必须被使能)。如果使用WFE进入的Stop模式,在事件模式下,配置任何的EXTI线。

   通过中断或唤醒事件退出停止模式时,HSI RC振荡器作为系统时钟。当电压调节器处于低功耗模式时,从Stop模式唤醒时,会导致额外的启动延时。Stop模式期间,调节器保持开的状态可以减少启动延时时间,但会增加功耗。

 由Run模式进入Standby模式

   执行WFIWFE,条件为SLEEPDEEP=1PDDS=1、清除PWR_CSRWUF位、根据选择的唤醒源(RTC警报ARTC警报BRTC唤醒、Tamper或时间戳标志)清除相应的RTC标志。

 由Standby模式进入Run模式

   WKUP引脚上的上升沿、RTC警报(警报A、警报B)、RTC唤醒、Tamper事件、时间戳事件、在NRST引脚的外部复位、IWDG复位。

你可能感兴趣的:(CM3 STM32F的低功耗)