第21章 RTX 低功耗之睡眠模式

低功耗是 MCU 的一项非常重要的指标,比如某些可穿戴的设备,其携带的电量有限,如果整个电路
消耗的电量特别大的话,就会经常出现电量不足的情况,影响用户体验。

本章节为大家讲解 M3/4的低功耗方式之睡眠模式在 RTX 操作系统上面的实
现方法(RTX 本身支持的 tickless 低功耗模式在第 24 章节讲解)

STM32F103 睡眠模式介绍
说明:在 RTX 系统上面实现睡眠方式仅需了解这里讲解的知识基本就够用了,更多睡眠方式的知识请
看 STM32F103 参考手册和 Cortex-M3 权威指南。
在系统或电源复位以后,微控制器处于运行状态。当 CPU 不需继续运行时,可以利用多种低功耗模
式来节省功耗,例如等待某个外部事件时。用户需要根据最低电源消耗、最快速启动时间和可用的唤醒源
等条件,选定一个最佳的低功耗模式。
STM32F103 有三种低功耗模式:
? 睡眠模式(Cortex?-M3 内核停止,所有外设包括 Cortex-M3 核心的外设,如 NVIC、系统滴答定时
器 Systick 等仍在运行)。
? 停止模式(所有的时钟都已停止)。
? 待机模式(1.8V 电源关闭)。
本章节我们主要讲解睡眠模式,而在实际的睡眠模式编程时我需要清楚那些问题呢?请继续往下看。

如何进入睡眠模式
通过执行 WFI(等待中断)或 WFE(等待事件)指令进入睡眠状态。根据 Cortex?-M3 系统控制
寄存器中的 SLEEPONEXIT 位的值,有两种选项可用于选择睡眠模式进入机制:

? SLEEP-NOW:如果 SLEEPONEXIT 位被清除,当 WRI 或 WFE 被执行时,微控制器立即进入睡眠模
式。
? SLEEP-ON-EXIT:如果 SLEEPONEXIT 位被置位,系统从最低优先级的中断处理程序中退出时,微控
制器就立即进入睡眠模式。
小结:本章节配套的睡眠例子我们采用 WFI 指令进入睡眠模式,睡眠模式的进入机制是采用的
SLEEP-NOW。 因为系统复位上电后 SLEEPONEXIT 位是被清除的,所有这个位也不需要专门的去设置。
另外在睡眠模式下,所有的 I/O 引脚都保持它们在运行模式时的状态。
在 RTX 系统上,我们可以将 WFI 指令放到空闲任务里面实现。

如何退出睡眠模式
由于我们是采用指令 WFI 进入睡眠模式,那么任意一个被嵌套向量中断控制器 NVIC 响应的外设中断
都能将系统从睡眠模式唤醒。并且该模式唤醒所需的时间最短,因为没有时间损失在中断的进入或退出上。
在 RTX 系统上,主要是周期性执行的系统滴答定时器中断会将系统从睡眠态唤醒,当然,其它的任意
中断也可以将其从休眠态唤醒。

STM32F407 睡眠模式介绍
说明:在 RTX 系统上面实现睡眠方式仅需了解这里讲解的知识基本就够用了,更多睡眠方式的知识请
看 STM32F407 参考手册和 Cortex-M4 权威指南。
默认情况下,系统复位或上电复位后,微控制器进入运行模式。在运行模式下,CPU 通过 HCLK 提
供时钟,并执行程序代码。系统提供了多个低功耗模式,可在 CPU 不需要运行时(例如等待外部事件时)
节省功耗。由用户根据应用选择具体的低功耗模式,以在低功耗、短启动时间和可用唤醒源之间寻求最佳
平衡。 STM32F407 有三个低功耗模式:
? 睡眠模式(Cortex?-M4F 内核停止,外设保持运行)
? 停止模式(所有时钟都停止)
? 待机模式(1.2 V 域断电)
本章节我们主要讲解睡眠模式,而在实际的休眠模式编程时我需要清楚那些问题呢?请继续往下看。

