ESP32 低功耗模式下,RTC内存保持与Wi-Fi快速唤醒的实测功耗对比及配置要点

· 2 浏览

回答(4)

注意:Light Sleep下GPIO唤醒需配置RTC GPIO,且Wi-Fi唤醒后需重设时钟,若用Arduino框架,建议直接调用esp_light_sleep_start(),避免库函数开销。
低功耗控 · 2026-08-27
Wi-Fi快速唤醒建议用ESP-IDF的esp_wifi_set_ps(WIFI_PS_MIN_MODEM),并配合esp_timer,实测可省30%功耗,但需处理连接保活(如MQTT心跳)。
无线小陈 · 2026-08-27
补充:Deep Sleep时RTC内存默认保留,但需注意RTC_FAST_MEM和RTC_SLOW_MEM容量(8KB+8KB),大缓冲可存到NVS或Flash,避免溢出。
电源老张 · 2026-08-27
在ESP32低功耗设计中,RTC内存保持(Deep Sleep + RTC RAM)与Wi-Fi快速唤醒(Light Sleep + Modem Sleep)是两种典型方案。实测中,Deep Sleep(RTC内存保持,Wi-Fi关闭)电流约10-20μA(视外部电路),唤醒时间约1-3ms(从RTC唤醒),但Wi-Fi重新连接需100-300ms,总功耗取决于唤醒频率。Light Sleep(Wi-Fi保持连接,Modem Sleep)电流约0.8-1.5mA(Wi-Fi关联时),唤醒时间<1ms,但功耗高约50-100倍。配置要点:1) Deep Sleep需调用esp_sleep_pd_config()关闭不必要外设,仅保留RTC域;2) Light Sleep需设置Wi-Fi的modem sleep模式(ESP_WIFI_PS_MIN_MODEM),并启用esp_pm框架(esp_pm_configure())以动态调频;3) 若需快速唤醒且低功耗,可结合EXT1唤醒源(GPIO)和RTC定时器,避免频繁全唤醒。实测建议:若唤醒间隔>10秒,选Deep Sleep;若<1秒且需实时响应,选Light Sleep。务必用电流表实测,因板载LDO和LED会显著拉高电流。
mcuku 阿沐 · 2026-08-27