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 tableros de destino personalizados con 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 se puede confirmar conectando la tarjeta a una máquina con Windows y leyendo el archivo.
De repente, como por arte de magia, la tarjeta SD dejó de funcionar recientemente. Usando un depurador, rastreé el problema hasta la primera vez que la secuencia de inicialización FAT intenta realizar una operación de lectura de datos.
El envío de CMD17 (Read Single Block) y su respuesta se manejan correctamente, pero cuando el paquete de datos está sincronizado (dummy 0xFF sincronizado en SO), el procesador parece reiniciarse (recibo el código principal anterior) en ejecución, que puedo confirmar a través de mi registro de depuración).
Me pregunto si la alimentación SD es un problema. Debido a otros aspectos del diseño de la placa, estamos viendo ~ 2.9V para alimentación SD y comunicaciones SPI. Solo puedo ver referencias a 3.3V para SD SPI, pero ¿realmente necesita ser exactamente eso? ¿Podría estar causando el problema, o es una pista falsa y hay otro razonamiento?
Cualquier ayuda sería muy apreciada.