[CortexM0--stm32f0308]Low Power Mode
问题描写叙述
stm32f0308正常是运行在Run mode下。这样的mode是在reset之后的默认模式。Low Power Mode。即低功耗模式。用于在IC空暇时能够考虑选择进入。使系统耗能减少,在必要的时候通过唤醒在进入Run mode正常工作。
Low Power Mode,在嵌入式系统中考虑的非常多,也非常关键,由于一般都是用移动电源供电,合理使用Low Power Mode。会非常好的提高设备的续航能力。
Low Power Mode方式
- Sleep Mode:CPU时钟关闭。全部peripheral时钟运行。
- Stop Mode:全部时钟均停止;
- Standby Mode:1.8 V domain power-off。这里domain power-off应当是相当于关闭了给IC供电的电源。
另外,假设在Run Mode下,也能够通过例如以下手段来减少功耗: - 减少System Clock的速度,即通过Clock的配置,利用分频的作用。将系统Clock从最高的48MHz减少,这部分的配置能够參考Clock相关文档或文章。
- 当不使用APB或AHB peripheral时,使用门控时钟的方式。在peripheral配置使用时。通常会先通过RCC_AH/PBClockCmd(xx,Enable)之类的接口来使能peripheral时钟,有时候,可能这个peripheral并没有再使用了。那能够通过RCC_AH/PBClockCmd(xx,Disable)的接口将其关闭,也能够省些电。
这里的RCC_AH/PBClockCmd()是stm32的固件库中提供的,须要了解细节的能够看下stm32固件库,当中主要是通过对RCC_APBENR和RCC_AHBENR register操作来使能/禁止某项peripheral的时钟的。
几种Low Power Mode的比較例如以下:
Sleep Mode
怎样进入Sleep Mode?
运行WFI (Wait For Interrupt) 指令或WFE (Wait for Event)指令。进入Sleep Mode的机制能够通过Cortex-M0 System Control register的SLEEPONEXIT bit来选择:
6. Sleep-now:SLEEPONEXIT bit置零,在WFI/WFE指令运行之后马上进Sleep Mode;
7. Sleep-on-exit:SLEEPONEXIT bit置1,在MCU退出了最低优先级的ISR之后,即系统没有不论什么ISR在处理时,就会进入Sleep Mode。
怎样退出Sleep Mode?
退出Sleep Mode的方式和使用的进入Sleep Mode的指令WFI和WFE有关,使用WFI进入Sleep Mode,不论什么中断的发生都会导致退出Sleep Mode,而WFE指令进入的Sleep Mode,在event发生时会退出Sleep Mode,对于WFE指令进入Sleep Mode的方式,须要使用例如以下两种方式配置其退出Sleep Mode:
8. 使能一个peripheral中断(非NVIC中断),使能Cortex-M0 System Control register的SEVONPEND bit。当MCU从WFE Sleep Mode醒来时,须要清掉peripheral interrupt pending bit和peripheral NVIC IRQ channel pending bit ;
9. 配置一个外部或内部EXTI line为event模式。
Sleep Mode进入退出场景比較
Stop Mode
比Sleep Mode更进一步,IC内部Clock应当都停止了,SRAM和register。IO口状态是保持在上一刻进入Stop Mode时的状态。
Stop Mode进出场景比較
Standby Mode
比Stop Mode更省电,SRAM和register仅仅有部分维持数据(需看下register表,应当有标明为Standby Circuitry的)。
Standby Mode进出场景比較
在上面的Stop Mode和Standby Mode中, 貌似IWDG,RTC。LSI和LSE还是由这几个peripheral各自的register编程设定而受控制的,由于即使是进入了Low Power Mode,RTC的功能还是须要的,由于要计时,这非常重要。
Low Power Mode下的debug问题
由于进入Stop Mode和Standby Mode后,Cortex M0事实上已经停止了(Clock关闭了)。因此用swd此时应当是没办法debug的,只是stm32f0308的资料说,通过设置DBGMCU_CR register的一些配置,还是能够debug的,可是没有进一步具体的说明了……只是,对于stm32f0308这颗IC,貌似在进入Low Power Mode后,也不是必需去debug,由于Stop Mode和Standby Mode本来就没有代码在运行了,除非是stm自己在开发和验证IC时。可能须要做些debug,所以这里对使用者来说。应当没有什么所谓了。
Low Power Mode的RTC唤醒方式
RTC alarm方式能够用来唤醒Stop mode和Standby Mode,RTC时钟源能够选择LSE,也能够是LSI,这两个低速时钟都适合用于低功耗的。
对于RTC alarm唤醒Stop Mode。须要:
10. 配置EXTI line 17为上升沿;
11. 配置RTC可产生RTC alarm。
对于RTC alarm唤醒Standby Mode,则仅仅须要RTC可产生RTC alarm就可以。
[CortexM0--stm32f0308]Low Power Mode的更多相关文章
- tensorfolw配置过程中遇到的一些问题及其解决过程的记录(配置SqueezeDet: Unified, Small, Low Power Fully Convolutional Neural Networks for Real-Time Object Detection for Autonomous Driving)
今天看到一篇关于检测的论文<SqueezeDet: Unified, Small, Low Power Fully Convolutional Neural Networks for Real- ...
- Low Power Consumption Design --- MCU Attention
20161008 note : I have a PCB board called 'A' where a piece of STM8L052C6 and a piece of CC1101 are ...
- Low Power之CPF/UPF
1 CPF The Common Power Format is a standard promoted by the Low Power Coalition at Si2. CPF is also ...
- bzoj 3969: [WF2013]Low Power 二分
3969: [WF2013]Low Power Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://www.lydsy.com/JudgeOnli ...
- PatentTips - Fast awake from low power mode
BACKGROUND Electronic devices, such as electronic book readers ("eBook reader devices"), c ...
- Network management system scheduling for low power and lossy networks
In one embodiment, a network management system (NMS) determines an intent to initialize a request-re ...
- ACM - ICPC World Finals 2013 F Low Power
原题下载:http://icpc.baylor.edu/download/worldfinals/problems/icpc2013.pdf 题目翻译: 问题描述 有n个机器,每个机器有2个芯片,每个 ...
- BZOJ 3969 low power
Description 有\(n\)个机器,每个机器有\(2\)个芯片,每个芯片可以放\(k\)个电池.每个芯片能量是\(k\)个电池的能量的最小值.两个芯片的能量之差越小,这个机器就工作的越好.现在 ...
- BZOJ 3969 Low Power 解题报告
我们首先将所有电池排序,那么我们可以找到一组最优方案,使得一台机器的能量之差是相邻两电池的能量之差. 然后我们就二分这个答案,从前往后贪心地选这个数对,然后看是否所有的数对都是满足条件的. 假设这个数 ...
随机推荐
- badboy提示脚本错误解决方法
1.输入URL,提示脚本错误 解决办法:打开IE浏览器,工具->internet选项->高级,如图所示去掉禁用脚本调试 2.badboy内置浏览器,提示脚本错误解决办法 解决办法:badb ...
- global cache cr request
当一个进程访问需要一个或者多个块时,它会首先检查自己的CACHE是否存在该块,如果发现没有,就会先通过global cache赋予这些块 共享访问的权限,然后再访问.假如,通过global cache ...
- java.sql.SQLException: Field 'id' doesn't have a default value解决方案
转自:https://blog.csdn.net/xinghuo0007/article/details/51810867 自增长:java.sql.SQLException: Field 'id' ...
- java基本数据类型(二)和分支结构
基本数据类型(四类八种):不能为null一.整数型 byte----2的8次方 short----2的16次方 int----2的32次方 long----2的64次方二.浮点型 float----4 ...
- python字符串中的单双引
python中字符串可以(且仅可以)使用成对的单引号.双引号.三个双引号(文档字符串)包围: 'this is a book' "this is a book" "&qu ...
- c语言return与exit的区别
2013-09-0918:54:33 exit函数在头文件stdlib.h中,函数原型: void exit(int status); exit(0) 正常运行程序并退出程序. exit(1) 非正常 ...
- WPF 漏斗控件 等待沙漏效果
由于WPF中不支持gif图片因此要实现一个漏斗沙漏效果有点小麻烦. 网上有一款开源的控件 理论上完全开源 官网 http://wpfspark.codeplex.com/贴一下效果图 大家感觉需要就在 ...
- C#中的流_字节_字符_字符串之间的相互转换
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.I ...
- Nginx代码风格图示
Nginx代码风格图示 (100%) 一.基本原则 K&R编码风格(偏BSD子类). 每行不能超过80列. 不用TAB对齐,用空格. 默认对齐单元是4个空格. 除宏定义外,字母均为小写,单词间 ...
- MongoDB 学习笔记(七):主从复制与副本集
一.主从复制 1.主从复制是一个简单的数据库同步备份的集群技术,如下图:要明确的知道主服务器与从服务器,且从服务器要明确的知道主服务器的存在. 2.在MongoDB中在启动数据库服务时,可以用mast ...