Una de las secciones del Arduino que probablemente no sea confiable con el tiempo es su memoria. Hay tres grupos de memoria en el microcontrolador utilizado en placas Arduino basadas en avr:
- Memoria flash (espacio del programa), es donde se almacena el boceto Arduino.
- SRAM (memoria estática de acceso aleatorio) es donde el boceto crea y manipula variables cuando se ejecuta.
- EEPROM es un espacio de memoria que los programadores pueden usar para almacenar información a largo plazo.
La memoria es una parte de la placa que se puede verificar y verificar y, por lo tanto, se evalúa su fiabilidad / estado. Una forma muy básica de verificar la memoria sería escribir un cierto patrón de 8 bits (carácter de byte) sobre cada dirección en la memoria y luego leer el valor presente de cada dirección. Si el valor que se escribió coincide con el valor que se lee, entonces ese bloque específico de 8 bits en la memoria funciona correctamente en este momento.
El desgaste en la memoria ROM generalmente ocurre en un patrón de bloques, es decir, n * bloques de 8 bits se degradan con el tiempo. Entonces, para un chip ROM de 2K bytes, la salud del chip se puede estimar escribiendo y leyendo cada byte en el chip, y calculando el porcentaje de bloques que funcionan correctamente. Si el porcentaje de bloques fallidos es significativo (15% -20%), eso significa que es probable que la memoria falle pronto.
El código de prueba se puede escribir utilizando métodos separados para cada una de las secciones de memoria.
SRAM
Cualquier variable declarada estática o dinámicamente se asigna en la SRAM. Entonces, podríamos declarar una gran matriz de caracteres (~ 2000) y llenar cada elemento con 255 (todos los bits 1). Entonces, podríamos intentar leer cada uno de esos elementos y ver si el valor que se está leyendo es de hecho 255.
EEPROM
La EEPROM se puede manipular utilizando la biblioteca EEPROM . La biblioteca proporciona funciones para leer y escribir desde ubicaciones específicas en la EEPROM. Por lo tanto, todas las direcciones de memoria se pueden probar simplemente recorriendo todo el espacio de memoria. Esta operación requerirá 500 escrituras y lecturas.
Dependiendo del uso de la placa, es probable que EEPROM falle primero, pero no es crítico para el funcionamiento de la placa.
Destello
Los datos pueden almacenarse en la memoria flash utilizando la PROGMEM
directiva. Similar a SRAM, una gran matriz se puede declarar e inicializar aquí. Luego, los valores se pueden leer y verificar.