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

 
 
> Какая вероятность порчи данных в разных областях памяти AVR?
Laksus
сообщение Sep 9 2011, 09:30
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 146
Регистрация: 16-05-05
Пользователь №: 5 069



Насколько я понимаю, вероятность порчи данных в eeprom AVR большая, и желательно застраховаться от их порчи.

Допутим у меня в приборчике используется какая-то уставка, я ее храню в eeprom, в пяти копиях.
Кроме того во флеш записаны верхний и нижний допустимые пределы этой уставки.
При включении прибор читает копии уставки из еепром и если есть больше половины одинаковых, то проверяет лежат ли они в допустимых пределах, если да, то эта уставка присваивается переменной в RAM и дальше прибор с ней работает.
________________
Вопросы.
А какая вероятность порчи данных в ячейке RAM и FLASH?
Имеет ли смысл проверять правильность данных и в этих областях?
Если да, то как это лучше сделать?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
ArtemKAD
сообщение Sep 9 2011, 09:47
Сообщение #2


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

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



Цитата
Насколько я понимаю, вероятность порчи данных в eeprom AVR большая

Не правильно понимаете. Вероятность самопроизвольной порчи - крайне низкая. Порча происходит при попытках записи в условиях недостаточного питания или при банальнейших глюках ПО (к примеру при попытке чтения EEPROM в прерывании, без защиты содержимого служебных регистров, в момент ее записи в основном цикле)
Цитата
При включении прибор читает копии уставки из еепром и если есть больше половины одинаковых, то проверяет лежат ли они в допустимых пределах, если да, то эта уставка присваивается переменной в RAM и дальше прибор с ней работает.

Думаете в RAM долговременно хранится лучше чем в EEPROM?
Go to the top of the page
 
+Quote Post
Laksus
сообщение Sep 10 2011, 18:41
Сообщение #3


Частый гость
**

Группа: Участник
Сообщений: 146
Регистрация: 16-05-05
Пользователь №: 5 069



Цитата(ArtemKAD @ Sep 9 2011, 12:47) *
Вероятность самопроизвольной порчи - крайне низкая.

Ладно, пусть я не умею правильно обращаться с еепром (писать программы, разводить платы), но дело в том, что и в промышленных устройствах я несколько раз сталкивался с тем, что данные в eeprom портились. Учитывая, что я имел дело с очень небольшим количеством устройств, то проблема наверное все таки есть.

_________
Цитата(ArtemKAD @ Sep 9 2011, 12:47) *
Думаете в RAM долговременно хранится лучше чем в EEPROM?

Я не знаю, предполагаю, что лучше, но сомневаюсь, поэтому и спрашиваю.
Сделать голосование для eeprom очень просто, так как чтение у меня только при пуске, а свободных ячеек много.
А как проверять целостность данных в RAM я не знаю. Предположения есть, но при этом простенькая програмка станет монстром.

И еще насчет FLASH, где-то встречал мнение, что желательно при пуске пуске проверять контрольные суммы программы, но сейчас что-то не найду про это, хотелось бы чтобы кто-то подсказал где можно найти.

_________
Цитата(zhevak @ Sep 9 2011, 17:58) *
В основном советы сводятся к тому, что в схему нужно добавлять супервизор,

Это вроде бы это у первых AVR были плохие внутренние супервизоры, а в новых вроде бы нормальные.

_________
Цитата(zhevak @ Sep 9 2011, 17:58) *
после операции с EEPROM устанавливайте в регистре EEAR адрес ячейки, которая не используется.

А как лучше сделать, если програмка пишется в WinAVR, то если ввести неиспользуемую еепром-переменную и после любых обращений к еепром еще добавлять строчку с чтением этой переменной, будет это работать?
Go to the top of the page
 
+Quote Post
zhevak
сообщение Sep 10 2011, 19:26
Сообщение #4


Знающий
****

Группа: Свой
Сообщений: 723
Регистрация: 29-08-05
Из: Березовский
Пользователь №: 8 065



Цитата(Laksus @ Sep 11 2011, 00:41) *
Ладно, пусть я не умею правильно обращаться с

А это совсем не важно -- умеете Вы или нет. Важно -- хотите ли Вы научиться. Ваша жизнь не просто точка по пространстве. Ваша жизнь -- это движущаяся точка. Не важно, где Вы сейчас находитесь. Важно -- в каком направлении Вы двигаетесь.

Цитата
в промышленных устройствах я несколько раз сталкивался с тем, что данные в eeprom портились.

