1.000.000 de ciclos de borrado es mucho, pero se puede quemar rápidamente como te has dado cuenta. Para lecturas de una vez por segundo, eso se cumpliría en 11,6 días.
Como ya se ha mencionado, almacenar en la RAM y luego escribir en la EEPROM sólo ocasionalmente es una forma.
Otra forma es utilizar la EEPROM FLASH. Con la FLASH lo único que importa es la cuenta de borrado. Puedes escribir muchas veces convirtiendo 1s en 0s sin penalización. Si sólo tienes unas pocas lecturas y una cantidad relativamente grande de espacio FLASH, puedes usar registros.
Borra los datos, dejándolos todos 0xFF.
Para las escrituras: Escribe secuencialmente en el espacio de la EEPROM. Cuando esté llena, bórrala toda y vuelve a empezar. Si tu valor de datos es todo 0xFF, tienes que cambiarlo por un LSB para evitar que parezca un registro en blanco. En tu caso, eso sería una condición de desbordamiento de todos modos.
Para leer: Busca el registro de todo-0xFFs, y retrocede uno. Si llegas al final y no hay ningún registro all-0xFFs, es la última posición.
La resistencia de FLASH suele ser menor... digamos 100.000. Sin embargo, una simple FLASH de 1Mbit tendría espacio suficiente para casi 104 años de almacenamiento utilizando este método.
Para un producto comercial como éste, debería tener seguridad contra fallos de alimentación en las escrituras de la EEPROM. O bien se añade la detección de fallos de alimentación y suficiente energía de reserva (supercap, lo que sea) para completar una operación de escritura... o bien se realizan las escrituras a prueba de fallos. Para hacer esto, podrías dividir la EEPROM en dos mitades, alternar entre las mitades en las escrituras, y escribir un CRC con el registro de datos. La lectura buscaría el último registro en cualquier página con un CRC válido. Las mitades deben estar alineadas con el bloque de borrado por seguridad.
Sin embargo, las empresas de servicios públicos suelen querer algo más que la potencia total utilizada. Considere la posibilidad de llevar un registro de los recuentos/segundo que obtiene y guarde también estas cifras. La mayoría de las empresas de servicios públicos cobran a los clientes comerciales en función de la potencia máxima que necesitan en un intervalo de 15 minutos aproximadamente.
2 votos
¿no podrías usar otro tipo de sram? datasheets.maximintegrated.com/es/ds/DS1350W.pdf presume de ciclos de lectura/escritura ilimitados y de 10 años de retención... por supuesto hay chips más sencillos, que utilizan conexiones spi/otras conexiones en serie con un número de pines muy reducido
1 votos
Nivelación del desgaste de la EEPROM