Inicialização de um cartão microSD usando uma interface SPI

Estou usando um microSD cartão em um design incorporado. A placa está conectada a um microcontrolador usando a interface SPI. Funcionou bem em todos os cartões que já usei antes, mas agora meu novo cartão não será inicializado. O cartão é um cartão microSD de 2 GB da Transcend (TS2GUSD).

Depois de enviar o trem do relógio inicial para alternar para o modo SPI, faço o seguinte:

CMD0 (Argumento 0, CRC 0x95) -> Resposta 0x01 -> OK

CMD8 (Argumento 0x000001AA, CRC 0x87) -> Resposta 0x01 0x000001AA -> Significa que é o cartão SDC V2 +, a faixa de tensão de 2,7 V a 3,6 V é suportada -> OK

Então devo enviar o comando ACMD41, mas ao enviar o CMD55 (argumento 0, CRC 0) que deve preceder o CMD41, recebo a resposta 0x05 -> Comando ilegal. Também tentei enviar o CMD1 (para cartões MMC), mas ele fornece uma aparênciaillegal command resposta. O código funciona bem com o meu cartão microSD de 2 GB da Sandis

Como soluciono este problema?

questionAnswers(10)

yourAnswerToTheQuestion