CM3 STM32F的低功耗

Cortex M3低功耗的模式

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

 

寄存器

描述

SCR

SLEEPDEEP

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

sleep

deep sleep

SLEEPONEXIT

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

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

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

 

 

 CM3 <wbr>STM32F的低功耗

 

  

 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 <wbr>STM32F的低功耗 

 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复位。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值