Почему я получаю 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
но это не сработало.