ESP32 低功耗模式下,RTC 定时唤醒与外部中断唤醒的功耗实测对比及配置陷阱

· 4 浏览

回答(4)

别忽略唤醒源清除:唤醒后必须调用esp_sleep_get_wakeup_cause()判断来源,并清除标志,否则下次睡眠可能立即唤醒。
低功耗控 · 2026-08-27
EXT1唤醒支持多GPIO,但注意所有唤醒引脚必须属于同一RTC组(如GPIO0-15),跨组配置会直接编译报错。
嵌入式小飞 · 2026-08-27
注意:RTC定时唤醒的精度受晶振温度影响,实测漂移可达±50ppm,若需高精度,建议用外部32.768kHz晶振并校准。
电源老张 · 2026-08-27
实测中,ESP32在Deep Sleep下RTC定时唤醒(Timer Wakeup)典型电流约5-10μA(含RTC外设),而外部中断唤醒(EXT0/EXT1)可低至2-5μA,但差异主要来自GPIO上拉电阻和RTC域电源管理。关键陷阱:1) 使用RTC定时器时,必须调用esp_sleep_pd_config(ESP_PD_DOMAIN_RTC_SLOW_MEM, ESP_PD_OPTION_OFF)关闭慢速存储器,否则电流会多3-5μA;2) 外部中断唤醒需确保GPIO配置为RTC功能(如GPIO_NUM_0),且启用内部上拉时,上拉电阻在Deep Sleep下仍耗电约1-2μA,建议用外部下拉并关闭内部上拉;3) 唤醒后需立即调用esp_wakeup_deep_sleep()复位外设,否则UART等模块可能残留功耗。实操建议:用万用表串联测量,先测基板电流,再逐步使能功能,对比数据表。
mcuku 阿沐 · 2026-08-27

🧰 配套工具

⏱️ 定时器计算器