您的位置 首页 解答

STM32的电源办理与低功耗操控规划

STM32的电源管理与低功耗控制设计-处理器广泛地利用门时钟来禁能那些未用的功能和未用功能块的输入,因此只有正在有效使用中的逻辑才会消耗动态功率。

ARMv7-M架构支持为减少功耗而让Cortex-M3和系统时钟停止运行的系统睡眠模式。

7.1电源办理概述

处理器广泛地运用门时钟来禁能那些未用的功用和未用功用块的输入,因而只要正在有效运用中的逻辑才会耗费动态功率。

ARMv7-M架构支撑为削减功耗而让Cortex-M3和体系时钟中止工作的体系睡觉形式。

7.2体系电源办理

对体系操控寄存器进行写操作(见“体系操控寄存器”)能够操控Cortex-M3体系功耗的状况,表7-1列出了支撑的睡觉形式。

STM32的电源办理与低功耗操控规划

a.即便没有反常被激活也能够履行WFI指令。不要运用WFI指令来勘探反常是否产生。WFI一般运用

在线程形式下的闲暇循环中。要了解更多有关WFI、WFE、BASEPRI以及PRIMASK的信息,请参阅

“ARMv7-M架构参阅攻略”。

处理器导出以下信号以指示处理器进入睡觉的详细时刻:

SLEEPING该信号在当即睡觉或“退出时睡觉”形式下有用,表明处理器时钟能够停

止工作。在接纳到一个新的中止后,NVIC会使该信号变无效,使内核退出睡觉。有关

SLEEPING的用法实例见“SLEEPING”。

SLEEPDEEP当体系操控寄存器的SLEEPDEEP方位位时,该信号在当即睡觉或“退

出时睡觉”形式下有用。该信号被传送给时钟办理器,并能够用来门控处理器和包含锁相环

(PLL)的体系元件以节约功耗。在接纳到新的中止时,嵌套向量中止操控器(NVIC)将

SLEEPDEEP信号变无效,并在时钟办理器显现时钟稳守时让内核退出睡觉。有关

SLEEPDEEP的用法实例见“SLEEPDEEP”。

7.2.1 SLEEPING

图7-1给出了如安在低功耗状况运用SLEEPING来门控处理器的HCLK时钟以削减功

耗的实例。如有必要,还能够运用SLEEPING来门控其他体系元件。

STM32的电源办理与低功耗操控规划

为了勘探中止,处理器有必要一向接纳自由振荡的FCLK。FCLK用于对以下元件计时

B)勘探中止的NVIC中的少数逻辑电路

B)DWT和ITM模块。这些模块被使能相应功用后能够在睡觉期间产生盯梢包。假如

“调试反常与监控寄存器”的TRCENA位使能,那些模块的功耗将会下降。见“调

试反常与监控寄存器”。

在SLEEPING信号有用期间能够下降FCLK频率。

7.2.2 SLEEPDEEP

图7-2给出了如安在低功耗状况运用SLEEPDEEP来中止时钟操控器以进一步削减功耗

的实例。退出低功耗状况时,LOCK信号指示PLL安稳,而且此刻使能Cortex-M3时钟是

安全的,这能够确保处理器不会重启直至时钟安稳。

STM32的电源办理与低功耗操控规划

为了检测中止,处理器在低功耗状况下有必要接纳自由振荡的FCLK。在SLEEPDEEP有用期

间能够下降FCLK频率。

STM32中文参阅手册_V10.pdf》

4.1电源

STM32的作业电压(VDD)为2.0~3.6V。经过内置的电压调节器供给所需的1.8V电源。 当主电源VDD掉电后,经过VBAT脚为实时时钟(RTC)和备份寄存器供给电源。

STM32的电源办理与低功耗操控规划

4.1.2电池备份区域运用电池或其他电源连接到VBAT脚上,当VDD断电时,能够保存备份寄存器的内容和坚持RTC的功用。VBAT脚也为RTC、LSE振荡器和PC13至PC15供电,这确保当首要电源被堵截时RTC能持续作业。切换到VBAT供电由复位模块中的掉电复位功用操控。 假如运用中没有运用外部电池,VBAT有必要连接到VDD引脚上。

假如在运用中没有外部电池,主张VBAT在外部经过一个100nF的陶瓷电容与VDD相连

4.1.3电压调节器

复位后调节器总是使能的。依据运用办法它以3种不同的形式作业。 ● 工作形式:调节器以正常功耗形式供给1.8V电源(内核,内存和外设)。

● 中止形式:调节器以低功耗形式供给1.8V电源,以保存寄存器和SRAM的内容。

● 待机形式:调节器中止供电。除了备用电路和备份域外,寄存器和SRAM的内容悉数丢掉。

4.3低功耗形式

在体系或电源复位今后,微操控器处于工作状况。当CPU不需持续工作时,能够运用多种低功耗形式来节约功耗,例如等候某个外部事情时。用户需求依据最低电源耗费、最快速发动时刻和可用的唤醒源等条件,选定一个最佳的低功耗形式。STM32F10xxx有三种低功耗形式:

● 睡觉形式(Cortex?-M3内核中止,一切外设包含Cortex-M3中心的外设,如NVIC、体系时钟(SysTIck)等仍在工作)

●中止形式(一切的时钟都已中止)

● 待机形式(1.8V电源封闭)

此外,在工作形式下,能够经过以下办法中的一种下降功耗:

● 下降体系时钟

●封闭APB和AHB总线上未被运用的外设时钟。

STM32的电源办理与低功耗操控规划

4.3.1下降体系时钟

在工作形式下,经过对预分频寄存器进行编程,能够下降恣意一个体系时钟(SYSCLK、HCLK、PCLK1、PCLK2)的速度。进入睡觉形式前,也能够运用预分频器来下降外设的时钟。详见第6.3.2节:时钟装备寄存器(RCC_CFGR)。

4.3.2外部时钟的操控

在工作形式下,任何时候都能够经过中止为外设和内存供给时钟(HCLK和PCLKx)来削减功耗。 为了在睡觉形式下更多地削减功耗,可在履行WFI或WFE指令前封闭一切外设的时钟。 经过设置AHB外设时钟使能寄存器(RCC_AHBENR)、APB2外设时钟使能寄存器(RCC_APB2ENR)和APB1外设时钟使能寄存器(RCC_APB1ENR)来开关各个外设模块的时钟。

4.3.4中止形式

●独立看门狗(IWDG):可经过写入看门狗的键寄存器或硬件挑选来发动IWDG。一旦发动了独立看门狗,除了体系复位,它不能再被中止。详见17.3节。

●实时时钟(RTC):经过备份域操控寄存器(RCC_BDCR)的RTCEN位来设置。

●内部RC振荡器(LSI RC):经过操控/状况寄存器(RCC_CSR)的LSION位来设置。

●外部32.768kHz振荡器(LSE):经过备份域操控寄存器(RCC_BDCR)的LSEON位设置。

在中止形式下,假如在进入该形式前ADCDAC没有被封闭,那么这些外设依然耗费电流。经过设置寄存器ADC_CR2的ADON位和寄存器DAC_CR的ENx位为0可封闭这2个外设。退出中止形式关于怎么退出中止形式,详见下表。当一个中止或唤醒事情导致退出中止形式时,HSI RC振荡器被选为体系时钟。当电压调节器处于低功耗形式下,当体系从中止形式退出时,将会有一段额定的发动延时。假如在中止形式期间坚持内部调节器敞开,则退出发动时刻会缩短,但相应的功耗会添加。

STM32的电源办理与低功耗操控规划

其间对PWR_CR的PDDS和LPDS的装备:

STM32的电源办理与低功耗操控规划

//进入中止形式

{

//的LPDS并铲除PWR_CR的PDDS

u32 tmpreg tmpreg = PWR-》CR;

tmpreg &= ~(1《《1); //铲除PWR_CR的PDDS

tmpreg “=(1《《0); //设置PWR_CR的LPDS

PWR-》CR = tmpreg;

SCB-》SCR|=1《《2; //使能SLEEPDEEP位(SYS-》CTRL)

WFI_SET(); //履行WFI指令

}

其间THUMB指令不支撑汇编内联,选用如下办法完成履行汇编指令WFI

__asm void __inline WFI_SET(void)

{

WFI;

}

4.3.5待机形式

待机形式可完成体系的最低功耗。该形式是在Cortex-M3深睡觉形式时封闭电压调节器。整个1.8V供电区域被断电。PLL、HSI和HSE振荡器也被断电。SRAM和寄存器内容丢掉。只要备份的寄存器和待机电路坚持供电。

进入待机形式

关于怎么进入待机形式,详见表12。 能够经过设置独立的操控位,挑选以下待机形式的功用:

● 独立看门狗(IWDG):可经过写入看门狗的键寄存器或硬件挑选来发动IWDG。一旦发动了独立看门狗,除了体系复位,它不能再被中止。

● 实时时钟(RTC):经过备用区域操控寄存器(RCC_BDCR)的RTCEN位来设置。

● 内部RC振荡器(LSI RC):经过操控/状况寄存器(RCC_CSR)的LSION位来设置。

● 外部32.768kHz振荡器(LSE):经过备用区域操控寄存器(RCC_BDCR)的LSEON位设置。 退出待机形式。

当一个外部复位(NRST引脚)、IWDG复位、WKUP引脚上的上升沿或RTC闹钟事情的上升沿产生时,微操控器从待机形式退出。从待机唤醒后,除了电源操控/状况寄存器(PWR_CSR)(见第4.4.2节),一切寄存器被复位。
责任编辑;zl

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/changshang/jieda/343504.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部