STM32电源管理—实现低功耗

发布者:机器人总动员最新更新时间:2022-01-16 来源: eefocus关键字:STM32  电源管理  低功耗 手机看文章 扫描二维码
随时随地手机看文章

一、电源管理—实现低功耗

电源对电子设备的重要性不言而喻,它是保证系统稳定运行的基础,而保证系统能稳定运行后,又有低功耗的要求。 在很多应用场合中都对电子设备的功耗要求非常苛刻,如某些传感器信息采集设备,仅靠小型的电池提供电源,要求工作长达数年之久,且期间不需要任何维护;由于智慧穿戴设备的小型化要求,电池体积不能太大导致容量也比较小,所以也很有必要从控制功耗入手,提高设备的续行时间。 因此, STM32 有专门的电源管理外设监控电源并管理设备的运行模式, 确保系统正常运行,并尽量降低器件的功耗。


默认情况下,系统复位或上电复位后,微控制器进入运行模式。在运行模式下, CPU 通过HCLK 提供时钟,并执行程序代码。系统提供了多个低功耗模式,可在 CPU不需要运行时(例如等待外部事件时)节省功耗。由用户根据应用选择具体的低功耗模式,以在低功耗、短启动时间和可用唤醒源之间寻求最佳平衡。


详细信息看中文手册的第五章,5.3电源管理


器件有三个低功耗模式:


