|
@ -250,7 +250,7 @@ bool Sd2Card::init(uint8_t sckRateID, pin_t chipSelectPin) { |
|
|
#endif |
|
|
#endif |
|
|
|
|
|
|
|
|
// set pin modes
|
|
|
// set pin modes
|
|
|
//todo: should use chipSelectPin ?
|
|
|
pinMode(chipSelectPin_, OUTPUT); // Solution for #8746 by @benlye
|
|
|
spiBegin(); |
|
|
spiBegin(); |
|
|
|
|
|
|
|
|
// set SCK rate for initialization commands
|
|
|
// set SCK rate for initialization commands
|
|
@ -268,18 +268,18 @@ bool Sd2Card::init(uint8_t sckRateID, pin_t chipSelectPin) { |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
#if ENABLED(SD_CHECK_AND_RETRY) |
|
|
#if ENABLED(SD_CHECK_AND_RETRY) |
|
|
crcSupported = (cardCommand(CMD59, 1) == R1_IDLE_STATE); |
|
|
crcSupported = (cardCommand(CMD59, 1) == R1_IDLE_STATE); |
|
|
#endif |
|
|
#endif |
|
|
|
|
|
|
|
|
// check SD version
|
|
|
// check SD version
|
|
|
while (1) { |
|
|
for (;;) { |
|
|
if (cardCommand(CMD8, 0x1AA) == (R1_ILLEGAL_COMMAND | R1_IDLE_STATE)) { |
|
|
if (cardCommand(CMD8, 0x1AA) == (R1_ILLEGAL_COMMAND | R1_IDLE_STATE)) { |
|
|
type(SD_CARD_TYPE_SD1); |
|
|
type(SD_CARD_TYPE_SD1); |
|
|
break; |
|
|
break; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
// only need last byte of r7 response
|
|
|
// Get the last byte of r7 response
|
|
|
for (uint8_t i = 0; i < 4; i++) status_ = spiRec(); |
|
|
for (uint8_t i = 0; i < 4; i++) status_ = spiRec(); |
|
|
if (status_ == 0xAA) { |
|
|
if (status_ == 0xAA) { |
|
|
type(SD_CARD_TYPE_SD2); |
|
|
type(SD_CARD_TYPE_SD2); |
|
|