EEPROM for AVR

Обсуждаем контроллеры компании Atmel.
Ответить
Родился
Аватара пользователя
Сообщения: 13
Зарегистрирован: Пт апр 27, 2012 22:03:23
Откуда: Новороссийск

Сообщение Liberty_Prime »

Доброго времени суток кошачьему сообществу!
Такой вопрос:
Собираю термостат на 168-й атмеге, имеется необходимость сохранять значение температуры в энергонезависимую память, в следствии чего вопрос - использовать встроенный EEPROM(вроде как 10000 циклов) или применить внешнюю память?
Изображение
Реклама
Говорящий с текстолитом
Аватара пользователя
Сообщения: 1518
Зарегистрирован: Пт дек 28, 2012 21:56:46
Откуда: St. Petersburg

Сообщение blackx »

Ну вот и посчитайте, насколько хватит вашего устройства.
Изображение only pure true norwegian blackx Изображение
Реклама
Родился
Аватара пользователя
Сообщения: 13
Зарегистрирован: Пт апр 27, 2012 22:03:23
Откуда: Новороссийск

Сообщение Liberty_Prime »

2blackx, я хотел знать мнение, людей, собиравших подобные устройства, какие решения они применяли
Изображение
Мудрый кот
Аватара пользователя
Сообщения: 1802
Зарегистрирован: Ср сен 07, 2011 21:40:30

Сообщение Flasher »

100 000 циклов.
А какие решения тут применять? Хватит на срок службы-значит и париться не нужно.
Реклама
Эиком - электронные компоненты и радиодетали
Друг Кота
Аватара пользователя
Сообщения: 3832
Зарегистрирован: Сб сен 10, 2011 17:46:25

Сообщение oleg110592 »

нет условий всех в задаче - с какой частотой писать еепром будете
если 10000 раз в минуту - на минуту и хватит
Реклама
Родился
Аватара пользователя
Сообщения: 13
Зарегистрирован: Пт апр 27, 2012 22:03:23
Откуда: Новороссийск

Сообщение Liberty_Prime »

нет, писать будет только при изменении значения порога срабатывания - т.е. не особо часто. Т.е. есть смысл использовать встроенный EEPROM и не клеить себе мозги?)
Изображение
Реклама
Мудрый кот
Аватара пользователя
Сообщения: 1802
Зарегистрирован: Ср сен 07, 2011 21:40:30

Сообщение Flasher »

Нет смысла использовать внешнюю память.
Родился
Аватара пользователя
Сообщения: 13
Зарегистрирован: Пт апр 27, 2012 22:03:23
Откуда: Новороссийск

Сообщение Liberty_Prime »

спасибо, это мне и нужно было)
Изображение
Грызет канифоль
Сообщения: 256
Зарегистрирован: Вт окт 08, 2013 07:38:59
Откуда: СПб

Сообщение Smen »

Liberty_Prime писал(а):это мне и нужно было
Так это же очевидно из условия.
А ещё можно использовать "размазывание" (последовательную запись в массив памяти), тем самым увеличив срок пропорционально количеству ячеек.
Грызет канифоль
Сообщения: 285
Зарегистрирован: Вс сен 05, 2010 15:35:50

Сообщение protoder »

Ну, поколдовать можно. Как вариант, придумать чередование ячеек EEPROM, что бы не все время писать в одну, а сдвигая. Сначала используем первую, потом вторую и т.д. Тогда при чтении можно брать последнюю не равную 0xFF (но тогда надо что-то придумывать, как сохранять значение 0xFF. Короче, канитель, но канитель интересная ).
Друг Кота
Сообщения: 6014
Зарегистрирован: Чт ноя 26, 2009 11:16:50
Откуда: Москва

Сообщение SmarTrunk »

Даже если каждый день будут менять порог срабатывания по нескольку раз, ресурса ЕЕПРОМ хватит лет на десять, и чередования не потребуется, вроде.

Обязательно требуется защита ЕЕПРОМ от повреждения при выключении питания, хотя бы включением "Brown-out Detector". Это упоминается в даташите, раздел "Preventing EEPROM Corruption". Встречаются и более затейливые рекомендации на этот счет. Для параноиков - поставить внешний монитор питания, это дешевая трехвыводная деталь.

Наконец, можно подсчитывать и записывать контрольную сумму запоминаемого числа. В случае ее несоответствия при считывании, использовать значение по-умолчанию.



Гораздо интереснее, если параметр, который надо запоминать, меняется часто. Тогда можно сохранять его в ОЗУ, а записывать в ЕЕПРОМ только в момент выключения. Но это требует усложнения и схемы, и программы (было обсуждение на форуме). Однако, автору темы этого не требуется.
Грызет канифоль
Сообщения: 256
Зарегистрирован: Вт окт 08, 2013 07:38:59
Откуда: СПб

Сообщение Smen »

SmarTrunk писал(а):Но это требует усложнения и схемы, и программы
Если в EEPROM используется только пара ячеек, такой вариант невыгоден.
Тут как-раз предпочтительнее "размазывание". Если достаточно записывать числа до 127 включительно, то решается вообще элементарно.
Ответить

Вернуться в «AVR»