Skip to content

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
boolsdSelectCard(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-
returntrue;
98-
} else{
99-
log_e("timeout");
100-
sdDeselectCard(pdrv);
101-
returnfalse;
102-
}
93+
sdWait(pdrv, 300);
94+
returntrue;
10395
}
10496

10597
charsdCommand(uint8_t pdrv, char cmd, unsignedint arg, unsignedint* 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)