Cortex-M4处理器 电源管理

Cortex-M4处理器的休眠模式可以降低功耗。
模式可以是以下一种或两种:

  • 休眠模式停止处理器时钟
  • 深度睡眠模式停止系统时钟,关闭锁相环和闪存。

如果设备实现了两种提供不同级别省电的睡眠模式,那么SCR的SLEEPDEEP位将选择使用哪种睡眠模式。

进入睡眠模式

本节描述了软件可以用来使处理器进入休眠模式的机制。

系统可以产生虚假的唤醒事件,例如调试操作唤醒处理器。因此,软件必须能够在这样的事件发生后将处理器重新置于睡眠模式。程序可能有一个空闲循环,使处理器回到休眠模式。

等待中断
Wait For Interrupt Instruction,等待中断指令,WFI,导致立即进入睡眠模式。当处理器执行WFI指令时,它停止执行指令并进入睡眠模式。

等待事件
Wait For Event Instruction,WFE,根据一个1位事件寄存器的值导致进入休眠模式。当处理器执行一个WFE指令时,它检查事件寄存器的值:

  • 0——处理器停止执行指令,并进入休眠模式。
  • 1——处理器将寄存器清零继续执行指令,而不进入休眠模式。

Sleep-on-exit
如果SCR的SLEEPONEXIT位设置为1,当处理器完成所有异常处理程序的执行时,它返回到线程模式并立即进入睡眠模式。在只要求处理器在发生异常时运行的应用程序中使用此机制。

从睡眠模式中唤醒

处理器唤醒的条件取决于使其进入睡眠模式的机制。

从WFI或sleep-on-exit中唤醒
通常,处理器只有在检测到具有足够优先级以导致异常进入的异常时才会唤醒。
一些嵌入式系统可能必须在处理器唤醒之后,在执行中断处理程序之前执行系统恢复任务。

如果到达的中断是启用的,并且具有比当前异常优先级更高的优先级,则处理器唤醒但不执行中断处理程序,直到处理器将PRIMASK设置为0.

从WFE中醒来
处理器将被唤醒,如果:

  • 它检测具有足够优先级的异常,从而导致异常进入
  • 它检测外部事件信号
  • 再多处理器系统中,系统中的另一个处理器执行SVE指令。

可选的唤醒中断控制器

设备可能还包括唤醒中断控制器(WIC),这是一个可选的外设,可以检查中断并将处理器从深度睡眠模式唤醒。只有当SCR的DEEPSLEEP位位设置为1时,WIC才启用。

WIC是不可变成的,没有任何寄存器或用户界面。它完全依靠硬件信号运行。

当WIC使能,处理器进入深度睡眠模式时,系统电源管理单元可以关闭大部分Cortex-M4处理器的电源。这有停止SysTick计时器的副作用。
当WIC接收到中断时,它需要一些时钟周期来唤醒处理器并恢复期状态,然后才能处理中断。
这意味着在深度睡眠模式下中断延迟会增加。

如果处理器检测到与调试器的连接,则禁用WIC。

你可能感兴趣的:(stm32,stm32,单片机,嵌入式硬件,学习,系统架构)