完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
1个回答
|
|
一、电源管理—实现低功耗
电源对电子设备的重要性不言而喻,它是保证系统稳定运行的基础,而保证系统能稳定运行后,又有低功耗的要求。 在很多应用场合中都对电子设备的功耗要求非常苛刻,如某些传感器信息采集设备,仅靠小型的电池提供电源,要求工作长达数年之久,且期间不需要任何维护;由于智慧穿戴设备的小型化要求,电池体积不能太大导致容量也比较小,所以也很有必要从控制功耗入手,提高设备的续行时间。 因此, 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 口均工作在高阻态。 唤醒延迟 : 芯片复位的时间 唤醒后 , 相当于芯片复位,在程序表现为从头开始执行代码。 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1627 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1550 浏览 1 评论
984 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
688 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1601 浏览 2 评论
1867浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
650浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
518浏览 3评论
536浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
506浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-24 15:12 , Processed in 0.818733 second(s), Total 79, Slave 62 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号