用料
- BW21-CBV-Kit x 1
- (可选)按钮 x 1
- (可选)220Ω电阻 x 1
- (可选)USB 转 TTL 串口线 x 1
示例
在这个示例中,开发板将演示待机模式以节省电力。有 6 种唤醒源,系统将倒计时 5 秒然后进入待机模式。当唤醒源被触发时,系统将重新启动并再次唤醒。
模块和开发板在待机模式下的功耗报告列在以下两个表格中。
RTL8735B 模块功耗测试结果
唤醒源 |
模块功耗(uA) |
|
待机模式(在3.3V下测量) |
AON定时器 |
41.22 |
AON GPIO |
41.28 |
RTC |
41.46 |
PON GPIO |
41.07 |
UART/串口1 |
41.32 |
Gtimer0 |
41.48 |
BW21-CVB-Kit 功耗
唤醒源 |
开发板功耗近似测量(mA) |
|
正常模式 |
AON定时器 |
53.15 |
AON GPIO |
53.12 |
RTC |
53.11 |
PON GPIO |
55.09 |
UART/串口1 |
55.61 |
Gtimer0 |
55.59 |
实现流程
- 在“文件”->“示例”->“AmebaPowerMode”->“StandbyMode”中打开示例。
-
接下来是设置系统并进入电源模式。请参阅以下步骤进入待机模式。
-
步骤 1:设置“WAKEUP_SOURCE”,AON 定时器:0;AON GPIO: 1; RTC:2,PON GPIO:3,UART/串口 1: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”是引脚号,可以是 21 或 22。GPIO 引脚设置为高电平有效,请参考以下连接图。
-
对于 RTC,在“#elif (WAKEUP_SOURCE == 2)”部分,设置“ALARM_DAY”,“ALARM_HOUR”,“ALARM_MIN”,或“ALARM_SEC”的值。所有闹钟值设置 RTC 唤醒的持续时间。范围是“1 天,0 小时,0 分,0 秒”到“365 天,23 小时,59 分,59 秒”。
-
对于 PON GPIO,在“#elif (WAKEUP_SOURCE == 3)”部分,设置“WAKUPE_SETTING”的值。在这种情况下,“WAKUPE_SETTING”是引脚号,可以是 0 到 11。GPIO 引脚设置为高电平有效,请参考以下连接图。
-
对于 UART/串口 1,无需设置。但是,需要将 USB 转 TTL 串口线的 Tx(绿色)和 Rx(白色)引脚连接到串口 1 的 Rx 和 Tx 引脚。请参考以下连接图。(电源 5V/3.3V 红色,地线黑色)
- 对于 Gtimer0,在“#elif (WAKEUP_SOURCE == 5)”部分,设置“SLEEP_DURATION”的值。“SLEEP_DURATION”是定时器睡眠持续时间,单位为秒。
-
步骤 3:启动待机模式。这一步只有一个可选设置。当唤醒源设置为 RTC 时,使用“PowerMode.start(1970, 1, 1, 0, 0, 0);”替换“PowerMode.start();”来设置开始时间。(默认是 1970 年 1 月 1 日 00:00:00)。
- 要唤醒,所有定时器将在持续时间结束后自动唤醒,所有 GPIO 引脚必须通过按下按钮激活高电平,UART 需要通过 USB-TTL 线由串口 1 输入。
- 正确的启动、进入待机和重启周期将与以下图片相同。
|