低功耗模式的调试支持
使用 WFI 和 WFE 可以进入低功耗模式。
MCU 支持多种低功耗模式,分别可以关闭 CPU 时钟,或降低 CPU 的能耗。内核不允许在调试期间
关闭 FCLK 或 HCLK。这些时钟对于调试操作是必要的,因此在调试期间,它们必须工作。 MCU 使用一种
特殊的方式,允许用户在低功耗模式下调试代码。为实现这一功能,调试器必须先设置一些配置寄存器来
改变低功耗模式的特性。
? 在睡眠模式下,调试器必须先置位 DBGMCU_CR 寄存器的 DBG_SLEEP 位。这将为 HCLK 提供与
FCLK(由代码配置的系统时钟)相同的时钟。
调用库函数:DBGMCU_Config(DBGMCU_SLEEP, ENABLE);即可
? 在停止模式下,调试器必须先置位 DBG_STOP 位。这将激活内部 RC 振荡器,在停止模式下为 FCLK
和 HCLK。
调用库函数:DBGMCU_Config(DBGMCU_STOP, ENABLE);即可

如何有效降低休眠模式下的功耗
设计低功耗主要从以下几方面着手:
? 关闭可以关闭的外设时钟。
? 降低系统主频。
? 注意 I/O 的状态,因为休眠模式下,所有的 I/O 引脚都保持它们在运行模式时的状态。
? 如果此 I/O 口带上拉,请设置为高电平输出或者高阻态输入。
? 如果此 I/O 口带下拉,请设置为低电平输出或者高阻态输入。
? 注意 I/O 和外设 IC 的连接。

? 测试低功耗的时候,一定不要连接调试器,更不能边调试边测电流。

时间: 2024-10-14 04:28:18

第21章 RTX 低功耗之睡眠模式的相关文章

第22章 RTX 低功耗之停机模式

STM32F103 停机模式介绍 本章节我们主要讲解停机模式,停机模式是在 Cortex?-M3 的深睡眠模式基础上结合了外设的时钟控制机制,在停止模式下电压调节器可运行在正常或低功耗模式.此时在 1.8V 供电区域的的所有时钟都被停止, PLL. HSI 和 HSE RC 振荡器的功能被禁止, SRAM 和寄存器内容被保留下来.在停止模式下,所有的 I/O 引脚都保持它们在运行模式时的状态. STM32F103 如何进入停机模式在 RTX 系统中,让 STM32 进入停机模式比较容易,调用固件

第23章 RTX 低功耗之待机模式

STM32F103 待机模式介绍 本章节我们主要讲解待机模式,待机模式可实现系统的最低功耗.该模式是在 Cortex-M3 深睡眠模式时关闭电压调节器.整个 1.8V 供电区域被断电. PLL. HSI 和 HSE 振荡器也被断电. SRAM 和寄存器内容丢失,只有备份的寄存器和待机电路维持供电. STM32F103 如何进入待机模式在 RTX 系统中,让 STM32 进入待机模式比较容易,调用固件库函数 PWR_EnterSTANDBYMode即可.STM32F103 如何退出待机模式让 ST

FreeRTOS 低功耗之睡眠模式

低功耗是 MCU 的一项重要的指标,比如某些可穿戴的设备,其携带的电量有限,如果整个电路消耗的电量特别大的话,就会经常出现电量不足的情况,影响用户体验. STM32F103 睡眠模式介绍说明:在 FreeRTOS 系统上面实现睡眠方式仅需了解这里讲解的知识基本就够用了,更多睡眠方式的知识请看 STM32F103 参考手册和 Cortex-M3 权威指南.在系统或电源复位以后,微控制器处于运行状态.当 CPU 不需继续运行时,可以利用多种低功耗模式来节省功耗,例如等待某个外部事件时,用户需要根据最

