ESP-S3 deep sleep not functional
Posted: Fri May 13, 2022 11:55 am
Hi,
I am using this code on ESP32-S3-DevKitC-1
https://pastebin.com/4WyxerTX
Note Line 54 esp_sleep_config_gpio_isolate() removing this does not make a difference.
I cannot get deep sleep to work. The device never enters deep sleep. Instead the WDT kicks after 5 seconds. If WDT for IDLE is disabled, the device hangs indefinitely. The WDT stacktrace reports the device is stuck at
I am using
Looking up Line 496 on https://github.com/espressif/esp-idf/bl ... ep_modes.c that line appears to be empty. Probably due to the #ifdef mess! Likely candidates are
rtc_clk_cpu_freq_set_config and call_rtc_sleep_start calls
I have tested to change the CPU frequency to 80/160/240MHz. I have tested on a devkitC-1 and on custom board with and without external RTC. I have tested to use esp_sleep_enable_ext1_wakeup instead of timer-wakeup. Nothing changes the fact that esp_deep_sleep_start() never actually enters deep sleep.
Am I doing it wrong?
Edit:
An interesting observation; after calling esp_deep_sleep_start(), and waiting 5 seconds, the watchdog triggers (evident by log output), but it fails to reset the device. Instead, the watchdog timeout keeps triggering every 5 seconds. This is not how a WDT is supposed to work, is it?
I am using this code on ESP32-S3-DevKitC-1
https://pastebin.com/4WyxerTX
Note Line 54 esp_sleep_config_gpio_isolate() removing this does not make a difference.
I cannot get deep sleep to work. The device never enters deep sleep. Instead the WDT kicks after 5 seconds. If WDT for IDLE is disabled, the device hangs indefinitely. The WDT stacktrace reports the device is stuck at
Code: Select all
0x40378bce: esp_deep_sleep_start at /home/username/esp/esp-idf/components/esp_hw_support/sleep_modes.c:496
Code: Select all
idf.py --version
ESP-IDF v4.4-dev-3235-g3e370c4296
rtc_clk_cpu_freq_set_config and call_rtc_sleep_start calls
I have tested to change the CPU frequency to 80/160/240MHz. I have tested on a devkitC-1 and on custom board with and without external RTC. I have tested to use esp_sleep_enable_ext1_wakeup instead of timer-wakeup. Nothing changes the fact that esp_deep_sleep_start() never actually enters deep sleep.
Am I doing it wrong?
Edit:
An interesting observation; after calling esp_deep_sleep_start(), and waiting 5 seconds, the watchdog triggers (evident by log output), but it fails to reset the device. Instead, the watchdog timeout keeps triggering every 5 seconds. This is not how a WDT is supposed to work, is it?