|
@@ -250,7 +250,7 @@ bool Sd2Card::init(uint8_t sckRateID, pin_t chipSelectPin) {
|
250
|
250
|
#endif
|
251
|
251
|
|
252
|
252
|
// set pin modes
|
253
|
|
-//todo: should use chipSelectPin ?
|
|
253
|
+ pinMode(chipSelectPin_, OUTPUT); // Solution for #8746 by @benlye
|
254
|
254
|
spiBegin();
|
255
|
255
|
|
256
|
256
|
// set SCK rate for initialization commands
|
|
@@ -268,18 +268,18 @@ bool Sd2Card::init(uint8_t sckRateID, pin_t chipSelectPin) {
|
268
|
268
|
}
|
269
|
269
|
}
|
270
|
270
|
|
271
|
|
-#if ENABLED(SD_CHECK_AND_RETRY)
|
272
|
|
- crcSupported = (cardCommand(CMD59, 1) == R1_IDLE_STATE);
|
273
|
|
-#endif
|
|
271
|
+ #if ENABLED(SD_CHECK_AND_RETRY)
|
|
272
|
+ crcSupported = (cardCommand(CMD59, 1) == R1_IDLE_STATE);
|
|
273
|
+ #endif
|
274
|
274
|
|
275
|
275
|
// check SD version
|
276
|
|
- while (1) {
|
|
276
|
+ for (;;) {
|
277
|
277
|
if (cardCommand(CMD8, 0x1AA) == (R1_ILLEGAL_COMMAND | R1_IDLE_STATE)) {
|
278
|
|
- type(SD_CARD_TYPE_SD1);
|
|
278
|
+ type(SD_CARD_TYPE_SD1);
|
279
|
279
|
break;
|
280
|
|
- }
|
|
280
|
+ }
|
281
|
281
|
|
282
|
|
- // only need last byte of r7 response
|
|
282
|
+ // Get the last byte of r7 response
|
283
|
283
|
for (uint8_t i = 0; i < 4; i++) status_ = spiRec();
|
284
|
284
|
if (status_ == 0xAA) {
|
285
|
285
|
type(SD_CARD_TYPE_SD2);
|