GPIO wakeup issue in deep sleep ESP32C6
Posted: Thu Jan 25, 2024 10:54 am
Hi,
I'm using ESP32C6. I want to configure GPIO NUM 3 as a interrupt in both case low to high / high to low.
Default the pin state is HIGH. When connected the pin goes low until disconnected from the PIN 3.
In wakeup I configured interrupt as GPIO_INTR_ANYEDGE, So I receive both interrupt cases(low to high / high to low).
In deep sleep, I have configured as below so that i receive only (high to low)interrupt and wakeup from deep sleep.
" const gpio_config_t config1 = {
.pin_bit_mask = BIT(3),
.mode = GPIO_MODE_INPUT,
.intr_type = GPIO_INTR_POSEDGE,
}
ESP_ERROR_CHECK(gpio_config(&config1));
ESP_ERROR_CHECK(esp_deep_sleep_enable_gpio_wakeup(BIT(3), ESP_GPIO_WAKEUP_GPIO_LOW));
printf("Enabling GPIO wakeup on pins low GPIO%d\n", 3);
"
Likewise I tried to change
.intr_type = GPIO_INTR_NEGEDGE,
ESP_ERROR_CHECK(esp_deep_sleep_enable_gpio_wakeup(BIT(3), ESP_GPIO_WAKEUP_GPIO_HIGH));
But no interrupt detect from deep sleep.
How can I configure this pin 3 for (low to high) interrupt?
I'm using ESP32C6. I want to configure GPIO NUM 3 as a interrupt in both case low to high / high to low.
Default the pin state is HIGH. When connected the pin goes low until disconnected from the PIN 3.
In wakeup I configured interrupt as GPIO_INTR_ANYEDGE, So I receive both interrupt cases(low to high / high to low).
In deep sleep, I have configured as below so that i receive only (high to low)interrupt and wakeup from deep sleep.
" const gpio_config_t config1 = {
.pin_bit_mask = BIT(3),
.mode = GPIO_MODE_INPUT,
.intr_type = GPIO_INTR_POSEDGE,
}
ESP_ERROR_CHECK(gpio_config(&config1));
ESP_ERROR_CHECK(esp_deep_sleep_enable_gpio_wakeup(BIT(3), ESP_GPIO_WAKEUP_GPIO_LOW));
printf("Enabling GPIO wakeup on pins low GPIO%d\n", 3);
"
Likewise I tried to change
.intr_type = GPIO_INTR_NEGEDGE,
ESP_ERROR_CHECK(esp_deep_sleep_enable_gpio_wakeup(BIT(3), ESP_GPIO_WAKEUP_GPIO_HIGH));
But no interrupt detect from deep sleep.
How can I configure this pin 3 for (low to high) interrupt?