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

 
 
 
Reply to this topicStart new topic
> 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
_Pasha
сообщение Nov 18 2008, 22:26
Сообщение #2


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



Цитата(west329_ @ Nov 19 2008, 01:05) *
Подскажите что это может быть ?

Думается, что это битый контроллер, а именно - камень начинает работать с напряжения ниже допустимого. А BOD сутки отдыхал - с пересыпу не вкуривает, чо делать нада smile.gif
Go to the top of the page
 
+Quote Post
vvs157
сообщение Nov 18 2008, 23:45
Сообщение #3


Профессионал
*****

Группа: Свой
Сообщений: 1 526
Регистрация: 8-04-05
Пользователь №: 3 960



Цитата(west329_ @ Nov 19 2008, 00:05) *
Странная зависимость обнаружилась, при работе устройства.
В памяти хранятся базовые настройки системы, перед их использованием проверяется их crc.

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

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

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

Подскажите что это может быть ?
Попробуйте не использовать нулевой адрес в EEPROM
Go to the top of the page
 
+Quote Post
west329_
сообщение Nov 19 2008, 07:01
Сообщение #4


Местный
***

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



Цитата(vvs157 @ Nov 19 2008, 03:45) *
Попробуйте не использовать нулевой адрес в EEPROM


Попробуем, других вариантов нету.

Интересно с чем это связано 07.gif
Go to the top of the page
 
+Quote Post
espectro
сообщение Nov 19 2008, 07:37
Сообщение #5


Участник
*

Группа: Участник
Сообщений: 31
Регистрация: 17-02-08
Пользователь №: 35 137



Цитата(west329_ @ Nov 19 2008, 00:05) *
Вывод ресет висит в воздухе.

Почему?
Go to the top of the page
 
+Quote Post
west329_
сообщение Nov 19 2008, 07:47
Сообщение #6


Местный
***

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



Цитата(espectro @ Nov 19 2008, 11:37) *
Почему?


А куда его деть laughing.gif ? отломить smile.gif

Изредка для прошивки используем и всё.

Можем для опыта подтянуть его к + через 10к.

Сообщение отредактировал west329_ - Nov 19 2008, 07:48
Go to the top of the page
 
+Quote Post
espectro
сообщение Nov 19 2008, 11:03
Сообщение #7


Участник
*

Группа: Участник
Сообщений: 31
Регистрация: 17-02-08
Пользователь №: 35 137



Цитата(west329_ @ Nov 19 2008, 10:47) *
А куда его деть laughing.gif ? отломить smile.gif
Можем для опыта подтянуть его к + через 10к.

Для опыта?) Я думал, что подтягивать ресет на + питания - это хороший тон smile.gif
Go to the top of the page
 
+Quote Post
GDI
сообщение Nov 19 2008, 11:52
Сообщение #8


Профессионал
*****

Группа: Свой
Сообщений: 1 235
Регистрация: 14-05-05
Из: Санкт-Петербург
Пользователь №: 5 008



И еще конденсатор 0,1мк на землю чтоб помехи лишние не ловил.


--------------------
http://www.embedders.org Блоги разработчиков электроники.
Go to the top of the page
 
+Quote Post
defunct
сообщение Nov 20 2008, 00:31
Сообщение #9


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(espectro @ Nov 19 2008, 13:03) *
Для опыта?) Я думал, что подтягивать ресет на + питания - это хороший тон smile.gif

Но только не через резистор, т.к. резет и так подтянут к питанию через внутренний pull-up.
Если хотите подтянуть то надо цеплять пин непосредственно к VCC.
Цитата
И еще конденсатор 0,1мк на землю чтоб помехи лишние не ловил.

Больше помех наведется на дорожки которые неизбежно появятся если применить оба перечисленных совета - довесить резистор и кондер. Не надо ничего к резету цеплять, он самодостаточен по крайней мере в m162. В крайнем случае если Вас разражает висение этого пина в воздухе - прицепите его к Vcc.
Или вам нравится иметь букет резет флагов? POR/BOD/EXT в одном флаконе?

Цитата
А куда его деть

оставьте висеть.
eeprom все равно падает не из-за этого.
Возможно он падает из-за BOD 2.9V такого в m162 просто нет.

Для того чтобы более точно сказать что может быть - попробуйте хранить две копии конфигурации, и проинформируйте нас слетают ли обе или только одна, если одна то какая?
Go to the top of the page
 
+Quote Post
haker_fox
сообщение Nov 20 2008, 02:18
Сообщение #10


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

Группа: Свой
Сообщений: 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
west329_
сообщение Nov 20 2008, 06:22
Сообщение #11


Местный
***

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



Цитата(defunct @ Nov 20 2008, 04:31) *
eeprom все равно падает не из-за этого.
Возможно он падает из-за BOD 2.9V такого в m162 просто нет.



Нащёт BOD 2.9V нашол в даташите, возможно я ошибаюсь.

Похоже причину нашли, но пока небуду утверждать на 100%, но проблема пропала.

Какая ситуация была, изначально во время отладки всего устройства после ресета выводилась служебная информация (мы никак немогли понять почему первые пару символов отображались крякозябрамы, хотя система высела на кварце), только потом проводился контроль срс, проблем с еепром небыло.

В финальной версии вывод служебной информации, был убран как мы поняли это в своём роде была небольшая задержка, подставил програмную задержку и всё стало нормально.

Как я понял что это связано с питанием во время включения, и чтением сразу с еепрома. Все клонится в сторону применения внешнего визора питания.
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
GDI
сообщение Nov 20 2008, 07:45
Сообщение #12


Профессионал
*****

Группа: Свой
Сообщений: 1 235
Регистрация: 14-05-05
Из: Санкт-Петербург
Пользователь №: 5 008



Из таблицы видно , что 2,9 это максимальное значение, а говорят всегда про типичное, т.е. в вашем случае надо говорить, что БОД установлен на 2,7в, тогда и не будет разногласий.


--------------------
http://www.embedders.org Блоги разработчиков электроники.
Go to the top of the page
 
+Quote Post
defunct
сообщение Nov 20 2008, 15:01
Сообщение #13


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(west329_ @ Nov 20 2008, 08:22) *
В финальной версии вывод служебной информации, был убран как мы поняли это в своём роде была небольшая задержка, подставил програмную задержку и всё стало нормально.

Установите фузами требуемую задержку включения.
см. фузы SUTxx.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 18th July 2025 - 15:37
Рейтинг@Mail.ru


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