mirror of
https://github.com/meshtastic/firmware.git
synced 2025-08-17 18:53:30 +00:00
(ESP-32S) Fix "critical error 3" after deep-sleep (#3685)
This commit is contained in:
parent
820c5dc8c5
commit
f6cfdfe881
@ -157,6 +157,10 @@ void initDeepSleep()
|
|||||||
for (uint8_t i = 0; i <= GPIO_NUM_MAX; i++) {
|
for (uint8_t i = 0; i <= GPIO_NUM_MAX; i++) {
|
||||||
if (rtc_gpio_is_valid_gpio((gpio_num_t)i))
|
if (rtc_gpio_is_valid_gpio((gpio_num_t)i))
|
||||||
rtc_gpio_hold_dis((gpio_num_t)i);
|
rtc_gpio_hold_dis((gpio_num_t)i);
|
||||||
|
|
||||||
|
// ESP32 (original)
|
||||||
|
else if (GPIO_IS_VALID_OUTPUT_GPIO((gpio_num_t)i))
|
||||||
|
gpio_hold_dis((gpio_num_t)i);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
@ -258,14 +262,17 @@ void doDeepSleep(uint32_t msecToWake, bool skipPreflight = false)
|
|||||||
}
|
}
|
||||||
#ifdef BUTTON_PIN
|
#ifdef BUTTON_PIN
|
||||||
// Avoid leakage through button pin
|
// Avoid leakage through button pin
|
||||||
pinMode(BUTTON_PIN, INPUT);
|
if (GPIO_IS_VALID_OUTPUT_GPIO(BUTTON_PIN)) {
|
||||||
gpio_hold_en((gpio_num_t)BUTTON_PIN);
|
pinMode(BUTTON_PIN, INPUT);
|
||||||
|
gpio_hold_en((gpio_num_t)BUTTON_PIN);
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
|
if (GPIO_IS_VALID_OUTPUT_GPIO(LORA_CS)) {
|
||||||
// LoRa CS (RADIO_NSS) needs to stay HIGH, even during deep sleep
|
// LoRa CS (RADIO_NSS) needs to stay HIGH, even during deep sleep
|
||||||
pinMode(LORA_CS, OUTPUT);
|
pinMode(LORA_CS, OUTPUT);
|
||||||
digitalWrite(LORA_CS, HIGH);
|
digitalWrite(LORA_CS, HIGH);
|
||||||
gpio_hold_en((gpio_num_t)LORA_CS);
|
gpio_hold_en((gpio_num_t)LORA_CS);
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef HAS_PMU
|
#ifdef HAS_PMU
|
||||||
|
Loading…
Reference in New Issue
Block a user