He implementado una combinación SD/FAT en un procesador Renesas RL78/G13. La tarjeta SD está siendo manejada usando SPI.
Se ha comprobado que el código funciona en dos placas de destino personalizadas utilizando una tarjeta de 2 GB: la SD puede inicializarse correctamente a través del middleware FAT y se puede crear un archivo en la tarjeta y escribir en él. El resultado puede confirmarse conectando la tarjeta a una máquina Windows y leyendo el archivo.
De repente, como por arte de magia, la tarjeta SD dejó de funcionar recientemente. Utilizando un depurador, localicé el problema hasta la primera vez que la secuencia de inicialización de la FAT intenta realizar una operación de lectura de datos.
El envío de CMD17 (Read Single Block) y su respuesta son manejados correctamente, pero cuando el paquete de datos es fichado (dummy 0xFF fichado en SO), el procesador parece reiniciarse (obtengo código pre-main siendo ejecutado, lo cual puedo confirmar a través de mi registro de depuración).
Me pregunto si la potencia de la SD es un problema. Debido a otros aspectos del diseño de la placa, estamos viendo ~2,9V para la alimentación de la SD y las comunicaciones SPI. Sólo puedo ver referencias a 3,3V para SD SPI, pero ¿realmente Necesito para ser exactamente eso? ¿Podría ser esta la causa del problema, o es una pista falsa y hay otro razonamiento?
Cualquier ayuda será muy apreciada.