ILYAUL 0 16 сентября, 2011 Опубликовано 16 сентября, 2011 · Жалоба Возвращаясь к первому вопросу - какая вероятность порчи данных в ram, eeprom, flash? Это не корректный вопрос , так как нет начальных условий. А они зависят от всего комплекса задач стоящих перед вашим проектом. Питание , помехозащещённость , программа , активность солнца , ориентация платы в пространстве, даты выпуска процессора , условия в цехе при его изготовлении ( влажность давление температура , чистота воздуха) ..... Когда Вы будете знать все эти условия - сможете , крайне приблизительно, расчитать вероятность отказа. З.Ы У меня дисплей 5 лет отработал на разработке всевозможных проектов , в какие только "переделки" не попадал, а тут на ровном месте взял и сдох , причём красиво так , мирно и без пыли . Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Alfa 0 16 сентября, 2011 Опубликовано 16 сентября, 2011 · Жалоба Возвращаясь к первому вопросу - какая вероятность порчи данных в ram, eeprom, flash? И вытекающий из первого - нужно ли принимать меры по проверки целостности данных и какие? У меня исторически сложилось что при запуске проверяется контрольная сумма и памяти программ и памяти данных. Если проблемы - индицируем пользователю. Прошивка может обновляться, поэтому чтобы быть уверенным что все залилось корректно - проверяю CRC flash. Параметры в eeprom влияют на алгоритмы работы прибора. Параметры также могут меняться юзером. Потому проверяю CRC eeprom. Если есть возможность храню две копии параметров. Одна сбойнет - читаем другую и восстанавливаем порченную.... Насчет контроля ОЗУ. никогда не применял. ИМХО этот изврат может понадобиться крайне редко. например если рядом включаются- выключаются многокиловатные движки или взрываются атомные бомбы... как то так Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
defunct 0 18 сентября, 2011 Опубликовано 18 сентября, 2011 · Жалоба Правильно - регулярное обновление. Как вариант - выбрать некоторое событие Регулярное обновление чего? данных в RAM? или данных в EEPROM? Мне все же схема автора кажется куда более правильной, единственное нужно помочь ему подправить ее напильником: 1. Необходимо иметь несколько копий уставок (обычно две) в энергонезависимой памяти, защищенных контрольной суммой. 2. При старте устройства, необходимо выполнить чтение и верификацию всех копий уставок - прочитать каждую копию и проверить контрольную сумму. 3. Обновить поврежденные копии "до победы", - т.е. записывать уставки и считывать их до тех пор пока все копии не пройдут верификацию. 4. Скопировть любую копию уставок в ОЗУ - после чего работать исключительно с уставками в ОЗУ. 5. После того как копия уставок загружена в ОЗУ - прибор можно считать готовым к работе. 6. При изменении любого параметра в ОЗУ - обновить все копии уставок в энергонезависимой памяти (здесь можно записью без проверок, а можно и "до победы" как в п.3). энергонезависимая память здесь любое из: внутренний/внешний eeprom/флеш, SD карточка, MMC, и т.д. и т.п. Возвращаясь к первому вопросу - какая вероятность порчи данных в ram, eeprom, flash? И вытекающий из первого - нужно ли принимать меры по проверки целостности данных и какие? Могу дать свои цифры для таких начальных условий: Планируется эксплуатировать устройство 1 год, включать-отключать раз в неделю, BOD выключен, нет внешнего супервизора питания, в программе есть функции записи флеш (команда SPM): вероятность "порчи" флеш - 100%. такая же самая вероятность и "порчи" eeprom, при тех же начальных условиях. Всё это из-за 100% "порчи" RAM при выходе питания за допустимые пределы. Включение BOD - практически полностью убирает возможность искажения RAM по вине железа. Но если в коде будут вызовы SPM, тогда даже с включенным BOD'ом вероятность что-то угробить во флеш/eeprom будет очень высока. Ключевой момент - запись в EEPROM и FLASH - длительная операция, достаточно рубануть питание в момент записи, для того чтобы появилась "порча" данных (данные записались/стерлись не польностью). Делайте выводы. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
thinkerreed 0 19 сентября, 2011 Опубликовано 19 сентября, 2011 · Жалоба Была недавно проблема с eeprom в серии девайсов, где на атмеге до кучи сделаны и часы. Научить потребителей обращаться с платами аккуратно - это нечто нереальное, а включать BOD - тоже не вариант, потребление от батарейки возрастает почти на порядок. Несколько раз из эксплуатации возвращались платы с полностью занулённой eeprom, хз как такое получается (ИМХО очень маловероятно). В итоге пришли к тому, чтобы критически важные данные (такие как серийник) писать во flash и устанавливать lock, после этого безобразие прекратилось. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
maik-vs 0 19 сентября, 2011 Опубликовано 19 сентября, 2011 (изменено) · Жалоба В EEPROMе пусть хранится набор данных с возможностью проверки (CRC, две копии и т.д.) Читаем из EEPROM в RAM когда юзер начал пользоваться прибором, или там вызвал меню. Если такого события нет, то раз в десятки минут - часы. Если данные повреждены, восстанавливаем их из FLASH, где лежит дефолтный набор. Настройки обнуляются - сбой серьёзный, но не смертельный. Если основная программа содержит SPM, проверяем её CRC при включении питания. Не сходится CRC - уходим на бут-лоадер, если он есть, и бесконечно мигаем индикаторами. У меня бывало, слетали и флеш и епром, при больших неприятностях по питанию - например, резко клинит большой коллекторный движок, или лопается мощная галогеновая лампа. Тогда происходят разные электромагнитные процессы, горят предохранители, срабатывают защиты, ну вылетал флеш пару раз... Изменено 19 сентября, 2011 пользователем Maik-vs Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
artemkad 81 19 сентября, 2011 Опубликовано 19 сентября, 2011 · Жалоба а включать BOD - тоже не вариант, потребление от батарейки возрастает почти на порядок В новых AVR (PA) используйте коммутируемый BOD. Или прежде чем писать EEPROM проверяйте АЦП хватит ли питания для записи. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться