ESP32 是設(shè)計(jì)用來(lái)應(yīng)對(duì)移動(dòng)設(shè)備、可穿戴電子設(shè)備和物聯(lián)網(wǎng)(IoT)芯片,作為一款超低功耗芯片,具有許多特定,比如精細(xì)的時(shí)鐘門控、節(jié)能模式和動(dòng)態(tài)電壓調(diào)整等。
在使用超低功耗的IoT傳感器Hub應(yīng)用時(shí),ESP32只有在某些特定情況下才會(huì)被周期性喚醒,能夠極大地降低消耗。通過(guò)調(diào)整射頻放大器的輸出功率,還能實(shí)現(xiàn)通信距離、數(shù)據(jù)傳輸速度和功耗的最佳平衡。
ESP32先進(jìn)的電源管理技術(shù),可以在不同的功耗模式之間切換,樂(lè)鑫目前的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í)器或外部中斷)都會(huì)喚 醒芯片。Wi-Fi 或 Bluetooth LE 可保持連接。
Deep-sleep 模式:CPU 和大部分外設(shè)都會(huì)掉電,只有 RTC 存儲(chǔ)器處于工作狀態(tài)。Wi-Fi 連接數(shù)據(jù) 存儲(chǔ)在 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í)鐘,也支持外 部激勵(lì)信號(hào)(如有源晶振)作為 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)啟用電源管理功能。
啟用電源管理功能將會(huì)增加中斷延遲。額外延遲與多個(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。
通過(guò)調(diào)用 esp_pm_configure()函數(shù)可以在應(yīng)用程序中啟用動(dòng)態(tài)調(diào)頻(DFS) 功能和自動(dòng)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:沒(méi)有獲取任何管理鎖時(shí),決定系統(tǒng)是否需要自動(dò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 頻率。
需要注意的是:
自動(dòng) Light-sleep 模式基于FreeRTOS Tickless Idle功能,因此如果在menuconfig 4中沒(méi)有啟用CONFIG_FREERTOS_USE_TICKLESS_IDLE選項(xiàng),在請(qǐng)求自動(dòng) Light-sleep 時(shí),esp_pm_configure()將會(huì)返回 ESP_ERR_NOT_SUPPORTED錯(cuò)誤。Light-sleep 狀態(tài)下,外設(shè)設(shè)有時(shí)鐘門控,不會(huì)產(chǎn)生來(lái)自GPIO 和內(nèi)部外設(shè)的中斷。睡眠模式文檔中所提到的喚醒源可用于從 Light-sleep 狀態(tài)觸發(fā)喚醒。
Menuconfig配置
藍(lán)牙還需要配置 Modem-sleep 相關(guān)配置
具體可以參考ESP-IDF下的 power_save 例程
如果您對(duì) 樂(lè)鑫Light-sleep保持WiFi連接感興趣,或?qū)で笊虡I(yè)項(xiàng)目合作,請(qǐng)后臺(tái)私信聯(lián)系。
-
物聯(lián)網(wǎng)
+關(guān)注
關(guān)注
2931文章
46242瀏覽量
392360 -
ESP32
+關(guān)注
關(guān)注
21文章
1017瀏覽量
19254
發(fā)布評(píng)論請(qǐng)先 登錄
651主板現(xiàn)在是不是過(guò)時(shí)了?
ads7882里面的RD是不是一個(gè)同步用的時(shí)鐘脈沖?
ADS7841的采樣頻率的設(shè)置,是不是通過(guò)設(shè)置CS高低電平的時(shí)間來(lái)計(jì)算?
SN65HVS880是不是在CLK的上升沿發(fā)送數(shù)據(jù)出去的?
TLC5615芯片輸出的初始值是不是為0?
ADS8556電路,測(cè)干電池電壓得到的結(jié)果有上下0.01V的偏差,是不是太大了?
const定義的是不是常量
DAC80004的轉(zhuǎn)換速率是不是用setting time這個(gè)參數(shù)來(lái)衡量
TLV320AIC3104上電時(shí)是不是只要控制Register 43與Register 44,將其Mute就可以控制上電爆音了?
aic23b的AD和DA輸入輸出數(shù)據(jù)總在64000左右,AD設(shè)置的是16位,為什么才進(jìn)來(lái)的數(shù)都這么大,是不是配置不對(duì)?
工業(yè)相機(jī)的幀率是不是越高越好

評(píng)論