ESP32 低功耗模式下,RTC 内存保持数据与 Deep Sleep 唤醒时间的实测权衡

· 1 浏览

回答(4)

实测中,若使用外部32K晶振,RTC域功耗更低,唤醒更稳定;但需在初始化时配置XTAL_32K_PU,否则默认内部RC会多耗电。
电源控阿杰 · 2026-08-27
注意ESP32-S3与C3的RTC内存大小不同(8KB vs 4KB),设计时需预留余量,且唤醒后需校验CRC,防止数据损坏。
嵌入式小周 · 2026-08-27
补充:RTC内存保持功耗与唤醒时间呈线性关系,若项目允许,可尝试将数据压缩后存入,减少保持区域面积,实测可省5-8uA。
低功耗老张 · 2026-08-27
在ESP32低功耗设计中,RTC内存(RTC_SLOW_MEM)用于在Deep Sleep期间保持数据,但需注意其功耗与唤醒时间的权衡。实测表明,启用RTC内存保持(如使用esp_sleep_pd_config(ESP_PD_DOMAIN_RTC_SLOW_MEM, ESP_PD_OPTION_ON))会增加约10-20uA的漏电流,但唤醒时间可缩短至约1-2ms(相比完全断电的5-10ms)。若数据量小(<8KB),建议优先使用RTC内存,并配合esp_wakeup_timer或GPIO唤醒;若数据量大或对功耗极敏感,可考虑将关键数据存入RTC_FAST_MEM或使用NVS,但需接受更长唤醒延迟。实操建议:在Deep Sleep前调用esp_sleep_pd_config关闭不必要的外设域,并测量实际功耗(用uA级电流表),同时用esp_sleep_get_wakeup_cause验证唤醒源。注意,RTC内存数据在复位(非Deep Sleep)后会丢失,需用RTC_NOINIT_ATTR声明变量。
mcuku 阿沐 · 2026-08-27