Skip to content

Commit 039664c

Browse files
me-no-devRaienryu97
authored andcommitted
Fix SD Card not properly initializing
1 parent ea43175 commit 039664c

File tree

1 file changed

+7
-10
lines changed

1 file changed

+7
-10
lines changed

Diff for: libraries/SD/src/sd_diskio.cpp

+7-10
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)