реклама на сайте
подробности

 
 
> mega162 теряет настройки EEPROM
west329_
сообщение Nov 18 2008, 21:05
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 378
Регистрация: 10-09-07
Из: UKR/Voz
Пользователь №: 30 423



Странная зависимость обнаружилась, при работе устройства.
В памяти хранятся базовые настройки системы, перед их использованием проверяется их crc.

Замечен сбой crc когда когда устройство полежит без работы сутки 07.gif .
При частых включених и выключениях питания всё нормально, без ошибок.

Питание 3,3 вольт,
Включен встроеный супервизор питания на 2.9В

Вывод ресет висит в воздухе.

Подскажите что это может быть ?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
haker_fox
сообщение Nov 20 2008, 02:18
Сообщение #2


Познающий...
******

Группа: Свой
Сообщений: 2 963
Регистрация: 1-09-05
Из: г. Иркутск
Пользователь №: 8 125



Хочу поделиться аналогичным случаем. Вчера обнаружил, что мое устройство "теряет" данные в EEPROM, если девайс выключить на некоторое время. Если прибор не выключать, то при загрузке данных нет никаких проблем. Что самое интересное, данные, которые загружались всегда были правильными, независимо от состояния CRC8. Меня очень сильно насторожил сей факт, как так, данные визуально в порядке, а CRC показывает сбой? В итоге выяснилась неприятная ошибка в реализации расчета CRC: контрольная сумма считается табличным методом. crc8Table - массив коэффициентов, используемый при расчете, хранится во FLASH.
Чтобы считать данные, мы должны применить такую конструкцию
Код
*crc8 = pgm_read_byte(crc8Table + (*crc8 ^ byte));

Я же, по ошибке, написал это
Код
*crc8 = crc8Table[*crc8 ^ byte];

Естественно, при расчете программа читала данные не из постоянной неизменяемой FLASH, а из SRAM, где данные рандомны.
Таким образом, при постоянно включенном питании данные в той области SRAM, откуда читались коэффициенты были постоянны (ну так, видимо получилось), а при выключении с последующим включением, данные были другими, соответсвенно CRC8 считалась по новым коэффициетам и не совпадала с записанной. Вот и получалось, что после выключения прибор терял настройки. На самом деле причина была в совершенно другом месте, а не в BOD, EEPROM и тп.
Вот так вот...


--------------------
Выбор.
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 01:30
Рейтинг@Mail.ru


Страница сгенерированна за 0.01292 секунд с 7
ELECTRONIX ©2004-2016