8000 Fix SD Card not properly initializing · studuino/arduino-esp32@13bb22d · GitHub
[go: up one dir, main page]

Skip to content

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit 13bb22d

Browse files
committed
Fix SD Card not properly initializing
1 parent 9d0ae7a commit 13bb22d

File tree

1 file changed

+7
-10
lines changed

1 file changed

+7
-10
lines changed

libraries/SD/src/sd_diskio.cpp

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -84,22 +84,14 @@ void sdDeselectCard(uint8_t pdrv)
8484
{
8585
ardu_sdcard_t * card = s_cards[pdrv];
8686
digitalWrite(card->ssPin, HIGH);
87-
card->spi->write(0xFF);
8887
}
8988

9089
bool sdSelectCard(uint8_t pdrv)
9190
{
9291
ardu_sdcard_t * card = s_cards[pdrv];
9392
digitalWrite(card->ssPin, LOW);
94-
card->spi->write(0xFF);
95-
96-
if (sdWait(pdrv, 500)) {
97-
return true;
98-
} else {
99-
log_e("timeout");
100-
sdDeselectCard(pdrv);
101-
return false;
102-
}
93+
sdWait(pdrv, 300);
94+
return true;
10395
}
10496

10597
char sdCommand(uint8_t pdrv, char cmd, unsigned int arg, unsigned int* resp)
@@ -448,6 +440,11 @@ DSTATUS ff_sd_initialize(uint8_t pdrv)
448440

449441
card->spi->beginTransaction(SPISettings(400000, MSBFIRST, SPI_MODE0));
450442

443+
digitalWrite(card->ssPin, HIGH);
444+
for (uint8_t i = 0; i < 20; i++) {
445+
card->spi->transfer(0XFF);
446+
}
447+
451448
if (sdTransaction(pdrv, GO_IDLE_STATE, 0, NULL) != 1) {
452449
log_w("GO_IDLE_STATE failed");
453450
goto unknown_card;

0 commit comments

Comments
 (0)
0