Все мы люди. И все разные. Кто-то делает на совесть, а кто-то абы-как. Кто-то пишет картины, а кто-то красит заборы.

Цитата
Я не знаю, предполагаю, что лучше, но сомневаюсь, поэтому и спрашиваю.
Сделать голосование для eeprom очень просто, так как чтение у меня только при пуске, а свободных ячеек много.
А как проверять целостность данных в RAM я не знаю. Предположения есть, но при этом простенькая програмка станет монстром.

Э-э... стоп-стоп-стоп! Я немного не понял. Мы говорим о проблемах несанкционированного изменения данных в EEPROM. Это, как мы знаем, происходят в моменты включения/выключения питания. Мы так же предполагаем, что программа написана правильно и не выполняет неожиданных действий. Иначе говоря, мы абсолютно понимаем как работает наша программа. Но, если нас беспокоят проблемы включения/выключения питания, то тогда причем здесь RAM? При выключении питания информация в RAM полностью теряется.

Цитата
И еще насчет FLASH, где-то встречал мнение, что желательно при пуске пуске проверять контрольные суммы программы, но сейчас что-то не найду про это, хотелось бы чтобы кто-то подсказал где можно найти.

Да ну! Что за фигня? Если Вы не изменяете флешь, то это граничит с паранойей. Так никто не делает. Что за аппарат такой Вы изобретаете, где требуется такая сверх-надежность?

Цитата
Это вроде бы это у первых AVR были плохие внутренние супервизоры, а в новых вроде бы нормальные.

Я лично с проблемами EEPROM не сталкивался. Может везло sad.gif ... хз.

Цитата
А как лучше сделать, если програмка пишется в WinAVR, то если ввести неиспользуемую еепром-переменную и после любых обращений к еепром еще добавлять строчку с чтением этой переменной, будет это работать?

1. Создайте переменную в EEPROM, которую читаете. Ее значение не принимает участия в программе. Проследите, чтобы компилятор не "соптимизировал" код.
2. Тупо записывайте в регистр EEAR адрес неиспользуемой ячейки. Для этого дела как нельзя к стати подходит байт с адресом ноль.


--------------------
Хочешь рассмешить Бога -- расскажи ему о своих планах!
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Laksus   Какая вероятность порчи данных в разных областях памяти AVR?   Sep 9 2011, 09:30
|- - ArtemKAD   Цитата(Laksus @ Sep 10 2011, 21:41) Ладно...   Sep 12 2011, 14:23
|- - Laksus   Цитата(ArtemKAD @ Sep 12 2011, 17:23) Раз...   Sep 13 2011, 06:04
||- - maksimp   Цитата(Laksus @ Sep 13 2011, 10:04) Дело ...   Sep 13 2011, 20:08
|- - zombi   Цитата(ArtemKAD @ Sep 12 2011, 17:23) уст...   Sep 15 2011, 05:40
- - zhevak   Что-то мне не нравится это определение -- "по...   Sep 9 2011, 14:58
- - kan35   Включайте brown out контроль и спите спокойно, ник...   Sep 11 2011, 08:55
- - V_G   Вопчем, вероятность порчи данных экспоненциально с...   Sep 12 2011, 14:30
- - ArtemKAD   ЦитатаА можно подробнее про это. Подробнее - двуст...   Sep 14 2011, 13:43
|- - defunct   Цитата(ArtemKAD @ Sep 14 2011, 16:43) Пра...   Sep 18 2011, 21:23
- - ArtemKAD   ЦитатаА эту ситуацию устранили? и каким образом? т...   Sep 15 2011, 11:05
- - Laksus   Возвращаясь к первому вопросу - какая вероятность ...   Sep 16 2011, 07:48
|- - ILYAUL   QUOTE (Laksus @ Sep 16 2011, 11:48) Возвр...   Sep 16 2011, 10:04
|- - Alfa   Цитата(Laksus @ Sep 16 2011, 13:48) Возвр...   Sep 16 2011, 10:55
- - V_G   Чрезвычайно низкая при соблюдении требований по пи...   Sep 16 2011, 09:46
- - thinkerreed   Была недавно проблема с eeprom в серии девайсов, г...   Sep 19 2011, 09:45
- - Maik-vs   В EEPROMе пусть хранится набор данных с возможност...   Sep 19 2011, 12:01
- - ArtemKAD   Цитатаа включать BOD - тоже не вариант, потреблени...   Sep 19 2011, 15:35


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

 


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


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