9.低功耗(LOW POWER)
9.1.低功耗模式
在系统或电源复位以后,微控制器处于正常模式运行状态,系统所用时钟为 256KHz内部 RC振荡器输出。当 CPU不需继续运行时,可以利用进入多种低功耗模式来节省功耗。例如等待某个外部事件时,用户需要根据最低电源消耗、最快启动时间和可用的唤醒源等条件,选定一个最佳的低功耗模式。
三种低功耗模式
• 待机模式(Idle Mode)
• 停止模式(Stop Mode)
• 睡眠模式(Sleep Mode)
注:可以通过关闭未使用的外设、时钟源使功耗降到最低。此外,在运行模式下,可以通过以下方式中的一种降低功耗
• 降低系统时钟
• 关闭 APB和 AHB总线上未被使用的外设时钟。
• 合理配置 APB与 AHB 的频率关系
9.2.进入低功耗
进入低功耗模式(Sleep)步骤:
• Step1:关闭低功耗下不需要工作的模拟模块
• Step2:系统时钟切换到 LIRC_256K,并且关闭除 LIRC_256K以外的时钟源
• Step3:配置 PMU_LPDOS使其电压档位比 PMU_HPLDOS电压档位高
• Step4:把 PMU_HPXCP, PMU_HPPDI, PMU_HPPDLI配置为 0
• Step5(可选):配置 LPCON[7]为 1,并且配置 PMUBK寄存器设置低功耗下 LPLDO电压
• Step6:配置 PMU_HPV2I为 0(如果执行了 step5,则无需执行 step6)
• Step7:配置空闲的 IO为模拟模式
• Step8:进入 Sleep前的准备工作:包括配置唤醒源,初始化唤醒中断服务函数,关闭看门狗(可选),
使能进入 Sleep时自动关闭 256K内部 RC振荡器(可选),使能SLEEP_GOON_EN唤醒时不复位(可选)
• Step9:配置 LP_CON0[0]进入 Sleep
9.3.低功耗唤醒
支持多种唤醒方式
• 端口唤醒
总共有 4个 IO唤醒源(由 WKUP_CON[3:0]控制使能)这些唤醒源唤醒之后是会产生中断并且有对应的中断状态位,中断是不可屏蔽的(即有中断状态就一
定有中断)。另外,由 SLEEP_GOON_EN(SYS_CON0[30])决定用端口唤醒时是产生系统复位还是继续运行。
IO唤醒初始化步骤:配置 IO模式->配置唤醒边沿->清除唤醒标志位->中断初始化使能(根据需要)
->使能唤醒位->清除唤醒标志位->配置 LP_CON进入低功耗模式。后续只需要在进入低功耗模式之前,切换 IO模式->清除唤醒标志位->进入低功耗模式。
注意:如果选择了上升沿/下降沿唤醒,而此时 IO为高电平/低电平,则唤醒标志位马上会置 1。使能后 IO保持为高电平/低电平不会重复触发,唤醒标志位保持为 1,上升沿/下降沿才会触发。只要唤醒标志位为 1,则无法进入低功耗模式。对于唤醒 IO的电平翻转时间无法确定的应用场景,如果在主程序中使能 wkup_en/int_en,在唤醒中断函数中关闭 wkup_en/int_en,会存在以下风险:使能 wkup_en/int_en时马上触发 wkup_pend导致进入中断,然后在中断中关闭 wkup_en/int_en,退出中断后进入低功耗模式,导致无法唤醒/唤醒后不进入唤醒中断。因此唤醒中断要慎重使用。
• 内部源唤醒
支持看门狗唤醒,TIMER4中断唤醒,LVD唤醒,触摸按键唤醒,flash_wkup(STOP模式下prog_ram_done),LVDVCC_WKUP。
审核编辑:汤梓红
-
微控制器
+关注
关注
48文章
7552浏览量
151417 -
mcu
+关注
关注
146文章
17148浏览量
351191 -
低功耗
+关注
关注
10文章
2403浏览量
103702 -
华大电子
+关注
关注
0文章
35浏览量
11794
发布评论请先 登录
相关推荐
评论