Skip to content

Commit 5ebdf28

Browse files
authored
Merge pull request #7125 from dhalbert/esp-pin-alarm-fix
Fix setup of Espressif PinAlarms
2 parents dd2811e + 56d8b94 commit 5ebdf28

File tree

2 files changed

+6
-6
lines changed
  • ports/espressif

2 files changed

+6
-6
lines changed

ports/espressif/boards/adafruit_metro_esp32s2/pins.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -60,8 +60,8 @@ STATIC const mp_rom_map_elem_t board_module_globals_table[] = {
6060
{ MP_OBJ_NEW_QSTR(MP_QSTR_NEOPIXEL), MP_ROM_PTR(&pin_GPIO45) },
6161
{ MP_OBJ_NEW_QSTR(MP_QSTR_IO45), MP_ROM_PTR(&pin_GPIO45) },
6262

63-
{ MP_OBJ_NEW_QSTR(MP_QSTR_DEBUG_RX), MP_ROM_PTR(&pin_GPIO38) },
64-
{ MP_OBJ_NEW_QSTR(MP_QSTR_DEBUG_TX), MP_ROM_PTR(&pin_GPIO37) },
63+
{ MP_OBJ_NEW_QSTR(MP_QSTR_DEBUG_RX), MP_ROM_PTR(&pin_GPIO44) },
64+
{ MP_OBJ_NEW_QSTR(MP_QSTR_DEBUG_TX), MP_ROM_PTR(&pin_GPIO43) },
6565

6666
{ MP_ROM_QSTR(MP_QSTR_I2C), MP_ROM_PTR(&board_i2c_obj) },
6767
{ MP_ROM_QSTR(MP_QSTR_STEMMA_I2C), MP_ROM_PTR(&board_i2c_obj) },

ports/espressif/common-hal/alarm/pin/PinAlarm.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -215,6 +215,7 @@ void alarm_pin_pinalarm_set_alarms(bool deep_sleep, size_t n_alarms, const mp_ob
215215
if (esp_sleep_enable_ext1_wakeup(high_alarms, ESP_EXT1_WAKEUP_ANY_HIGH) != ESP_OK) {
216216
mp_raise_ValueError(translate("Can only alarm on RTC IO from deep sleep."));
217217
}
218+
esp_sleep_pd_config(ESP_PD_DOMAIN_RTC_PERIPH, ESP_PD_OPTION_ON);
218219
}
219220
size_t low_pins[2];
220221
size_t j = 0;
@@ -231,6 +232,7 @@ void alarm_pin_pinalarm_set_alarms(bool deep_sleep, size_t n_alarms, const mp_ob
231232
if (esp_sleep_enable_ext1_wakeup(1ull << low_pins[1], ESP_EXT1_WAKEUP_ALL_LOW) != ESP_OK) {
232233
mp_raise_ValueError(translate("Can only alarm on RTC IO from deep sleep."));
233234
}
235+
esp_sleep_pd_config(ESP_PD_DOMAIN_RTC_PERIPH, ESP_PD_OPTION_ON);
234236
}
235237
if (low_count > 0) {
236238
if (esp_sleep_enable_ext0_wakeup(low_pins[0], 0) != ESP_OK) {
@@ -273,16 +275,14 @@ void alarm_pin_pinalarm_set_alarms(bool deep_sleep, size_t n_alarms, const mp_ob
273275
PIN_FUNC_SELECT(GPIO_PIN_MUX_REG[i], PIN_FUNC_GPIO);
274276
if (pull) {
275277
gpio_set_pull_mode(i, pull_mode);
276-
size_t j = 0;
277-
while (gpio_get_level(i) == false) {
278-
j++;
279-
}
280278
}
281279
never_reset_pin_number(i);
282280
// Sets interrupt type and wakeup bits.
283281
gpio_wakeup_enable(i, interrupt_mode);
284282
gpio_intr_enable(i);
285283
}
284+
// Wait for any pulls to settle.
285+
mp_hal_delay_ms(50);
286286
}
287287

288288

0 commit comments

Comments
 (0)