У меня была почти такая же проблема. При отправке ACMD41 я отправил CMD55, а затем CMD41. Ответ для CMD55 был 0x01, указывая на состояние бездействия и запуск процесса инициализации (я думаю, это нормально). CMD41 ответит 0x05, указывая на недопустимую команду. Оказывается, что моя конкретная карта выполняет проверку CRC по умолчанию, даже в режиме SPI, и ошибочно сообщает об ошибках CRC как недопустимые команды (то есть не соответствует спецификации SD). Когда я рассчитываю правильный CRC, он работает нормально. Вот код вычисления CRC7, который я использовал, он хорошо сработал для меня:
https://github.com/hazelnusse/crc7
Если вы не позаботились об отключении проверки CRC, я думаю, что, вероятно, лучше предположить, что она не отключена, и убедиться, что вы вычисляете правильный CRC для каждого командного кадра. Из того, что я могу сказать, некоторые карты отключают его по умолчанию в режиме SPI, а другие включают его, хотя в спецификации SD указано, что он должен быть отключен по умолчанию в режиме SPI, за исключением CMD8.