Estoy trabajando en un dispositivo que utiliza la biblioteca Microchip MDDFS para almacenar datos en una tarjeta SD. El registrador registrará los datos a una velocidad máxima de 1 entrada (56bytes) 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. He descubierto que si el archivo está abierto cuando se pierde la energía, se pierden todos los datos que se escribieron en el archivo después del último cierre de archivo. No sé si lo mismo es cierto si se pierde potencia en el medio de la secuencia de escritura.
Como el procedimiento de escritura no ocurre con mucha frecuencia, podría abrir el archivo, escribir los datos y luego cerrar el archivo, cada vez que se registran datos. ¿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 el búfer en la memoria, luego enjuagar los datos ocasionalmente, tal vez después de un kbyte más o menos.
La última idea que tuve fue que, en mi circuito, podía agregar un condensador grande que proporcionaría energía a mi tarjeta pic / sd el tiempo suficiente después de que se desconecta la alimentación para cerrar rápidamente el archivo. El problema con este enfoque es que el tiempo que lleva cerrar el archivo y / o guardar datos es muy inconsistente. Según tengo entendido, esta vez puede depender mucho del lugar actual en una página flash en la que se encuentre el archivo.
De todos modos, ¿qué sugerirían ustedes?