Wakeup from deep sleep mode using GPIO interrupt is rebooting the device

Namrata Vaishnav
Posts: 3
Joined: Wed Jul 10, 2024 10:59 am

Wakeup from deep sleep mode using GPIO interrupt is rebooting the device

Postby Namrata Vaishnav » Wed Jul 10, 2024 12:20 pm

I have tried to run the default example of deep sleep using GPIO wakeup mode in ESP8684-WROOM-05. In that case i have enabled GPIO wakeup in menuconfig and set the default wakeup pin and mode.
My device is entering in deep sleep mode when i give interrupt using GPIO pin + GND and going to wakeup state when i give interrupt to pin +3v3(VCC). But after wakeup mode board is continuously getting booted unit i keep pin to VCC. Why this happen? I think the behavior of GPIO_PIN +GND is working properly and same should happen with GPIO_PIN + VCC. Board should get rebooted only once when it switches from deep sleep to wakeup. Here are my logs for reference.
Attachments
gpio_wakeup_issue_in_deep_sleep_mode.txt
(22.49 KiB) Downloaded 61 times

ESP_Sprite
Posts: 9709
Joined: Thu Nov 26, 2015 4:08 am

Re: Wakeup from deep sleep mode using GPIO interrupt is rebooting the device

Postby ESP_Sprite » Thu Jul 11, 2024 3:31 am

You mean this example? That's expected behaviour. The main firmware goes immediately into deep sleep mode and the CPU will get woken up when (depending on configuration) the selected GPIO has a high level. Note: not when it goes from a low to a high level; simply being at a high level is enough. That means that the firmware will wake up and go to sleep continuously when you apply a high level. If this is not what you want, I'd suggest adding code in the firmware that waits until the GPIO is low again before going into deep sleep.

Namrata Vaishnav
Posts: 3
Joined: Wed Jul 10, 2024 10:59 am

Re: Wakeup from deep sleep mode using GPIO interrupt is rebooting the device

Postby Namrata Vaishnav » Mon Aug 12, 2024 7:06 am

ESP_Sprite wrote:
Thu Jul 11, 2024 3:31 am
You mean this example? That's expected behaviour. The main firmware goes immediately into deep sleep mode and the CPU will get woken up when (depending on configuration) the selected GPIO has a high level. Note: not when it goes from a low to a high level; simply being at a high level is enough. That means that the firmware will wake up and go to sleep continuously when you apply a high level. If this is not what you want, I'd suggest adding code in the firmware that waits until the GPIO is low again before going into deep sleep.
Hi,
Thanks for reply. My query is like when i use HIGH_LEVEL_WAKEUP (means vcc= wakeup) and pin is continuous high the board is continuously getting wakeup event and due to that it is getting rebooted. I want to avoid those functionality. I want behavior is like when pin is high(continuously-connected to vcc) at that time only once the wakeup will call and when it goes again low deep sleep get start. I am using ESP32C2 board. Please guide me how can i implement these functionality?

ESP_Sprite
Posts: 9709
Joined: Thu Nov 26, 2015 4:08 am

Re: Wakeup from deep sleep mode using GPIO interrupt is rebooting the device

Postby ESP_Sprite » Mon Aug 12, 2024 7:19 am

Then after a wake-up you need to wait until that GPIO goes low again. You can either stay awake until that happens, or you can go to sleep and set the wakeup source to wake you up when that GPIO is low; when you wake up you can reset it to wake you when the GPIO is high and go to sleep again.

Who is online

Users browsing this forum: MicroController and 135 guests