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

 
 
3 страниц V  < 1 2 3  
Reply to this topicStart new topic
> слетает память у Atmega16, слетает память у Atmega16
Santy
сообщение Sep 30 2013, 06:50
Сообщение #31


Участник
*

Группа: Участник
Сообщений: 49
Регистрация: 30-10-07
Пользователь №: 31 879



Цитата(Harbinger @ Sep 30 2013, 07:39) *
Писать калибровки во Flash без возможности изменения не всегда получится - они могут настраиваться в процессе регулировки изделия.
Поступал следующим образом. В EEPROM хранится несколько копий массива калибровочных параметров, защищённых CRC. При старте проверяются все копии. Если CRC в порядке, калибровки считываются в ОЗУ и переходим в штатный режим работы. В случае повреждения какой-либо копии массива она восстанавливается из неповреждённой. Если же совсем "всё пропало" - EEPROM переписывается из FLASH "среднепотолочными" значениями и выставляется признак, что устройство не настроено. Автоматически получается инициализация EEPROM при первом запуске.

Как часто при этом появляется признак, что устройство не настроено?
Go to the top of the page
 
+Quote Post
demiurg_spb
сообщение Sep 30 2013, 07:44
Сообщение #32


неотягощённый злом
******

Группа: Свой
Сообщений: 2 746
Регистрация: 31-01-08
Из: Санкт-Петербург
Пользователь №: 34 643



Цитата(krux @ Sep 28 2013, 17:41) *
какой-нибудь M103С fuse?
Не, это из оперы mega128, а тут mega16...

Я храню 5 копий таких "сильно важных параметров" и, при старте, применяю к ним медианную фильтрацию.
Потом сравниваю результат со всеми пятью записанными и, по мере надобности, восстанавливаю битые байты.
Плюс такого метода: не нужно crc и надёжнее чем 3 копииsm.gif
Минус: 5 копий съедают больше памяти чем 2-3 копии, нужна процедура медианной фильтрации для каждого типа хранимых данных (у меня поэтому сделано всё однотипно).


--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
Go to the top of the page
 
+Quote Post
Harbinger
сообщение Sep 30 2013, 09:31
Сообщение #33


старший лаборант
******

Группа: Свой
Сообщений: 2 702
Регистрация: 30-09-05
Из: ЮЗЖД
Пользователь №: 9 097



Цитата(Santy @ Sep 30 2013, 09:50) *
Как часто при этом появляется признак, что устройство не настроено?
Ни разу не удалось отловить на пятизначных тиражах.
Но МК там вовсе не AVR были. В одном случае (давнем) - AT89S8252(3), резервирование 5-кратное, в другом - из серии LPC900 (NXP), в качестве EEPROM использовался последний сектор FLASH, резервирование 3-кратное.


--------------------
Китайская комплектация - европейское качество! ;)
Go to the top of the page
 
+Quote Post
ArtemKAD
сообщение Sep 30 2013, 09:34
Сообщение #34


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

Группа: Свой
Сообщений: 1 508
Регистрация: 26-06-06
Из: Киев
Пользователь №: 18 364



Цитата
Автоматически получается инициализация EEPROM при первом запуске.

Делаю примерно аналогично. Причем по большей части по вот этой причине.
PS. Слетаний EEPROM у AVR-ок уже больше 10 лет не наблюдаю. Ни на одном устройстве из тех десятков тысяч которые были выпущены.
Go to the top of the page
 
+Quote Post
messenger
сообщение Oct 1 2013, 06:46
Сообщение #35


Местный
***

Группа: Участник
Сообщений: 361
Регистрация: 23-03-07
Пользователь №: 26 457



to ARV and Harbinger
Спасибо за дельные советы! Как это я сам не догадался)
посмотрел код) у меня память использована на 90%

Сообщение отредактировал messenger - Oct 1 2013, 20:22
Go to the top of the page
 
+Quote Post

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

 


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


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