Память EEPROM
- Войдите на сайт для отправки комментариев
Пнд, 27/11/2017 - 07:04
Всем привет!
Собираю схему на Arduino Nano управления RGB подсветка для панели авто. Планирую так что бы последняя настройка сохранялась в памяти. Но в описании написано что EEPROM имеет ограниченное количество записей 100 000.
Вопрос такой: Что нужно добавить в схему что бы было не ограниченное количество записей? Может есть какие та модули памяти?! Как это решается в промышленных контроллерах которые каждую минуту записывают часы работы, пользовательские настройки (при том не имея батарейки для энергозависымой памяти)? Или это ограничение EEPROM только у Atmela?
Буду рад за любые подсказки!
Но в описании написано что EEPROM имеет ограниченное количество записей 100 000.
Вопрос такой: Что нужно добавить в схему
МОЗГ!!!! так чтобы алгоритм не делал этого каждую секунду, а только по неообходимости. попробуйте пересчитать эту цифру в года при записи в ПРОМ 10 раз в сутки - ну так, для интереса...
На практике часто записывают в следующую свободную ячейку, а когда достигнут последней, всё стирают и пишут в первую, и так по циклу. Чтоб не одна ячейка сильно уставала, а все, но по чуть-чуть.
Ещё можно поставиль внешний EEPROM с каким-нить I2C интерфейсом. Сдохнет - так хотя бы поменять проще, чем контроллер.
P.S.: Ну и раз в минуту это реально перебор...
А при записи в EEPROM разве не все ячейки перезаписываются?
А что происходит когда заканчиваеться количество записей. Сохраняется последяя запись или ячейка обнуляется?
Можно же тогда написать скетч который после записи в ячейку считывал бы данные и проверял записались ли они. И если нет то понимал что ячейка стерлась и записывал в другую.
А при записи в EEPROM разве не все ячейки перезаписываются?
А что происходит когда заканчиваеться количество записей. Сохраняется последяя запись или ячейка обнуляется?
Можно же тогда написать скетч который после записи в ячейку считывал бы данные и проверял записались ли они. И если нет то понимал что ячейка стерлась и записывал в другую.
1) Нет;
2) Поведение неопределено, состояние ячейки непредсказуемо;
3) Можно.
Если вы будете делать перенастройку каждую минуту в сутки, то ячейки епрома хватит на два месяца (это по гарантии, на самом деле раз в десять больше). Вот только когда вы собираетесь кушать, спать и управлять этим самым автомобилем?
Для любых настроек осуществляемых человеком на ресурс EEPROM можно вообще не обращать внимания, вы физически не сумеете его превысить.
А по личному опыту, все эти свителки-мигалки-перделки интересны первую неделю, а потом забываешь где и кнопка находится. ИМХО.
Можно же тогда написать скетч который после записи в ячейку считывал бы данные и проверял записались ли они. И если нет то понимал что ячейка стерлась и записывал в другую.
Короткий ответ - можно. Однако если смотреть подробней - все ваши вопросы лишние, поскольку ограничение количества записей в ЕЕПРОМ для вашей задачи абсолютно не имеют значения. Грамотно пишите скетч, чтобы он не записывал настройки в память "каждую минуту", а делал это только тогда, когда вы что-то изменили - и тогда ресурса ЕЕПРОМ хватит не только на всю жизнь машины, а останется даже вашим правнукам :)
Всем спасибо!
Еще нашел вот такую статью: https://geektimes.ru/post/263788/
Возможно кому то также поможет.
Еще нашел вот такую статью: https://geektimes.ru/post/263788/
повторяю - вам для вашей задачи все это не нужно
Еще нашел вот такую статью: https://geektimes.ru/post/263788/
повторяю - вам для вашей задачи все это не нужно
а почему нет? там есть
Кольцевой буфер
о котором писали выше и другие способы