5 volatile uint16_t *sd_spi = (uint16_t *)0xFFFFFB50;
11 for(i = 0; i < 10; i++)
12 spi_rxtx(sd_spi, 0xFF);
13 spi_rxtx(sd_spi, 0x40);
14 spi_rxtx(sd_spi, 0x00);
15 spi_rxtx(sd_spi, 0x00);
16 spi_rxtx(sd_spi, 0x00);
17 spi_rxtx(sd_spi, 0x95);
19 //Polling it to check response to 0x01
21 for(int i = 0; i < 1000 && r != 0xFF; i++)
22 r = spi_rxtx(sd_spi, 0xFF);
28 uint8_t cmd0_response = sd_cmd0();
29 if(cmd0_response == 1)
30 sprintf(a, "SD: %02x OK ", cmd0_response);
32 sprintf(a, "SD: %02x FAIL", cmd0_response);
39 // set up variables using the SD utility library functions:
43 // reading sd card type is slow
48 if (card.init(SPI_HALF_SPEED, 2))
52 case SD_CARD_TYPE_SD1:
55 case SD_CARD_TYPE_SD2:
58 case SD_CARD_TYPE_SDHC:
64 sprintf(a, "SD: %s OK", cardtype);
69 sprintf(a, "SD: FAIL ");