Estoy trabajando en un dispositivo que utiliza la biblioteca MDDFS de Microchip para almacenar datos en una tarjeta SD. El registrador registrará datos a una velocidad máxima de 1 entrada (56bytes) cada 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 corta la corriente, todos los datos que se escribieron en el archivo después del último cierre se pierden. No sé si ocurre lo mismo si se pierde la alimentación en medio de la secuencia de escritura.
Dado que el procedimiento de escritura no se produce con mucha frecuencia, podría abrir el archivo, escribir los datos y, a continuación, cerrar el archivo cada vez que se registren 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 los datos en la memoria, y luego vaciarlos de vez en cuando, tal vez después de un kbyte más o menos.
La última idea que tuve fue, en mi circuito, podría añadir un condensador grande que proporcionaría energía a mi tarjeta pic/sd el tiempo suficiente después de desconectar la alimentación para cerrar rápidamente el archivo. El problema con este enfoque es que el tiempo que tarda en cerrar el archivo y/o guardar los datos es muy inconsistente. Según tengo entendido, este tiempo puede ser muy dependiente del lugar actual en una página flash en la que se encuentre el archivo.
En cualquier caso, ¿qué me sugieren?