Память EEPROM

Arduino85
Offline
Зарегистрирован: 31.10.2016

Всем привет!

 Собираю схему на Arduino Nano управления RGB подсветка для панели авто. Планирую так что бы последняя настройка сохранялась в памяти. Но в описании написано что EEPROM имеет ограниченное количество записей 100 000.

Вопрос такой: Что нужно добавить в схему что бы было не ограниченное количество записей? Может есть какие та модули памяти?! Как это решается в промышленных контроллерах которые каждую минуту записывают часы работы, пользовательские настройки (при том не имея батарейки для энергозависымой памяти)? Или это ограничение EEPROM только у Atmela?

Буду рад за любые подсказки!

Гриша
Offline
Зарегистрирован: 27.04.2014

Arduino85 пишет:

Но в описании написано что EEPROM имеет ограниченное количество записей 100 000.

Вопрос такой: Что нужно добавить в схему

МОЗГ!!!! так чтобы алгоритм не делал этого каждую секунду, а только по неообходимости. попробуйте пересчитать эту цифру в года при записи в ПРОМ 10 раз в сутки - ну так, для интереса...

dezz0riented
dezz0riented аватар
Offline
Зарегистрирован: 27.07.2014

На практике часто записывают в следующую свободную ячейку, а когда достигнут последней, всё стирают и пишут в первую, и так по циклу. Чтоб не одна ячейка сильно уставала, а все, но по чуть-чуть.

Ещё можно поставиль внешний EEPROM с каким-нить I2C интерфейсом. Сдохнет - так хотя бы поменять проще, чем контроллер.

P.S.: Ну и раз в минуту это реально перебор...

Arduino85
Offline
Зарегистрирован: 31.10.2016

А при записи в EEPROM разве не все ячейки перезаписываются?

А что происходит когда заканчиваеться количество записей. Сохраняется последяя запись или ячейка обнуляется?

Можно же тогда написать скетч который после записи в ячейку считывал бы данные и проверял записались ли они. И если нет то понимал что ячейка стерлась и записывал в другую.

sadman41
Offline
Зарегистрирован: 19.10.2016

Arduino85 пишет:

А при записи в EEPROM разве не все ячейки перезаписываются?

А что происходит когда заканчиваеться количество записей. Сохраняется последяя запись или ячейка обнуляется?

Можно же тогда написать скетч который после записи в ячейку считывал бы данные и проверял записались ли они. И если нет то понимал что ячейка стерлась и записывал в другую.

1) Нет;

2) Поведение неопределено, состояние ячейки непредсказуемо;

3) Можно.

bwn
Offline
Зарегистрирован: 25.08.2014

Если вы будете делать перенастройку каждую минуту в сутки, то ячейки епрома хватит на два месяца (это по гарантии, на самом деле раз в десять больше). Вот только когда вы собираетесь кушать, спать и управлять этим самым автомобилем? 
Для любых настроек осуществляемых человеком на ресурс EEPROM можно вообще не обращать внимания, вы физически не сумеете его превысить.
А по личному опыту, все эти свителки-мигалки-перделки интересны первую неделю, а потом забываешь где и кнопка находится. ИМХО.

b707
Offline
Зарегистрирован: 26.05.2017

Arduino85 пишет:

Можно же тогда написать скетч который после записи в ячейку считывал бы данные и проверял записались ли они. И если нет то понимал что ячейка стерлась и записывал в другую.

Короткий ответ - можно. Однако если смотреть подробней - все ваши вопросы лишние, поскольку ограничение количества записей в ЕЕПРОМ для вашей задачи абсолютно не имеют значения. Грамотно пишите скетч, чтобы он не записывал настройки в память "каждую минуту", а делал это только тогда, когда вы что-то изменили - и тогда ресурса ЕЕПРОМ хватит не только на всю жизнь машины, а останется даже вашим правнукам :)

Arduino85
Offline
Зарегистрирован: 31.10.2016

Всем спасибо!

Еще нашел вот такую статью: https://geektimes.ru/post/263788/

Возможно кому то также поможет.

 

b707
Offline
Зарегистрирован: 26.05.2017

Arduino85 пишет:

Еще нашел вот такую статью: https://geektimes.ru/post/263788/

повторяю - вам для вашей задачи все это не нужно

Гриша
Offline
Зарегистрирован: 27.04.2014

b707 пишет:

Arduino85 пишет:

Еще нашел вот такую статью: https://geektimes.ru/post/263788/

повторяю - вам для вашей задачи все это не нужно

а почему нет? там есть

Кольцевой буфер

о котором писали выше и другие способы