Как продлить и оценить срок службы EEPROM

Несколько идей, как продлить жизнь EEPROM (предполагается, что вы знакомы с объектом stor.):

  • Ограничьте число обновлений данных в EEPROM. Например, если вы считаете события, не записывайте значение в EEPROM при каждом приращении счётчика. Вместо этого храните счётчик в переменной в RAM и введите правило обновления EEPROM: скажем, записывайте значение раз в 100 приращений счётчика в RAM или после x часов простоя.
  • Прежде чем записывать данные в ячейку EEPROM, прочитайте её и проверьте, нет ли там уже этих данных. В EEPROM запись тех же данных в ту же ячейку тоже считается циклом записи!
  • Используйте равномерное распределение износа: перемещайте область хранения по диапазону адресов EEPROM. Например, если у вас 32-битный счётчик, создайте массив 32-битных ячеек и при каждом приращении счётчика переходите к следующей ячейке. Этот пункт нужно рассматривать вместе со следующим...
  • Размещая в EEPROM часто обновляемые данные, старайтесь удерживать их в границах секторов. Как и во флеш-памяти, в EEPROM есть сектора. У устройств Tibbo с EEPROM на 2 КБ сектора по 16 байт, у устройств с EEPROM на 256 байт - по 8 байт. Обновляя данные в части сектора, вы изнашиваете сектор целиком! При подсчёте границ секторов учитывайте свойство stor.base - оно задаёт для всех записей фиксированное смещение! Например, в EM1000 (EEPROM на 2 КБ) для записи в третий сектор EEPROM используйте stor.setdata(s,4), поскольку stor.base = 29, а 29 + 4 = 33 (то есть первая ячейка третьего 16-байтного сектора [ячейки объекта stor. нумеруются с 1]).
  • Используйте избыточность: храните две и более копий данных EEPROM и защищайте данные контрольными суммами. Если одна копия выйдет из строя, останется другая. Это также защищает от внезапного отключения питания: если питание пропадёт во время записи в EEPROM, данные могут быть потеряны, а резервная копия в такой ситуации выручит.
  • Рассмотрите возможность использовать библиотеку STG - она избавит вас от множества проблем при работе с данными EEPROM.

При оценке срока службы EEPROM в вашей системе учитывайте следующее:

  • Всегда помните о секторной структуре микросхем EEPROM. Запись даже одного байта в сектор сокращает срок службы всего сектора.
  • Запись строки из нескольких символов даёт столько циклов записи, сколько символов в строке. Вызов stor.setdata("ABC",4) считается тремя циклами записи, а не одним.
  • Высокая температура окружающей среды сокращает срок службы EEPROM.
  • Все оценки ресурса EEPROM от производителей носят вероятностный характер. Вам встретятся «более стойкие» и «менее стойкие» экземпляры с сильно различающимся ресурсом. В целом можно с достаточной уверенностью считать, что EEPROM выдержит не менее 1 миллиона циклов записи на сектор ... но гарантий этого нет.
Исходный материал Tibbo обновлён 22 августа 2022Оригинал на docs.tibbo.com · Сообщить об ошибке