規 格: |
型 號:CIU32M010、CIU32M030 |
數 量: |
品 牌: |
包 裝: |
價 格:面議 |
1. 低功耗 1.1低功耗模式 在系統或電源復位以后,微控制器處于正常模式運行狀態,系統所用時鐘為 256KHz 內部 RC 振蕩器輸出。當 CPU 不需繼續運行時,可以利用進入多種低功耗模式來節省功耗。例如等待某個外部事件時, 用戶需要根據低電源消耗、快啟動時間和可用的喚醒源等條件,選定一個低功耗模式。 三種低功耗模式 • 待機模式(Idle Mode) • 停止模式(Stop Mode) • 睡眠模式(Sleep Mode) 1.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 1.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,退出中斷后進入低功耗模式,導致無法喚醒/喚醒后不進入喚醒中斷。因此喚醒中斷要慎重使用。 • 內部源喚醒 支持看門狗(WDT)喚醒,TIMER7_TRGO 喚醒,比較器(COMP)喚醒,flash_wkup(STOP 模式下 prog_ram_done),LVDVCC 喚醒。 注: 1. 如果不使能 WKUP_CON[3:0],即只使用內部喚醒源時,進入 sleep 之前,系統時鐘要配置成選擇內部 LIRC(256KHz), LIRC 在 sleep 期間不能關閉,且把系統時鐘分頻配置成大于等于 2. 2. 使能 WKUP_CON[3:1]時,除了對應的 GPIO 可以喚醒外,還復用了內部喚醒源,其中 WKUP_CON[3]復用 LVDVCC喚醒,WKUP_CON[2]復用比較器喚醒,WKUP_CON[1]復用 TIMER7_TRGO 喚醒。即,當使能了 WKUP_CON[3:1],但對應的 GPIO 沒有配置為相應的 function 模式時,復用的內部喚醒源可以代替 GPIO 觸發喚醒。
|