Skip to content

Commit 96a513f

Browse files
committed
feat(sdmmc): Toggle sd power pin for 200ms
1 parent f8d1989 commit 96a513f

File tree

2 files changed

+10
-1
lines changed

2 files changed

+10
-1
lines changed

libraries/SD_MMC/src/SD_MMC.cpp

+9-1
Original file line numberDiff line numberDiff line change
@@ -260,8 +260,13 @@ bool SDMMCFS::begin(const char *mountpoint, bool mode1bit, bool format_if_mount_
260260
#endif
261261

262262
#if defined(BOARD_SDMMC_POWER_PIN)
263+
#ifndef BOARD_SDMMC_POWER_ON_LEVEL
264+
#error "BOARD_SDMMC_POWER_ON_LEVEL not defined, please define it in pins_arduino.h"
265+
#endif
263266
pinMode(BOARD_SDMMC_POWER_PIN, OUTPUT);
264-
digitalWrite(BOARD_SDMMC_POWER_PIN, HIGH);
267+
digitalWrite(BOARD_SDMMC_POWER_PIN, !BOARD_SDMMC_POWER_ON_LEVEL);
268+
delay(200);
269+
digitalWrite(BOARD_SDMMC_POWER_PIN, BOARD_SDMMC_POWER_ON_LEVEL);
265270
perimanSetPinBusExtraType(BOARD_SDMMC_POWER_PIN, "SDMMC_POWER");
266271
#endif
267272

@@ -331,6 +336,9 @@ void SDMMCFS::end() {
331336
perimanClearPinBus(_pin_d2);
332337
perimanClearPinBus(_pin_d3);
333338
}
339+
#if defined(BOARD_SDMMC_POWER_PIN)
340+
perimanClearPinBus(BOARD_SDMMC_POWER_PIN);
341+
#endif
334342
}
335343
}
336344

variants/esp32p4/pins_arduino.h

+1
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,7 @@ static const uint8_t T13 = 15;
7070
#define BOARD_SDMMC_SLOT 0
7171
#define BOARD_SDMMC_POWER_CHANNEL 4
7272
#define BOARD_SDMMC_POWER_PIN 45
73+
#define BOARD_SDMMC_POWER_ON_LEVEL LOW
7374

7475
//WIFI - ESP32C6
7576
#define BOARD_HAS_SDIO_ESP_HOSTED

0 commit comments

Comments
 (0)