SD-карта не возвращает токен при чтении отдельного блока SPI
У меня есть SD-карта Buffalo SDHC с 4 ГБ памяти и Raspberry Pi Pico. Я подключил SD-карту к соответствующим контактам SPI Pico и установил тактовую частоту SPI на 1 МГц.
Я сбросил SD-карту с помощью команды 0 и получил успешный ответ R1 1 (чтобы уточнить, это все, что я сделал).
Теперь я хочу прочитать один блок (512 байт), и после исследования код команды равен 17, а аргументы — это индекс блока, который я хочу прочитать (в моем случае 0–0–511 байт). Я отправил команду и получил ответ R1 со значением 1 (это означает, что карта находится в режиме ожидания), однако после некоторых исследований я также должен был получить «токен», содержащий0xFE
указывает на успешное чтение, за которым следуют байты в секторе или код ошибки.
Однако единственное, что я получаю после первоначального ответа R1, это0xFF
байтов, что указывает на то, что SD-карта простаивает. Я попытался прочитать несколько тысяч байтов с SD-карты, возможно, думая, что чтение занимает некоторое время, но ничего, я получаю только байты 0xFF с токеном, который нигде не найден.
Есть ли у кого-нибудь совет, почему это может быть так? Я просмотрел синтаксис моей команды и нашел его правильным:
(bits + cmd code) 01010001 (32-bit arguments) 00000000 00000000 00000000 00000000 (CRC value set to 0 due to checking disabled + end bit) 00000001
Я также пробовал экспериментировать с другим аргументом и разными тактовыми частотами, но безрезультатно.