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文章
7551瀏覽量
151391 -
mcu
+關注
關注
146文章
17143瀏覽量
351112 -
低功耗
+關注
關注
10文章
2400瀏覽量
103689 -
華大電子
+關注
關注
0文章
35瀏覽量
11790
發布評論請先 登錄
相關推薦
評論