Saltar al contenido

¿Cuál es la vida útil real de la EEPROM?

La guía o código que hallarás en este post es la solución más sencilla y efectiva que hallamos a tus dudas o dilema.

Solución:

Como dices, la EEPROM interna tiene una vida útil de 100.000 ciclos de escritura. Esto no es una suposición: una proporción muy significativa de ATmega328 alcanzará este número sin problemas. He probado tres procesadores antes y todos alcanzaron los 150 000 ciclos sin problemas.

Es importante notar el modo de falla de la EEPROM. La mayoría de los proyectos “destructores de EEPROM” leen/escriben repetidamente hasta que los datos no se escriben en absoluto. Antes de este punto, la EEPROM seguirá dañada. Esto se manifestaría mediante la no conservación de los datos durante un período razonable. No es prudente confiar en nada más que 100.000 ciclos de escritura por este motivo.

EEPROM es diferente a la RAM en un ATmega. Escribir en él no es simple ni rápido, pero está envuelto en una biblioteca Arduino amigable, ocultando esta complejidad del usuario.

El primer nivel de direccionamiento indirecto es la biblioteca EEPROM, que es trivialmente simple, simplemente llamando a otras dos funciones para leer y escribir. Esto llama a eeprom_write_byte, que se encuentra aquí.

Esta función utiliza ensamblaje en línea, por lo que es posible que no se entienda fácilmente. Sin embargo, hay un comentario que se entiende fácilmente:

Establecer el modo de programación: borrar y escribir

Esto sugiere una de las complejidades de tratar con EEPROM: para escribir en él, primero debe borrarlo. Esto significa que si llama a EEPROM.write(), realizará un ciclo de escritura independientemente del valor que esté escribiendo.

Esto significa que escribir repetidamente 0xFF probablemente tendrá el mismo efecto que escribir 0xFF, 0x00, 0xFF, 0x00, etc.

Hay formas de evitar esto: puede intentar llamar a EEPROM.read() antes de EEPROM.write() para ver si el valor ya es el mismo, pero esto lleva más tiempo.

Existen otras técnicas para evitar el desgaste excesivo de la EEPROM, pero su uso depende de su aplicación.

Una vez realicé un experimento en una EEPROM externa con 1 millón de ciclos nominales máximos. Se necesitaron alrededor de 6 millones de ciclos para corromperse en gran medida, y antes de eso había progresado con cantidades esporádicas de corrupción.

Cuando dice que no cambia el valor, asumo que está escribiendo los mismos datos en una dirección varias veces. Es casi seguro que esto estresaría la vida, aunque probablemente no estresaría a las células circundantes.

Destroying an Arduino’s EEPROM

El Arduino se conectó a una verruga de la pared y se sentó, “detrás de un sofá durante un par de meses”. La EEPROM vio su primer error de escritura después de 47 días y 1,230,163 ciclos. Este es un orden de magnitud mejor que la especificación en la hoja de datos de atmel, pero similar a los resultados de experimentos similares.

Aquí tienes las comentarios y puntuaciones

Al final de la página puedes encontrar las anotaciones de otros usuarios, tú también eres capaz dejar el tuyo si te apetece.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)


Tags : /

Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *