Para una mejor legibilidad de la EEPROM en el futuro, ¿es mejor escribir una vez y dejarla, o periódicamente "actualizar"?

2

¿Cuál es la mejor estrategia si tengo un valor estático que quiero almacenar en EEPROM una vez y luego poder leerlo lo más lejos posible en el futuro?

¿Es mejor escribirlo una vez y nunca volver a escribir en él, o es mejor que periódicamente (como una vez por década) vuelva a escribir el valor en la EEPROM para "actualizarlo"?

Hablando aquí sobre la moderna EEPROM, especialmente a bordo de un ATXMEGA que está clasificado para 100,000 ciclos / 100 años de retención a 25 ° C.

Se pregunta de forma diferente, ¿es esa especificación de retención de 100 años desde el momento en que se escribió la EEPROM por primera vez, o desde el momento en que se escribió la EEPROM por última vez?

    
pregunta bigjosh

3 respuestas

0

La palabra oficial de Atmel es que el período de retención de 100 años comienza con la primera escritura en cada ubicación EEPROM.

Esto sugeriría que, para que los datos de EEPROM se mantengan lo más lejos posible en el futuro, debe ...

  1. Asegúrese de que el bloque de datos no sea todo 1 bits usando escape o corchete si es necesario.
  2. Escriba el bloque de datos en la ubicación de bloque 0 en el año 0.
  3. Escriba una copia de los datos en la ubicación de bloque 1 en el año 100.
  4. Escriba una copia de los datos en la ubicación de bloque 2 en el año 200. ... etc ...

Para leer los datos almacenados, comience en la parte superior del espacio de direcciones EEPROM y lea los bloques al revés siempre que vea solo 1 bits. Cuando vea un bloque de datos que tenga al menos un bit 0 en él, use esos datos.

Tenga en cuenta que si necesita actualizar los datos, puede actualizarlos en el mismo lugar durante los primeros 100 años y los primeros 100,000 ciclos de escritura antes de pasar a las ubicaciones EEPROM vírgenes.

Conversación citada con Atmel a continuación ...

  

Creado por: Abirami Sivakumar (21/12/2018 6:16 AM) Hola Josh,

     

Sí, su comprensión es correcta.

     

La condición borrada de EEPROM es 0xFF. De la fábrica es.   Completamente borrado y fabricado. Así que si estás escribiendo algún valor.   a la ubicación particular, el valor correspondiente permanecerá después de   100 años.

     

Saludos cordiales, Abirami Sivakumar. Creado por: Josh Levine (13/12/2018   12:46 PM) Esto tiene sentido. Así que un dispositivo recibido de la fábrica tiene   EEPROM rellena con 0xff.

     

Si en el año 1 escribo un 0x00 en una ubicación en el primer bloque, entonces   esperaría que 0x00 sea legible al año 100.

     

Si en el año 100 escribo un 0x00 en una ubicación en el segundo bloque, entonces   Espero que ese 0x00 sea legible en el año 200.

     

¿Es correcto este entendimiento?

     

¿Esperaría una ubicación EEPROM programada con un 0xff desde la   ¿La fábrica seguirá siendo legible como un 0xff indefinidamente?

     

¡Gracias!

     

-josh Created by: Abirami Sivakumar (13/12/2018 6:58 AM) Hola Josh,

     

Gracias por ponerse en contacto con el equipo de soporte técnico de Microchip

     

El tiempo de retención de datos comienza desde la primera vez en la ubicación de EEPROM.

     

Espero que esto aclare. Por favor, háganos saber si necesita más   aclaración.

     

Saludos cordiales, Abirami Sivakumar.

    
respondido por el bigjosh
4

1) Use un sistema de corrección de errores hacia adelante que ofrezca recuperarse de varios bits faltantes. Distribuya los datos FEC a través de diferentes bloques en la EEPROM.

2) Guarde al menos dos copias completas para permitir la reescritura.

2) Vuelva a leer periódicamente y compruebe si hay errores de bit. Reescribir bits dañados. Si no reescriben limpiamente, informe un error (¿cómo? ¿A quién?)

4) Preste atención enorme al diseño de su tablero y la selección de piezas; Cuidado con los condensadores en descomposición, etc.

5) Es posible que desee considerar las tasas de "evento único molesto" (SEU) en el procesador: aunque normalmente esto solo es una consideración para el sector aeroespacial, está ejecutando el proceso durante mucho más tiempo.

Las EEPROMS son dispositivos de carga flotante. Se filtran con el tiempo, por lo que creo que la retención proviene del ciclo de escritura más reciente.

    
respondido por el pjc50
0

En la práctica, lo mejor es comprar una EEPROM mucho más grande y reescribir los datos periódicamente en una parte diferente de la memoria. Reduce los ciclos de borrado, y la mayoría de las EEPROMS son mucho más grandes de lo necesario de todos modos.

    
respondido por el Cristobol Polychronopolis

Lea otras preguntas en las etiquetas