Обсуждаем контроллеры компании Atmel.
Ср янв 18, 2023 01:00:53
Столкнулся с такой проблемой: уезжают данные, записанные в EEPROM тиньки: вместо записанного значения через некоторое время читаются рандомные, при чем на одних контроллерах все хорошо, а на других проблема. Никто не сталкивался с подобным? Устройство работает от сети через БП на LMK304. Фильтрацию по питанию сделал, керамика по питанию висит везде, где только можно. Что я делаю не так? Может ли иметь место заводской брак?
Ср янв 18, 2023 03:06:19
Попробуй оба варианта:
1) Включить контроль питания.
2) В момент записи значений в EEPROM запрещать глобальные прерывания (если запись значений производится не в прерываниях).
Ср янв 18, 2023 05:37:40
Viper_Snake писал(а):... Никто не сталкивался с подобным?.. Может ли иметь место заводской брак?
Бывает. Была партия AT90USB162 вообще без EEPROM. Давно ещё партия AT90S4414, у которой не работала EEPROM при питании 5V, а при 3V обмен проходил на ура. Поэтому стараюсь использовать для критических данных режим Self-Programming the Flash.
По вопросу... При выходе из программ записи/чтения очищать EECR и задавать нерабочий адрес EEAR.
Ср янв 18, 2023 08:51:54
Основные правила:
Никогда не использовать нулевой байт EEPROM.
Включать BODEN. Настройка на нужное напряжение.
Отключать прерывания.
После любого обращения к EEPROM указатель в ноль.
По вопросу. Проверить напряжение питания. Питание посмотреть осциллографом на предмет пульсаций. BODEN. Ну и перечисленные правила.
Powered by phpBB © phpBB Group.
phpBB Mobile / SEO by Artodia.