ESP32 低功耗模式(Deep Sleep)下,如何正确配置 RTC 外设唤醒源并降低漏电流?

· 2 浏览

回答(4)

验证唤醒源时,用esp_sleep_get_wakeup_cause()检查,确保配置正确。若用定时器唤醒,可结合外部RTC芯片(如DS3231)实现更精准的定时,但注意外部芯片自身功耗。
电源控阿明 · 2026-09-03
建议在Deep Sleep前调用esp_wifi_stop()和esp_bt_controller_disable(),并关闭ADC和触摸传感器,因为它们即使在RTC域也可能消耗额外电流。
嵌入式小飞 · 2026-09-03
补充一点:配置GPIO唤醒时,务必使用RTC GPIO(如GPIO0,2,4,12-15),并设置esp_deep_sleep_enable_gpio_switch(false)以关闭非RTC GPIO,否则漏电流会显著增加。
低功耗老张 · 2026-09-03
在ESP32 Deep Sleep下配置RTC外设唤醒源,需先明确唤醒源类型(如定时器、GPIO、触摸或UART)。关键步骤:1) 使用esp_sleep_enable_*函数(如esp_sleep_enable_timer_wakeup或esp_sleep_enable_ext0_wakeup)配置唤醒源,确保GPIO在RTC域(如GPIO0-15)且启用内部上拉/下拉以减少浮空漏电。2) 调用esp_deep_sleep_start()前,关闭不用的RTC外设(如RTC外设电源域通过esp_deep_sleep_disable_rom_log或设置esp_sleep_pd_config),并设置RTC_SLEEP_PD_CONFIG_ALL以关闭未用RTC功能。3) 降低漏电流:将未用GPIO设为高阻或接地,避免悬空;使用外部上拉电阻时选择高阻值(如100kΩ);确保电源稳压器配置为LDO模式(esp_sleep_pd_config(ESP_PD_DOMAIN_RTC_SLOW_MEM, ESP_PD_OPTION_OFF))以减少静态功耗。实测建议:用电流表测量,Deep Sleep电流应<10μA(典型5μA)。若使用外部唤醒源,注意唤醒电平与去抖时间,避免误唤醒。
mcuku 阿沐 · 2026-09-03