便携式储能wifi模块乐鑫代理商ESP32-C3低功耗模式Modem-sleep,在低功耗方面,ESP32-C3 采用了高效、灵活的功耗管理技术,可以在功耗控制、唤醒延迟和不同唤醒源之间实现佳平衡。便携式储能wifi模块乐鑫代理商ESP32-C3 的主处理器支持4种功耗模式,既可以满足物联网应用的不同场景需求,已成功地运用到了智能照明等不同的物联网项目,也能通过严格的功耗认证测试。针对这些功耗模式,便携式储能wifi模块乐鑫代理商ESP32-C3 提供了多种低功耗解决方案,读者可以结合具体需求选择功耗模式并进行配置。4种功耗模式如下:
(1)Active模式。CPU和芯片射频处于工作状态,芯片可以接收、发射和侦听信号。
(2)Modem-sleep 模式。CPU 可运行,系统时钟频率可配置,Wi-Fi 及 Bluetooth LE 的基带和颁被关闭,但 Wi-Fi或 Bluetooth LE 可保持连接。
(3)Light-sleep 模式。CPU 暂停运行,Wi-Fi 及 Bluetooth LE 的基带和频被关闭,RTC存储和RTC 外设可以工作,MAC、主机、RTC 定时器或外部中断都可以唤醒芯片。在自动进入Light-sleep 模式下,Wi-Fi 或 Bluetooth LE 可保持连接。
(4)Deep-sleep 模式。CPU 和大部分外设都会掉电,Wi-Fi及 Blutooth LE 的基带和射频被关闭,只有RTC存储器和 RTC 外设可以工作。
在默认情况下,便携式储能wifi模块乐鑫代理商ESP32-C3在复位后将进入 Active 模式。在Active 模式下,ESP32-C3 所有部件都正常工作。当不需要CPU一直工作时,如等待外部活动唤醒,系统可以进入多种低功耗模式。读者可根据具体功耗、唤醒延迟和可用唤醒源需求,选择不同的功耗模式。除了Active模式,其他三种功耗模式都属于低功耗模式。
Modem-sleep 模式
目前ESP32-C3的Modem-sleep 仅工作在 Wi-Fi Station 连接和Bluetooth LE 连接情况下,在Wi-Fi Station 连接路由器和 Bluetooth LE建立连接后,Modem-sleep 模式生效。在该模式生效后,ESP32-C3会周期性地在Active模式和Modem-sleep 模式之间进行切换。在Modem-sleep模式下,Wi-Fi和 Bluetooth LE 的基带受时钟门限控制或被关闭。射频模块被关闭后,系统可以自动被唤醒,没有唤醒延迟,且无须配置唤醒源。从 Modem-sleep 模式唤醒后,便携式储能wifi模块乐鑫代理商ESP32-C3的射频模块便开始工作,从 Modem-sleep 模式切换为Active 模式,功耗也会随之升高。
ESP32-C3通过 Wi-Fi 的 DTIM Beacon 机制与路由器保持连接。在 Modem-sleep 模式下,便携式储能wifi模块乐鑫代理商ESP32-C3会在两次 DTIM Beacon 的间隔时间内关闭射频模块,达到省电效果,在下次 DTIM Beacon 到来前自动唤醒射频模块。睡眠时间由路由器的 DTIM Beacon 时间和ESP32-C3的isten_interval参数共同决定。在 Modem-sleep 模式下,ESP32-C3通过路由器与 Wi-Fi保持连接,并通过路由器接收来自智能手机或者服务器端的交互信息。
DTIM(Delivery Traffic Indication Message)通常可以表示使用路由器时的数据发送频率,般情况下,路由器的DTIM Beacon间隔时间为100~1000ms。ESP32-C3通过 Bluetooth LE的Connection Event 与对端保持连接,在Modem-sleep 模式下ESP32-C3 会在两次 Connection Event 的间隔时间内关闭射频模块,达到省电效果,在下次Connection Event到来前被自动唤醒,睡眠时间由 Bluetooth LE 的连接参数决定。
Modem-sleep一般用于CPU持续处于工作状态并需要保持 Wi-Fi或Bluetooth LE 连接的低功耗应用场景。例如,在使用便携式储能wifi模块乐鑫代理商ESP32-C3 本地语音唤醒功能时,CPU 需要持续采集和处理音频数据。
1.Wi-Fi的Modem-sleep 模式
在开发中,通过esp_wifi_set_ps()函数可以配置 Wi-Fi的Modem-sleep 模式,该函数的参数 type的可选值如下:
(1)WIFI_PS_NONE。不使用Modem-sleep 模式
(2)WIFI_PS_MIN_MODEM。ESP32-C3 接收 Beacon 的间隔时间与路由器 DTIM Beacon 的间隔时间相同,即1个路由器间隔时间。
(3)WIFI_PS_MAX MODEM。ESP32-C3 接收 Beacon 的间隔时间可通过程序进行配置,由间隔周期wifi_sta_config t结构体中的listen_interval 决定,单位为路由器DTIM Beacon的间隔时间,默认值为3(即3个路由器 Beacon 的间隔时间)。代码如下:
1.typedef enum {
2.WIFI_PS_NONE,/*< No power save*/
3.WIFI_PS_MIN_MODEM,/*< Minimum modem power saving.In this moder
4.station wakes up to receive beacon every DTIM period*/
5.WIFI_PS_MAX_MODEM,/*< Maximum modem power saving.In this mode,
6.interval to receive beacons is determined by the
7.listen_interval parameter in wifi_sta_config t*/
8.}wifi ps_type_t;
9.
10.esp_err_t esp_wifi_set_ps(wifi_ps type t type);
当参数 type为WIFI_PS_MAX_MODEM 时,可通过如下的方法配置便携式储能wifi模块乐鑫代理商ESP32-C3 接收 Beacon的间隔时间listen_interval:
1.#define LISTEN_INTERVAL 3
2.wifi_config_t wifi_config = {
3. .sta={
4. .ssid ="SSID",
5. .password ="Password",
6. .listen interval= LISTEN INTERVAL,
7. },
8.},
9.ESP_BRROR_CHECK(esp_wifi_set_mode(WIFI_MODE_STA));
10.ESP_ERROR_CHECK(esp_wifi_set_config(ESP_IF_WIPI_STA, &wifi_config));
11.ESP_ERROR_CHECK(esp_wifi_start ());
12.
13.ESP_ERROR CHECK(esp_wifi_set_ps (WIFI_PS_MAX_MODEM));
2.Bluetooth LE的 Modem-sleep 模式
Bluetooth LE 的 Modem-sleep 模式需要运行 idf.py menuconfig 命令打开 Espressif loT Development Framework Configuration 工具(之后简称配置工具),在 Component config -->Bluetooth --> Bluetooth controller (ESP32 C3 Bluetooth Iow Energy) --> MODEM SLEEP options 下使用 Bluetooth modem sleep; Bluetooth Modem sleep Mode 1和Bluetooth low power clock 使用默认配置即可。