0

I use a TMS570LS3137HDK development board test in SPI mode to use micro SD card.

My micro SD card is a SanDisk Ultra 16GB HC.

When I use SPI send cmd0 to initialize SD card, it responses 0x5, but should answer 0x01 instead.

Here is my code.

gioInit();
sciInit();
spiInit();

gioSetBit(spiPORT2, SPI_PIN_CS1, 1);
gioSetBit(spiPORT2, SPI_PIN_CS0, 1);
for (int i = 0; i < 10; i++) {
    spiTransmitAndReceiveData(spiREG2, &spiDat1, 1, (uint16 *) 0xFF, NULL);
}

uint16_t cmd0[6] = {0x40, 0x00, 0x00, 0x00, 0x00, 0x95};
uint16_t resultData[6] = {0};

spiDAT1_t spiDat1;
spiDat1.CS_HOLD = CS_HOLD;
spiDat1.WDEL = WDEL;
spiDat1.DFSEL = DFSEL;
spiDat1.CSNR = CSNR;

gioSetBit(spiPORT2, SPI_PIN_CS0, 0);
spiTransmitAndReceiveData(spiREG2, &spiDat1, 6, cmd0, resultData);
gioSetBit(spiPORT2, SPI_PIN_CS0, 1);

I tried to change CLK and loop cmd0 but that did not work.

mkrieger1
  • 19,194
  • 5
  • 54
  • 65
watson
  • 1
  • 1

0 Answers0