Estoy trabajando en un dispositivo que utiliza la biblioteca MDDFS de Microchip para almacenar datos en una tarjeta SD. El registrador registrará los datos a una velocidad máxima de 1 entrada (56 bytes) por minuto. El problema es que el dispositivo puede perder energía en cualquier momento, potencialmente en medio de una secuencia de escritura. Me pregunto cuál es la mejor manera de proteger mis datos contra la corrupción. Descubrí que si el archivo está abierto cuando se pierde la alimentación, todos los datos que se escribieron en el archivo después de la última pérdida de archivo se pierden. No sé si lo mismo se aplica si se pierde el poder en medio de la secuencia de escritura.
Dado que el procedimiento de escritura no se realiza con mucha frecuencia, podría abrir el archivo, escribir los datos y luego cerrar el archivo, cada vez que se registran. ¿Este enfoque dañaría la tarjeta SD con el tiempo?
Otro enfoque podría ser mantener el archivo abierto, pero después de cada 10 o 50 escrituras, podría cerrar el archivo y luego volver a abrirlo.
También podría almacenar datos en la memoria y luego descargar los datos de vez en cuando después de un kbyte o algo así.
La última idea que tuve fue, en mi circuito, podría agregar un condensador grande que proporcionaría energía a mi tarjeta de foto / sd lo suficiente después de que se desconecte la energía para cerrar rápidamente el archivo. El problema con este enfoque es que el tiempo que lleva cerrar el archivo y / o guardar los datos es muy inconsistente. Según tengo entendido, esta vez puede variar dependiendo del lugar actual en una página flash en la que se encuentre el archivo.
De todos modos, ¿qué sugerirían ustedes?