Я использую кабель FTDI C232HM USB-> SPI с использованием Windows10
Проблема заключается в следующем: после отправки CMD41 на карту памяти microSD SanDisk 4 ГБ, он воспроизводится с «1», а затем не воспроизводится ни на один другойкоманда
команды инициализации:
- Установить CS-вывод HIGH (отмена выбора ведомого)
- Переключить часы 80 раз
- Установить CS-вывод LOW(выбирает подчиненное устройство)
- Отправить
CMD0
: 0x40,0x00,0x00,0x00,0x00,0x95
(ответ: 0x01
) - Отправить
CMD8
: 0x48,0x00,0x00,0x01,0xAA,0x87
(ответ 0x01; 0x000001AA
) - Отправить
CMD55
: 0x77,0x00,0x00,0x00,0x00,0x00
(ответ: 0x01
) - Отправить
ACMD41
: 0x69,0x40,0x00,0x00,0x00,0x00
(ответ: 0x01
) - Отправить
CMD55
:0x77,0x00,0x00,0x00,0x00,0x00
(ответ: 0xFF
) цикл навсегда
Есть идеи?
Спасибо, Рой
Добавлен DUMMY 0XFF
перед любой командой Отправить SPI
Добавлена DUMMY 0XFF + 0xFF
перед любой командой Send SPI
SD_PowerOn();
Sleep(100);
SD_SendCmd(CMD0, 0);
if (SD_SendCmd(CMD0, 0) == 1)
{
Timer1 = 100;
if (SD_SendCmd(CMD8, 0x1AA) == 1)
{
do {
if (SD_SendCmd(CMD55, 0) <= 1)
{
n = SD_SendCmd(CMD41, 1UL << 30);
if(n == 0)
break; /* ACMD41 with HCS bit */
}
} while (Timer1--);
if (Timer1 && SD_SendCmd(CMD58, 0) == 0)
{
for (n = 0; n < 4; n++)
{
ocr[n] = SPI_RxByte();
}
type = (ocr[0] & 0x40) ? 6 : 2;
}
}