便攜式儲能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)通??梢员硎臼褂寐酚善鲿r的數據發送頻率,般情況下,路由器的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 使用默認配置即可。