Estoy intentando hacer rodar mi propia gestión de la tarjeta SPI SD. Hasta ahora, puedo obtener la tarjeta inicializada (detalles de eso más abajo). Una vez inicializado, cuando envío los comandos Write_Block (CMD24) o Read_Single_Block (CMD17), la tarjeta SD siempre devuelve 0x04 (comando no válido) como respuesta R1. ¿Alguien ha visto esto antes?
Más información detallada sobre cómo configuro la tarjeta, etc.:
- Envío 74 bits vacíos a la tarjeta con CS alto,
- Envía CMD0 con CRC 0x95 hasta que obtenga 0x01 como respuesta,
- Envíe CMD8, argumento 0x1AA, con CRC 0x87, y obtenga una respuesta R1 de 0x01, respuesta R7 de 0x1AA,
- Enviar CMD55 / ACMD41 hasta que obtenga una respuesta R1 de 0x00
(He seguido todos estos pasos con un depurador para comprobar que estoy obteniendo las respuestas que espero)
En este punto, envío CMD17 o CMD24 y obtengo una respuesta de 0x04. He probado algunos argumentos diferentes como direcciones, 0x00, 0x01, 0x200, pero todos con el mismo resultado. ¿Alguien tiene alguna idea aquí?
Gracias de antemano.
EDITAR: Tuve otro tipo de problema de temporización que causó esto: mi reloj estaba relativamente confuso (un pulso muy largo y luego 7 cortos para cada byte), y eso parece haber causado el problema (no estoy seguro, ya que sigo trabajando a través de otras cuestiones). Me sorprende que logré que la tarjeta se inicializara en absoluto.