I observed weird phenomenon while entering deep sleep mode. GPIO line is configured as wakeup input, low level active.
a) When high level is applied to GPIO input, ESP enters deep sleep mode correctly. It is also woken up as soon as low (active) level appears at the input.
b) When there is low level applied to GPIO input already during esp_deep_sleep_start call, console (log) says:
[Codebox]sleep: Deep sleep request is rejected[/Codebox]
and after fraction of second interrupt watchdog is triggered.
Reason is pretty obvious - inside esp_deep_sleep_start function, there is infinite loop just after essential RTC code is executed, so CPU should wait there to die. However, when GPIO is in active (low) state, the same infinite loop runs, causing starvation and watchdog reaction.
The problem is second scenario. From functional point of view it is OK, system resets / restarts application almost immediately. However, call to esp_reset_reason says watchdog caused system reset (ESP_RST_INT_WDT), instead of deep sleep (ESP_RST_DEEPSLEEP). For application, it's impossible to distinguish second scenario and other bugs, causing interrupt watchdog triggering.
ESP32C3 deep sleep
Re: ESP32C3 deep sleep
@ pawel.cern. I am experiencing something similar. But it happens EVERY-OTHER_TIME the EXT0 is triggered.
Did you resolve your issue?
Here are the details of what I am seeing: posting.php?mode=edit&f=2&p=123786
Thanks!
Did you resolve your issue?
Here are the details of what I am seeing: posting.php?mode=edit&f=2&p=123786
Thanks!
Who is online
Users browsing this forum: Baidu [Spider] and 88 guests