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 引脚必须按下按钮来高准位触发。
正确的开机、进入深度睡眠、重启周期如下图。