第21章 策略模式(Strategy Pattern)

原文 第21章 策略模式(Strategy Pattern) 策略模式 导读:策略模式看完之后,大多数人都会感觉有点混了,包括我,感觉策略模式是一种OO思想的体现(纯属个人拙见). 概述:   策略模式定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换.策略模式让算法独立于使用它的客户而独立变化. 抽象策略角色: 策略类,通常由一个接口或者抽象类实现. 具体策略角色:包装了相关的算法和行为. 环境角色:持有一个策略类的引用,最终给客户端调用. 结构图:             

设计模式之第21章-状态模式(Java实现)

设计模式之第21章-状态模式(Java实现) “what are you 干啥了?怎么这么萎靡不振?”“昨晚又是补新番,又是补小笼包,睡得有点晚啊.话说杨过的那个雕兄真是太好了,每天给找蛇胆,又陪练武功的,想不无敌都难啊,还有那个blablabla”(作者已被拖走).咳咳,今天那个状态哥哥马不停蹄的赶过来,下面闪亮登场. 状态模式之自我介绍 今天不在状态,可能是由于宇宙差的原因,好了,先说下定义:Allow an object to alter its behavior when its int

设计模式@第21章:中介者模式

第21章:中介者模式 一.智能家庭项目 智能家庭项目: 智能家庭包括各种设备,闹钟.咖啡机.电视机.窗帘 等 主人要看电视时,各个设备可以协同工作,自动完成看电视的准备工作,比如流程为:闹铃响起->咖啡机开始做咖啡->窗帘自动落下->电视机开始播放 二.传统方案解决智能家庭管理问题 三.传统的方式的问题分析 当各电器对象有多种状态改变时,相互之间的调用关系会比较复杂 各个电器对象彼此联系,你中有我,我中有你,不利于松耦合. 各个电器对象之间所传递的消息(参数),容易混乱 当系统增加一个新

4.20日第13次作业.,20章战略管理,21章业务流程管理和重组,22章知识管理,高项,29-田哲琦

4.20日第13次作业.,20章战略管理,21章业务流程管理和重组,22章知识管理,高项,29-田哲琦 20章.战略管理1.企业战略的特点有哪些?P420-421 答:1).全局性 2).长远性 3).抗争性 4).纲领性 2.企业战略决策的特点有哪些?P421答:1).决策的对象是复杂的,很难把握住它的结构,并且是没有先例的,对其处理上也是没有经验可循. 2).面对的问题常常是突发性的.难以预料的.所依靠的是来自外部的关于未来如何变化的很少的情报. 3).决策的性质直接涉及到企业的前途. 4)

第21章 自动内存管理 21.8-21.21

21.8 Dispose模式:强制对象清理资源 Finalize方法非常有用,因为它确保了当托管对象的内存被释放时,本地资源不会泄漏.但是,Finalize方法的问题在于,他的调用时间不能保证.另外,由于他不是公共方法,所以类的用户不能显式调用它. 类型为了提供显式进行资源清理的能力,提供了Dispose模式.所有定义了Finalize方法的类型都应该同时实现Dispose模式,使类型的用户对资源的生存期有更多的控制. 类型通过实现System.IDisposable接口的方式来实现Dispos

4.11日第11次作业,21章法律法规与标准,22章职业道德规范

4.11日第11次作业,21章法律法规与标准,22章职业道德规范 21章:法律法规和标准规范 22章:职业道德规范 1.中国标准划分为哪四个层次?要求最低的是哪个?P498 答:<中华人民共和国标准化法>将标准划分为4个层次:即国家标准.行业标准.地方标准和企业标准.其中国标最低,企业标准最高. 2.国家标准的制订程序包括哪些?P499中间 答:国家标准的制定有一套正常程序,每一个过程都要按部就班地完成,这个过程分为前期准备.立项.起草.征求意见.审查.批准.出版.复审和废止9个阶段. 3.I