PowerMode - 深度睡眠模式
材料準備
- AmebaPro2 [ AMB82 MINI ] x 1
- Optional: Push button x 1
- Optional: Register 220 ohms x 1
範例說明
介紹
在此範例中,開發板將示範深度睡眠模式以節省電量。 深度睡眠模式有 3 個喚醒源,分別是:AON 定時器、AON GPIO 和 RTC。 系統將倒數計時 5 秒,然後進入深度睡眠電源模式。 當喚醒源被觸發時,系統將重新啟動並再次喚醒。
下面兩個表列出了深度睡眠模式下的模塊和電路板功耗報告。
RTL8735B 模塊功耗結果
喚醒源 | 模塊功耗 (uA) |
---|---|
深度睡眠模式 (3V3) | |
AON timer | 32.78 |
AON GPIO | 40.98 |
RTC | 41.08 |
AMB82 MINI 開發板功耗
喚醒源 | 開發板功耗測量 (mA) | |
---|---|---|
一般模式 | 深度睡眠模式 | |
AON timer | 53.01 | 4.59 |
AON GPIO | 52.97 | 4.74 |
RTC | 53.05 | 4.65 |
流程
在 “File” -> “Examples” -> “AmebaPowerMode” -> “DeepSleepMode” 中打開範例。
接下來是設置系統並進入電源模式。 請參考以下步驟進入深度睡眠模式。
步驟 1. 設置“WAKEUP_SOURCE”,AON定時器:0; AON GPIO: 1; RTC:2。
步驟 2. 設置喚醒源。 有 3 個喚醒源,每個都有自己的設置。
對於 AON 計時器,在“#if (WAKEUP_SOURCE == 0)”部分,設置“CLOCK”和“SLEEP_DURATION”。 “CLOCK”可以是 4MHz 或 100kHz。 “SLEEP_DURATION”單位是秒。
對於 AON GPIO,在“#elif (WAKEUP_SOURCE == 1)”部分,設置“WAKUPE_SETTING”。 本範例中的“WAKUPE_SETTING”是Pin,可以是21或22。GPIO引腳設置為高準位觸發,請參考以下連接。
對於 RTC,在“#elif (WAKEUP_SOURCE == 2)”部分,設置“ALARM_DAY”、“ALARM_HOUR”、“ALARM_MIN”或“ALARM_SEC”。 所有數值都設置了 RTC 喚醒的持續時間。 範圍是“1day, 0h, 0m, 0s”到“365day, 23h, 59min, 59s”。
步驟 3. 啟動深度睡眠模式。 此步驟只有 1 個可選設置。 當喚醒源設置為 RTC 時,使用“PowerMode.start(1970, 1, 1, 0, 0, 0);” 來替換“PowerMode.start();”。 (默認為 1970.1.1 00:00:00)。
所有定時器將在持續時間結束時自動喚醒,所有 GPIO 引腳必須按下按鈕來高準位觸發。
正確的開機、進入深度睡眠、重啟週期如下圖。