ESP32 是設(shè)計(jì)用來應(yīng)對移動設(shè)備、可穿戴電子設(shè)備和物聯(lián)網(wǎng)(IoT)芯片,作為一款超低功耗芯片,具有許多特定,比如精細(xì)的時(shí)鐘門控、節(jié)能模式和動態(tài)電壓調(diào)整等。
在使用超低功耗的IoT傳感器Hub應(yīng)用時(shí),ESP32只有在某些特定情況下才會被周期性喚醒,能夠極大地降低消耗。通過調(diào)整射頻放大器的輸出功率,還能實(shí)現(xiàn)通信距離、數(shù)據(jù)傳輸速度和功耗的最佳平衡。
ESP32先進(jìn)的電源管理技術(shù),可以在不同的功耗模式之間切換,樂鑫目前的ESP系列芯片都支持三種低功耗模式:
Modem-sleep 模式:CPU 可運(yùn)行,時(shí)鐘頻率可配置。Wi-Fi 及 Bluetooth LE 的基帶和射頻關(guān)閉, 但 Wi-Fi 或 Bluetooth LE 可保持連接。
Light-sleep 模式:CPU 暫停運(yùn)行。任何喚醒事件(MAC、主機(jī)、RTC 定時(shí)器或外部中斷)都會喚 醒芯片。Wi-Fi 或 Bluetooth LE 可保持連接。
Deep-sleep 模式:CPU 和大部分外設(shè)都會掉電,只有 RTC 存儲器處于工作狀態(tài)。Wi-Fi 連接數(shù)據(jù) 存儲在 RTC 中。RTC 時(shí)鐘定時(shí)器或RTC GPIO 可以將芯片從 Deep-sleep 模式中喚醒。
01
02
03
04
不同模式下的ESP32功能框圖
其中在 Modem-sleep 模式和 Light-sleep 模式下WiFi、藍(lán)牙可以保持連接(詳細(xì)功耗數(shù)據(jù)可以參考規(guī)格書)以ESP32為例,功耗可以參考下表
Light-sleep 模式下保持連接
硬件準(zhǔn)備
ESP32/ESP32C3/ESP32S3系列模組既支持外置 32.768 kHz 的時(shí)鐘振蕩器作為 RTC 睡眠時(shí)鐘,也支持外 部激勵信號(如有源晶振)作為 RTC 睡眠時(shí)鐘。外置 32.768 kHz 晶振的電路如下圖所示:
32.768 kHz 晶振選擇要求:
等效內(nèi)阻 (ESR) ? 70 K?。
兩端負(fù)載電容值根據(jù)晶振的規(guī)格要求進(jìn)行配置。
并聯(lián)電阻 R18 用于偏置晶振電路,電阻值要求 5 M? < R18 ? 10 M?。
ESP32-D0WD-V3 外接 32.768 kHz 晶振時(shí),并聯(lián)的電阻必須上件;ESP32 系列其他芯片建議預(yù)留。
軟件配置
編譯時(shí)可使用CONFIG_PM_ENABLE選項(xiàng)啟用電源管理功能。
啟用電源管理功能將會增加中斷延遲。額外延遲與多個(gè)因素有關(guān),例如:CPU頻率、單/雙核模式、是否需要進(jìn)行頻率切換等。CPU 頻率為 240 MHz 且未啟用頻率調(diào)節(jié)時(shí),最小額外延遲為0.2 us;如果啟用頻率調(diào)節(jié),且在中斷入口將頻率由40 MHz 調(diào)節(jié)至 80 MHz,則最大額外延遲為 40 us。
通過調(diào)用 esp_pm_configure()函數(shù)可以在應(yīng)用程序中啟用動態(tài)調(diào)頻(DFS) 功能和自動Light-sleep 模式。此函數(shù)的參數(shù) esp_pm_config_t 定義了頻率調(diào)節(jié)的相關(guān)設(shè)置。在此參數(shù)結(jié)構(gòu)中,需要初始化以下三個(gè)字段:
Max_freq_mhz:最大CPU 頻率 (MHz),即獲取 ESP_PM_CPU_FREQ_MAX 鎖后所使用的頻率。該字段通常設(shè)置為 CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ。
Min_freq_mhz:最小CPU 頻率 (MHz),即僅獲取 ESP_PM_APB_FREQ_MAX 鎖后所使用的頻率。該字段可設(shè)置為晶振 (XTAL) 頻率值,或者 XTAL 頻率值除以整數(shù)。注意,10 MHz 是生成 1 MHz 的 REF_TICK 默認(rèn)時(shí)鐘所需的最小頻率。
Light_sleep_enable:沒有獲取任何管理鎖時(shí),決定系統(tǒng)是否需要自動進(jìn)入Light-sleep 狀態(tài) (true/false)。
如果在menuconfig中啟用了CONFIG_PM_DFS_INIT_AUTO選項(xiàng),最大 CPU 頻率將由CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ設(shè)置決定,最小 CPU 頻率將鎖定為 XTAL 頻率。
需要注意的是:
自動 Light-sleep 模式基于FreeRTOS Tickless Idle功能,因此如果在menuconfig 4中沒有啟用CONFIG_FREERTOS_USE_TICKLESS_IDLE選項(xiàng),在請求自動 Light-sleep 時(shí),esp_pm_configure()將會返回 ESP_ERR_NOT_SUPPORTED錯誤。Light-sleep 狀態(tài)下,外設(shè)設(shè)有時(shí)鐘門控,不會產(chǎn)生來自GPIO 和內(nèi)部外設(shè)的中斷。睡眠模式文檔中所提到的喚醒源可用于從 Light-sleep 狀態(tài)觸發(fā)喚醒。
Menuconfig配置
藍(lán)牙還需要配置 Modem-sleep 相關(guān)配置
具體可以參考ESP-IDF下的 power_save 例程
如果您對 樂鑫Light-sleep保持WiFi連接感興趣,或?qū)で笊虡I(yè)項(xiàng)目合作,請后臺私信聯(lián)系。
-
物聯(lián)網(wǎng)
+關(guān)注
關(guān)注
2910文章
44778瀏覽量
374660 -
ESP32
+關(guān)注
關(guān)注
18文章
971瀏覽量
17367
發(fā)布評論請先 登錄
相關(guān)推薦
評論