Thanks to visit codestin.com
Credit goes to github.com

Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 2 additions & 5 deletions ports/espressif/boards/adafruit_feather_esp32s2_tft/board.c
Original file line number Diff line number Diff line change
Expand Up @@ -88,9 +88,6 @@ void board_init(void) {
displayio_display_obj_t *display = &displays[0].display;
display->base.type = &displayio_display_type;

// workaround as board_init() is called before reset_port() in main.c
/// pwmout_reset();

common_hal_displayio_display_construct(
display,
bus,
Expand Down Expand Up @@ -127,8 +124,8 @@ bool espressif_board_reset_pin_number(gpio_num_t pin_number) {
// Override the I2C/TFT power pin reset to prevent resetting the display.
if (pin_number == 21) {
// Turn on TFT and I2C
gpio_set_direction(21, GPIO_MODE_DEF_OUTPUT);
gpio_set_level(21, true);
gpio_set_direction(pin_number, GPIO_MODE_DEF_OUTPUT);
gpio_set_level(pin_number, true);
return true;
}
return false;
Expand Down
3 changes: 0 additions & 3 deletions ports/espressif/common-hal/alarm/__init__.c
Original file line number Diff line number Diff line change
Expand Up @@ -173,9 +173,6 @@ void NORETURN common_hal_alarm_enter_deep_sleep(void) {
// We no longer need to remember the pin preservations, since any pin resets are all done.
clear_pin_preservations();

// Allow pin holds to work during deep sleep.
gpio_deep_sleep_hold_en();

// The ESP-IDF caches the deep sleep settings and applies them before sleep.
// We don't need to worry about resetting them in the interim.
esp_deep_sleep_start();
Expand Down
6 changes: 6 additions & 0 deletions ports/espressif/common-hal/microcontroller/Pin.c
Original file line number Diff line number Diff line change
Expand Up @@ -173,6 +173,12 @@ void preserve_pin_number(gpio_num_t pin_number) {
gpio_hold_en(pin_number);
_preserved_pin_mask |= PIN_BIT(pin_number);
}
if (_preserved_pin_mask) {
// Allow pin holds to work during deep sleep. This increases power consumption noticeably
// during deep sleep, so enable holds only if we actually are holding some pins.
// 270uA or so extra current is consumed even with no pins held.
gpio_deep_sleep_hold_en();
}
}

void clear_pin_preservations(void) {
Expand Down
6 changes: 6 additions & 0 deletions shared-bindings/alarm/__init__.c
Original file line number Diff line number Diff line change
Expand Up @@ -143,6 +143,12 @@ MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(alarm_light_sleep_until_alarms_obj, 1, MP_OB
//|
//| On some microcontrollers, some pins cannot remain in their original state for hardware reasons.
//|
//| .. note::
//| On Espressif chips, preserving pin settings during deep sleep may consume extra current.
//| On ESP32, this was measured to be 250 uA or more.
//| Consider not preserving pins unless you need to.
//| Measure power consumption carefully both with no pins preserved and with the pins you might want to
//| preserve to achieve the lowest consumption.
//|
//| **If CircuitPython is connected to a host computer via USB or BLE
//| the first time a deep sleep is requested,
Expand Down