Почему я получаю 0x5 в ответ при отправке команды SPI cmd0?

Я использую тест платы разработки TMS570LS3137HDK в режиме SPI для использования карты micro SD.

Моя карта micro SD — SanDisk Ultra 16 ГБ HC.

Когда я использую SPIsend cmd0для инициализации SD-карты она отвечает0x5, но должен ответить0x01вместо.

Вот мой код.

      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);

Я пытался изменить CLK и циклcmd0но это не сработало.

0 ответов

Другие вопросы по тегам