(1)睡眠模式(Cortex-M4内核停止,外设保持运行,唤醒速度是最快的,

    执行WFI (Wait For   Interrupt,任何中断都能唤醒)

(2)停止模式(所有时钟都停止,执行PWR_EnterSTOPMode,外部中断控制线唤醒,例如按键)

(3)待机模式(1.2 V 域断电,唤醒速度最慢,程序从头开始运行,就跟手机关机一样,这种模式一般用的不多,调用PWR_EnterSTANDBYMode)


此外,可通过下列方法之一降低运行模式的功耗:

(1)降低系统时钟速度

(2)不使用 APBx 和 AHBx 外设时,将对应的外设时钟关闭


二、睡眠模式


在睡眠模式中,仅关闭了内核时钟,内核停止运行,但其片上外设, CM4 核心的外设全都还照常运行。有两种方式进入睡眠模式,它的进入方式决定了从睡眠唤醒的方式,分别是 WFI(wait for interrupt)和 WFE(wait for event),即由等待“中断”唤醒和由“事件”唤醒。


1.睡眠模式各种特性


立即睡眠 :在执行 WFI 或 WFE 指令时立即进入睡眠模式。


退出时睡眠 :在退出优先级最低的中断服务程序后才进入睡眠模式。


进入方式: 内核寄存器的 SLEEPDEEP = 0 ,然后调用 WFI 或 WFE 指令即可进入睡眠模式;

另外若内核寄存器的 SLEEPONEXIT=0 时 , 进入“ 立即睡眠 ” 模式SLEEPONEXIT=1 时,进入“退出时睡眠”模式。


唤醒方式: 如果是使用 WFI (Wait From Interrupt)指令睡眠的,则可使用任意中断唤醒;如果是使用 WFE(Wait From Event) 指令睡眠的,则由事件唤醒。


睡眠时 ,关闭内核时钟,内核停止,而外设正常运行,在软件上表现为不再执行新的代码。这个状态会保留睡眠前的内核寄存器、内存的数据。


唤醒延迟 :无延迟。


唤醒后 ,若由中断唤醒,先进入中断,退出中断服务程序后,接着执行 WFI 指令后的程序;若由事件唤醒,直接接着执行 WFE 后的程序。

进入睡眠模式之后,任意中断可以唤醒CPU。


三、停止模式


在停止模式中,进一步关闭了其它所有的时钟,于是所有的外设都停止了工作,但由于其 1.2V 区域的部分电源没有关闭,还保留了内核的寄存器、内存的信息,所以从停止模式唤醒,并重新开启时钟后,还可以从上次停止处继续执行代码。停止模式可以由任意一个外部中断(EXTI)唤醒。在停止模式中可以选择电压调节器为开模式或低功耗模式,可选择内部 FLASH 工作在正常模式或掉电模式。


当退出停止模式后,它是选择内部的HSI RC振荡器作为时钟,但是这不是我们想要的CPU的频率,所以重新调用SysteInit函数


1.停止模式的各种特性


调压器低功耗模式 :在停止模式下调压器可工作在正常模式或低功耗模式,可进一步降低功耗

FLASH掉电模式 : 在停止模式下 FLASH 可工作在正常模式或掉电模式,可进一步降低功耗

进入方式 : 内核寄存器的 SLEEPDEEP =1, PWR_CR 寄存器中的 PDDS=0,然后调用 WFI或 WFE 指令即可进入停止模式;

PWR_CR 寄存器的 LPDS=0 时,调压器工作在正常模式, LPDS=1 时工作在低功耗模式;

PWR_CR 寄存器的 FPDS=0 时, FLASH 工作在正常模式, FPDS=1 时进入掉电模式。

唤醒方式 : 如果是使用 WFI 指令睡眠的,可使用任意 EXTI 线的中断唤醒;如果是使用 WFE 指令睡眠的,可使用任意配置为事件模式的 EXTI 线事件唤醒。


停止时, 内核停止,片上外设也停止。这个状态会保留停止前的内核寄存器、内存的数据。


唤醒延迟 : 基础延迟为 HSI 振荡器的启动时间,若调压器工作在低功耗模式,还需要加上调压器从低功耗切换至正常模式下的时间,

若 FLASH 工作在掉电模式,还需要加上 FLASH 从掉电模式唤醒的时间。


唤醒后, 若由中断唤醒,先进入中断,退出中断服务程序后,接着执行 WFI 指令后的程序;若由事件唤醒,直接接着执行 WFE 后的程序。唤醒后, STM32会使用 HIS 作为系统时钟。

由外部中断按键触发唤醒。


四、待机模式


待机模式,它除了关闭所有的时钟,还把 1.2V 区域的电源也完全关闭了,也就是说,从待机模式唤醒后,由于没有之前代码的运行记录,只能对芯片复位,重新检测 boot 条件,

从头开始执行程序。它有四种唤醒方式,分别是 WKUP(PA0)引脚的上升沿(相当于手机的电源键), RTC 闹钟事件(相当于手机自动开机), NRST 引脚的复位和 IWDG(独立看门狗)复位。


1、 待机模式的各种特性


进入方式 : 内核寄存器的 SLEEPDEEP =1, PWR_CR 寄存器中的 PDDS=1, PWR_CR 寄存器中的唤醒状态位 WUF=0,然后调用 WFI 或 WFE 指令即可进入待机模式;


唤醒方式 : 通过 WKUP 引脚的上升沿, RTC 闹钟、唤醒、入侵、时间戳事件或NRST 引脚外部复位及 IWDG 复位唤醒。


待机时 , 内核停止,片上外设也停止;内核寄存器、内存的数据会丢失;除复位引脚、 RTC_AF1 引脚及 WKUP 引脚,其它 I/O 口均工作在高阻态。


唤醒延迟 : 芯片复位的时间

唤醒后 , 相当于芯片复位,在程序表现为从头开始执行代码

关键字:STM32  电源管理  低功耗 引用地址:STM32电源管理—实现低功耗

上一篇:STM32红外串口接收
下一篇:STM32嵌入式FLASH擦除与写入

推荐阅读最新更新时间:2024-11-10 11:46

AMD 再次向 Intel 的低功耗、平板处理器宣战
    :2014年4月30日 13:46 AMD 在游戏主机方面近年来颇有斩获,同时在显卡上也维持着强势竞争者的位置,但在 PC 界 -- 无论是桌机、笔电还是平板 -- 都还是难以突破 Intel 的防线。不过这次 AMD 希望能透过新的处理器,至少将平板和低价笔电的市场夺过来,而这两个秘密武器的名字,分别是"Mullins"和"Beema"。 Mullins 是去年 Temash 的后继者,效能大约在 Haswell Y 的 Core i 处理器和 Bay Trail T 的 Atom 处理器之间。虽然微架构差距不大,但经过 AMD 的调整,新的晶片 TDP 掉到了 4.5W,同时最高频率增加了
[手机便携]
再造STM32---第四部分:新建工程---寄存器版
4.1 新建工程: 4.1.1 新建本地工程文件夹: 为了工程目录更加清晰,我们在本地电脑上新建 1 个文件夹用于存放整个工程,如命名为“LED”,然后在该目录下新建 2 个文件夹,具体如下: 表格 8 工程目录文件夹清单 表格 9 工程目录文件夹内容清单 4.1.2 新建工程: 打开 KEIL5,新建一个工程,工程名根据喜好命名,我这里取 LED-REG,直接保存在 LED 文件夹下。 1. 选择 CPU 型号: 这个根据你开发板使用的 CPU 具体的型号来选择, 我的F429选STM32F429IGT 型号。如果这里没有出现你想要的 CPU 型号,或者一个型号都没有,那么肯定是
[单片机]
再造STM32---第四部分:新建工程---寄存器版
STM32+NRF24L01无线
硬件SPI和模拟SPI源码: nrf24发送(模拟SPI)BHS-STM32.rar nrf24接收(模拟SPI)BHS-STM32.rar nrf24发送(硬件SPI)BHS-STM32.rar nrf24接收(硬件SPI)BHS-STM32.rar NRF24L01资料 NRF24.rar 部分代码: #define TX_PLOAD_WIDTH 20 // 20 uints TX payload u8 TxBuf ={0}; #define CE_POUT PB1 #define CSN_POUT PB0 #define CE_H() {CE_POUT=1;} #define CE_L() {CE
[单片机]
STM32开发笔记9: STM32CubeF0固件架构
单片机型号:STM32CubeF0 本文介绍STM32CubeF0固件架构。 STM32CubeF0固件架构图如下图所示。 1、Board Support Package (BSP) This layer offers a set of APIs relative to the hardware components in the hardware boards (such as LCD, Audio, microSD and MEMS drivers). It is composed of two parts: • Component This is the driver
[单片机]
<font color='red'>STM32</font>开发笔记9: STM32CubeF0固件架构
在温度监控系统设计中STM32有什么应用?
引言 现代工业控制领域通常要测量很多信号,将其转化为计算机可以识别的二进制信号,并利用计算机监视和记录各种测量的信号。这个过程就要涉及到信号的采集和处理。CAN总线是一种串行多主总线,它卓越的特性、极高的可靠性和独特的设计,特别适合工业过程监控设备的互连,因此,越来越受到工业界的重视,并已公认为最有前途的现场总线之一。本文介绍了基于STM32和CAN总线的温度监控系统的设计,通过上位机与下位机的通信,实现对温度数据的监控,并经初步实验达到了设计的要求。 1 系统总体方案概述 系统总体框图如图1所示,本系统采用主站+从站的结构,CAN主站主要实现温度数据的存储以及CAN总线协议和串口协议之间的桥接,CAN 从站主要实现温度的采集
[单片机]
在温度监控系统设计中<font color='red'>STM32</font>有什么应用?
stm32-点亮led,流水灯
主要使用的是103和407系列的32 不知不觉转眼大二也过了一半了,总是想说要开始学32,学32,却一直没有正真的系统的去开始学32。到了寒假,有了许多可以自己调配的时间, 学了一个多礼拜,大致学到了定时器,输出pwm左右,也实战了一下。之前没学32之前一直以为用32做东西不算什么本事,以为只是调用调用库,哪有51更加底层,更加清楚。学了之后才发现,果断被打脸了。51虽说经典,但是32确实强大。 用32写程序不只是调用库那么简单,要了解32各个函数成员的意义,每个模式的作用........(当然也可以直接copy例程的一个一个的代码块,可以不理解直接用函数接口,但是不建议这样,因为这样永远不能直接做东西) 。 其实之所以
[单片机]
stm32-点亮led,流水灯
STM32单片机中的独立看门狗与窗口看门狗有哪些不同之处
1.关于看门狗的解释不再说明,窗口看门狗简而言之即只能看某个窗口期即某段时间内才能够喂狗。32的独立看门狗是没有中断的,而窗口看门狗可根据需要配置中断 2.关于独立看门狗和窗口看门狗的应用,手册p316 即17.1节讲的非常清楚。首先独立看门狗和窗口看门狗都可用来监视软件程序是否正常运行,而具体而言,因为独立看门狗独立于系统时钟单独运行,因此其可用来监视是否发生了硬件错误,比如说系统时钟故障,看门狗仍然能够起到重启的作用,但是独立看门狗的计时精度比较差,更多的应用在独立系统运行之外的对计时要求低的地方。而窗口看门狗是由系统时钟提供的,因此其计时也会很准确,当然其也就只能用来检测软件故障,比如硬件故障系统时钟坏了,自身也就不动了,也
[单片机]
STM32 SysTick定时器应用【worldsing笔记】
SysTick是CM内核独立的定时器,时钟可以用内核内部的,也可以用芯片厂家(ST)的时钟,参考《Cortex-M3权威指南》的第13章: 另外也可以考《STM32F10xxx Cortex-M3 programming manual.pdf》第4章CM3系统外设,从手册来看,ST应该只提供了内核外部时钟,而外部时钟又分成两种:HCLK/8 和 HCLK, ST官方提供了库直接可以操作SYSTICK,但不同的版本使用起来有些区别: 在V2.0的版本中对SysTick的操作是使用的stm32f10x_systick.c和stm32f10x_systick.h void SysTick_CLKSourceConfig(u3
[单片机]
<font color='red'>STM32</font> SysTick定时器应用【worldsing笔记】

推荐帖子

专业音响的发祥地
本帖最后由jameswangsynnex于2015-3-320:00编辑北京俊杰伟业电子设备商贸有限公司是一家以专业音频、视频、灯光以及智能控制产品为主的渠道运营商,公司经过多年的发展与积累规模不断壮大,公司现在成立了人力资源部,行政部,财务部,技术部,市场部,工程部,设备租赁部,后勤部,公司为了更好的展示产品还下设有门市。公司一直致力于新产品的推广与应用,为广大的工程商和产品生产厂家提供桥梁和后续保障工作,公司产品能够更好的服务用户是我公司不懈努力的目标。我公司现主要经营:美
zhangxiaowei123 移动便携
iPhone4移动电源
大家好,有谁有iPhone4移动电源电路的电路图吗,制作iPhone移动电源有什么要求吗?跟普通手机充电电源一样吗?还是有其他的要求!iPhone4移动电源自己先顶一下
wzq06633278902 电源技术
用 INT0做中断,为什么进了去出不了!!!哪里出问题了?????
现在玩个红外接收的模块,用INT0做中断,为什么进了去出不了!!!哪里出问题了?????-----------------------------------把程序贴上-------------#includereg52.h#includeabsacc.h#includeintrins.h#defineucharunsignedchar#defineuintunsignedintuintq;//------1602---------//sbit
刘W杰 51单片机
avr studio 6.0 下 mega 64 串口中断问题
我是AVR新手,在avrstudio6.0下学习mega64的串口0,波特率已经配置成9600,发送函数调试成功,现在调不通中断方式下的接收程序,程序片段如下,望知道的好友指导指导,谢谢中断使能voidUsart0InterruptConfig(){UCSR0B=(1RXCIE0)|(1RXEN0)|(1TXEN0);sei();}中断服务函数ISR(SIG_UART0_RECV){temp=UDR0;
eassion Microchip MCU
SD卡数据读取
由于现在要做一个支持SD卡的数码相框,遇到一个问题,就是怎样用FPGA实现SD卡中的图片数据的读取,希望各位大侠指点一哈!SD卡数据读取粗看起来这个问题很大,跟U盘厂商协商一下。须要有以下知识:FAT文件系统,SD协议,(图片)文件格式我觉得要想读取里面的信息首先要知道SD卡的协议然后了解图片在里面的是怎么存储的这样才有可能存取里面的信息uping先搞定SD协议,现在大容量卡是2.0的协议,然后实现FAT文件系统,最后是图片文件的格式先找SD的IP核,然后基于这个实现
hlyft 嵌入式系统
【Follow me第二季第2期】arduinoUNOR4+homeassistant任务提交
很开心又一次参加得捷和eeworld联合举办的followme活动。这次活动使用的板卡是ArduinoUNOR4WiFi。其实对于arduino还是有一些小情结的,因为当时虽然第一款学的MCU是51,但真正入门并领略了微电子的乐趣,还是arduinoUNOR3,所以这次能参加followme的活动还是很nice的。任务实现简介:这次完成的任务主要有以下这些,具体实现方式相见后面。入门任务(必做):搭建环境并开启第一步Blink/串口打印Hell
白菜虫虫 DigiKey得捷技术专区
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved