我爱编程

运动控制器38:STM32的电源管理

2018-02-04  本文已影响0人  吴松乾

电源

主要有3中电源

  1. VREF+和VREF-,引脚少的芯片没有此两脚,芯片多的,VREF-接VSSA,VREF+接2.4V~VDDA,此VDDA和VSSA可以和VSS和VDD是同一引脚。
  2. VDD和VSS:范围:2.0V到3.6V
  3. VBAT,可选连接VDD,也可以用电池,此位保护32.768的晶振和备份寄存器中的值。
    4.电压调节器
    • 运转模式下,给内核提供1.8V电压
    • 停止模式下,提供1.8V用来保存寄存器和SRAM的值
    • 待机模式下,无输出,寄存器和SRAM都会丢失,只保留备份域。

电源管理器

低功耗模式

用大白话来说,低功耗有三种:

  1. 打个盹:睡眠模式,在此种模式下,只是CPU时钟关了在睡觉,任何的中断和唤醒事件都可以唤醒CPU工作。
  2. 深睡:停机模式,电灯关闭,门锁锁上,准备深睡,只有在外部敲门的时候可以叫醒,高速时钟都关闭,任意外部中断可唤醒。
  3. 死睡:只能靠WKUP引脚,RTC闹钟,复位引脚和看门狗强制复位才能唤醒。

降低系统时钟

时钟越快,功耗越大,可以根据需要适度的降低SYSCLK,HCLK,PCLK1,PCLK2的时钟

外部时钟的控制

也可以关闭一些暂时不用的外设的时钟,AHB,APB的时钟可以整体关闭。

睡眠模式

进入

可以设置为马上睡眠和等所有中断服务程序执行完成后再睡模式。给一条指令马上就可以生效了。

退出

停止模式

进入

先:系统控制寄存器设置SLEEPDEEP,电源控制清除PDDS和设置电源调节器的模式以后,
再:确保所有的中断标志都清除了
然后WFI和WFE指令,进入停止模式

退出

外部中断线,WFI则中断线设置为中断模式,WFE则设置为事件模式。

待机模式

待机模式可以足一关掉和设置看门狗,RTC,内部RC和外部32.768

进入

同停止模式,先:系统控制寄存器设置SLEEPDEEP,电源控制清除PDDS和设置电源调节器的模式以后,等待WFI和WFE指令,进入待机模式。

退出

WKUP引脚的上升沿、 RTC闹钟事件的上升沿、 NRST引脚上外部复位、 IWDG复位。

自动唤醒

电源相关的库函数

void  PWR_BackupAccessCmd (FunctionalState NewState)  //使能备份寄存器
void  PWR_ClearFlag (uint32_t PWR_FLAG)  //是唤醒还是待机状态
void  PWR_DeInit (void)  //
void  PWR_EnterSTANDBYMode (void) //进入待机模式 
void  PWR_EnterSTOPMode (uint32_t PWR_Regulator, uint8_t PWR_STOPEntry)  
//进入停止模式,1.8V是ON还是低功耗模式可选,中断OR事件可选
FlagStatus  PWR_GetFlagStatus (uint32_t PWR_FLAG)  //唤醒,待机,还是PVD输出
void  PWR_PVDCmd (FunctionalState NewState)  //PVD检测
void  PWR_PVDLevelConfig (uint32_t PWR_PVDLevel)  //PVD设置
void  PWR_WakeUpPinCmd (FunctionalState NewState) //通过WKUP引脚唤醒使能
上一篇 下一篇

猜你喜欢

热点阅读