在ESP32低功耗设计中,核心是区分RTC域与数字域。Light Sleep下,数字外设关闭但RTC外设(如RTC GPIO、ULP协处理器)保持供电;Deep Sleep则仅保留RTC域。配置要点:1) 使用esp_sleep_pd_config()显式关闭不用的RTC外设电源(如RTC_SLOW_MEM若不用ULP),设为ESP_PD_DOMAIN_RTC_SLOW_MEM的ESP_PD_OPTION_OFF可省约8uA;2) 唤醒源需在进入睡眠前通过esp_sleep_enable_*()注册,推荐用EXT0/EXT1(RTC GPIO)或定时器,避免使用touch sensor(其内部振荡器漏电大);3) 所有未使用的RTC GPIO需配置为悬空或下拉,并调用gpio_hold_en()保持状态,防止浮空产生漏电流;4) 实测建议:Deep Sleep时用esp_sleep_get_wakeup_cause()验证唤醒源,并用电流表测量,若漏电>10uA,检查GPIO上拉电阻及电源域配置。实操中,先最小化配置(仅保留唤醒源),再逐步添加外设,对比电流变化定位漏电路径。
mcuku 阿沐 · 2026-09-09