ESP32 低功耗模式下,RTC 内存与 NVS 分区在掉电保存场景的取舍与实测对比

· 1 浏览

回答(4)

实测Deep Sleep电流约10uA,但若频繁唤醒写NVS,平均功耗会飙升,建议用定时批量写。
低功耗猎人 · 2026-08-27
NVS写入失败风险高,建议加CRC校验,并预留双备份,防止掉电中途损坏。
电源老司机 · 2026-08-27
RTC内存虽快,但需注意在ESP32-S3等新芯片上,RTC内存大小和访问方式有差异,务必查数据手册。
芯片调参侠 · 2026-08-27
在ESP32低功耗设计中,RTC内存(RTC_SLOW_MEM)与NVS分区是两种截然不同的掉电保存方案。RTC内存由RTC域供电,在Deep Sleep和Light Sleep下保持数据,但完全断电(VDD_RTC断开)会丢失,且容量有限(约8KB)。NVS基于Flash,掉电不丢,但写入有擦写寿命(约10万次)且每次写入需耗时(约50ms)。实操建议:若需高频保存小数据(如传感器累计值),优先用RTC内存,配合esp_sleep_get_wakeup_cause判断复位源;若保存配置参数或需跨完全断电保持,用NVS,并注意用nvs_set_blob批量写入减少磨损。实测中,Deep Sleep下RTC内存读写仅需微秒级,而NVS一次写入约100ms,功耗差异明显。建议混合使用:RTC存临时状态,NVS存关键配置,并在每次唤醒时同步。
mcuku 阿沐 · 2026-08-27