|
Какая вероятность порчи данных в разных областях памяти AVR? |
|
|
|
 |
Ответов
|
Sep 9 2011, 09:47
|
Профессионал
    
Группа: Свой
Сообщений: 1 508
Регистрация: 26-06-06
Из: Киев
Пользователь №: 18 364

|
Цитата Насколько я понимаю, вероятность порчи данных в eeprom AVR большая Не правильно понимаете. Вероятность самопроизвольной порчи - крайне низкая. Порча происходит при попытках записи в условиях недостаточного питания или при банальнейших глюках ПО (к примеру при попытке чтения EEPROM в прерывании, без защиты содержимого служебных регистров, в момент ее записи в основном цикле) Цитата При включении прибор читает копии уставки из еепром и если есть больше половины одинаковых, то проверяет лежат ли они в допустимых пределах, если да, то эта уставка присваивается переменной в RAM и дальше прибор с ней работает. Думаете в RAM долговременно хранится лучше чем в EEPROM?
|
|
|
|
|
Sep 10 2011, 18:41
|
Частый гость
 
Группа: Участник
Сообщений: 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, то если ввести неиспользуемую еепром-переменную и после любых обращений к еепром еще добавлять строчку с чтением этой переменной, будет это работать?
|
|
|
|
|
Sep 12 2011, 14:23
|
Профессионал
    
Группа: Свой
Сообщений: 1 508
Регистрация: 26-06-06
Из: Киев
Пользователь №: 18 364

|
Цитата(Laksus @ Sep 10 2011, 21:41)  Ладно, пусть я не умею правильно обращаться с еепром (писать программы, разводить платы), но дело в том, что и в промышленных устройствах я несколько раз сталкивался с тем, что данные в eeprom портились. Учитывая, что я имел дело с очень небольшим количеством устройств, то проблема наверное все таки есть. Причин может быть воз и маленькая тележка. Причем 99% - вина разработчика. Цитата(Laksus @ Sep 10 2011, 21:41)  Цитата Думаете в RAM долговременно хранится лучше чем в EEPROM? Я не знаю, предполагаю, что лучше, но сомневаюсь, поэтому и спрашиваю. Неправильно предполагаете. Я лет пять назад столкнулся с ситуацией в которой устройство (брелок охранной автосигнализации) через несколько недель непрерывной работы (батарейка постоянно включена) терял некоторые данный в RAM(сериальный код блока). Разработчики этого устройства, которое выпускалось десятками тысяч штук сделали бредовую ошибку - читали содержимое EEPROM однократно, только при подаче питания. Цитата(Laksus @ Sep 10 2011, 21:41)  Это вроде бы это у первых AVR были плохие внутренние супервизоры, а в новых вроде бы нормальные. У первых - супервизоров не было вообще.
|
|
|
|
|
Sep 13 2011, 06:04
|
Частый гость
 
Группа: Участник
Сообщений: 146
Регистрация: 16-05-05
Пользователь №: 5 069

|
Цитата(ArtemKAD @ Sep 12 2011, 17:23)  Разработчики этого устройства, которое выпускалось десятками тысяч штук сделали бредовую ошибку - читали содержимое EEPROM однократно, только при подаче питания. А можно подробнее про это. Дело в том, что в устройстве, которое я сейчас делаю (пока работает одно, всего собираюсь сделать пять штук) я тоже читаю EEPROM только при подаче питания. А как правильно? Цитата(ArtemKAD @ Sep 12 2011, 17:23)  У первых - супервизоров не было вообще. Ну я имел ввиду, когда они уже появились, то первые были ненадежные, и было общепризнанным правилом их не использовать, а ставить внешние. __________ А вообще то я для себя решил, что так как по любому нельзя самим устройством обнаружить все свои глюки, то сделаю еще один приборчик, который будет следить за работой основного устройства, и в случае недопустимого отклонения в режиме работы основного, будет давать сигнал аварии и блокировать опасные действия первого устройства. Думаю, что вероятность отказа обеих устройств сразу, будет очень малой.
|
|
|
|
|
Sep 13 2011, 20:08
|
Местный
  
Группа: Участник
Сообщений: 313
Регистрация: 2-07-11
Пользователь №: 66 023

|
Цитата(Laksus @ Sep 13 2011, 10:04)  Дело в том, что в устройстве, которое я сейчас делаю (пока работает одно, всего собираюсь сделать пять штук) я тоже читаю EEPROM только при подаче питания. А как правильно? Наверное правильно читать EEPROM регулярно всё время. Подобная проблема есть у FPGA - они читают конфигурационную флеш 1 раз при включении, и потом работают на копии в ОЗУ. Но может пролететь космическая частица и произойти сбой. Вот и придумывают для борьбы с этим всякие костыли к FPGA - подсчёт контрольной суммы содержимого конфигурационного ОЗУ, реализация 3 одинаковых схем внутри и т.д.
|
|
|
|
Сообщений в этой теме
Laksus Какая вероятность порчи данных в разных областях памяти AVR? Sep 9 2011, 09:30  zhevak Цитата(Laksus @ Sep 11 2011, 00:41) Ладно... Sep 10 2011, 19:26   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
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|