Estoy intentando conectar una tarjeta microSD a una placa de microcontrolador (FRDM-KE06Z) utilizando código FatFS . Solo modifiqué piezas SPI para mi aplicación. Además de indagar en el código FatFS, también revisé esta guía
Cuando envío CMD0 a la tarjeta, la respuesta es correcta:
PerocuandoenvíoCMD8paraidentificarlatarjeta,larespuestaestotalmenteerrónea(despuésde0xFFdeberíahaberalgoconMSBpuestoacero):
He comprobado:
- Diferentes modos SPI 0/1/2/3, velocidades de reloj 75kHz y 150kHz
- Dos tarjetas SD diferentes (SanDisk Ultra HC 1 de 32 GB y un SanDisk antiguo de 2GB)
- Si envío ciclos de reloj ficticios después de la alimentación, también espero un par de segundos antes de hacer algo con la tarjeta
- El cableado es corto, por lo que la integridad de la señal no debería ser el problema
- Lo mismo sucede con y sin el analizador lógico adjunto
- Enchufando la tarjeta después de que se hayan inicializado los pines de MCU, espere unos segundos y comience el código
- La sincronización CS es muy relajada (un par de milisegundos antes de que se envíen los datos, muchos milisegundos entre CMD0 y CMD8)
¿Cuál puede ser la razón por la que mis tarjetas no responden correctamente a CMD8, mientras responden correctamente a CMD0?