PowerMode - 待機模式
材料準備
- AmebaPro2 [ AMB82 MINI ] x 1
- Optional: Push button x 1
- Optional: Register 220 ohms x 1
- Optional: USB to ttl serial cable x 1
範例說明
介紹
在此範例中,開發板將示範待機模式以節省電量。 有 6 個喚醒源 系統將倒計時 5 秒,然後進入待機模式。 當喚醒源被觸發時,系統將重新啟動並再次喚醒。
下面兩個表列出了待機模式下的模塊和電路板功耗報告。 有關如何測量模塊功耗的更多信息,請參閱 Ameba FAQ。
RTL8735B 模塊功耗結果
喚醒源 | 模塊功耗 (uA) |
---|---|
待機模式 (3V3) | |
AON timer | 41.22 |
AON GPIO | 41.28 |
RTC | 41.46 |
PON GPIO | 41.07 |
UART/Serial1 | 41.32 |
Gtimer0 | 41.48 |
AMB82 MINI 開發板功耗測量
喚醒源 | 開發板耗電量測量值 (mA) | |
---|---|---|
一般模式 | 待機模式 | |
AON timer | 53.15 | 4.79 |
AON GPIO | 53.12 | 4.81 |
RTC | 53.11 | 4.75 |
PON GPIO | 55.09 | 4.87 |
UART/Serial1 | 55.61 | 4.79 |
Gtimer0 | 55.59 | 4.83 |
流程
在 “File” -> “Examples” -> “AmebaPowerMode” -> “StandbyMode” 中打開範例。
接下來是設置系統並進入電源模式。 請參考以下步驟進入待機模式。
步驟 1. 設置“WAKEUP_SOURCE”,AON定時器:0; AON GPIO: 1; RTC:2,PON GPIO:3,UART/Serial1:4,Gtimer0:5。
步驟 2. 設置喚醒源。 有 6 個喚醒源,每個都有自己的設置。
對於 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”。
對於 PON GPIO,在“#elif (WAKEUP_SOURCE == 3)”部分,設置“WAKUPE_SETTING”。 範例中的“WAKUPE_SETTING”是Pin,可以是0到11。GPIO引腳設置為高準位觸發,請參考下面的連接。
對於 UART/Serial1,無需設置。 但是USB 到 ttl serial cable Tx(綠色)和 Rx(白色)引腳需要連接到 Serial1 Rx 和 Tx 引腳。 請參考以下連接。 (紅色電源5V/3.3V,黑色接地)
對於 Gtimer0,在“#elif (WAKEUP_SOURCE == 5)”部分,設置“SLEEP_DURATION”。 “SLEEP_DURATION”是以秒為單位的定時器睡眠持續時間。
步驟 3. 啟動待機模式。 此步驟只有 1 個可選設置。 當喚醒源設置為 RTC 時,使用“PowerMode.start(1970, 1, 1, 0, 0, 0);” 替換“PowerMode.start();” 用於設置開始時間。 (默認為 1970.1.1 00:00:00)。
所有定時器將在持續時間結束時自動喚醒,所有 GPIO 引腳必須按下按鈕來高準位觸發,UART 需要通過 USB-ttl cable 通過 Serial1 提供輸入。
正確的開機、進入Standby、重啟週期如下圖。