Одним из разделов Arduino, который, вероятно, со временем станет ненадежным, является его память. В микроконтроллере, используемом на платах Arduino на основе AVR, есть три пула памяти :
- Флэш-память (пространство программы), где хранится эскиз Arduino.
- SRAM (статическая память с произвольным доступом) - это место, где эскиз создает переменные при работе и управляет ими.
- EEPROM - это пространство памяти, которое программисты могут использовать для хранения долгосрочной информации.
Память - это одна часть платы, которую можно проверять и проверять, и таким образом оценивать на надежность / работоспособность. Самый простой способ проверки памяти - записать определенный 8-битный шаблон (байтовый символ) по каждому адресу в памяти, а затем прочитать значение, имеющееся у каждого адреса. Если записанное значение совпадает со считываемым значением, то данный конкретный 8-битный блок в памяти работает правильно в настоящий момент.
Износ в ПЗУ обычно происходит по блочному шаблону, то есть n * 8-битные блоки со временем ухудшаются. Таким образом, для микросхемы ПЗУ объемом 2 Кбайт состояние микросхемы можно оценить путем записи и чтения каждого байта в микросхеме и вычисления процента правильно функционирующих блоков. Если процент неудачных блоков значительный (15% -20%), это означает, что память, скорее всего, скоро выйдет из строя.
Тестовый код может быть написан с использованием отдельных методов для каждого из разделов памяти.
SRAM
Любые переменные, объявленные статически или динамически, размещаются в SRAM. Таким образом, мы можем объявить большой массив символов (~ 2000) и заполнить каждый элемент 255 (все биты 1). Затем мы можем попытаться прочитать каждый из этих элементов и посмотреть, действительно ли читаемое значение 255.
EEPROM
ЭСППЗУ можно манипулировать с помощью библиотеки ЭСППЗУ . Библиотека предоставляет функции для чтения и записи из определенных мест в EEPROM. Таким образом, все адреса памяти могут быть проверены простым циклом по всему пространству памяти. Эта операция потребует 500 операций записи и чтения.
В зависимости от использования платы, EEPROM, скорее всего, потерпит неудачу первым, но это не критично для работы платы.
вспышка
Данные могут быть сохранены на флэш-памяти с помощью PROGMEM
директивы. Подобно SRAM, здесь можно объявить и инициализировать большой массив. Затем значения можно прочитать и проверить.