Реклама на сайте DatasheetsDatasheets

KAZUS.RUN - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Книги и журналы
FAQ по электронике

  Datasheets
Поиск SMD
Онлайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Схемы и проекты
Принципиальные схемы
  Программы
Каталог сайтов
Калькуляторы
  Форумы по электронике
Помощь проекту

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы

eeprom в atmega8

Непрочитано 06.04.2010, 09:00  
EKuzmich
Прописка
 
Регистрация: 07.08.2005
Сообщений: 178
Сказал спасибо: 16
Сказали Спасибо 6 раз(а) в 6 сообщении(ях)
EKuzmich на пути к лучшему
По умолчанию eeprom в atmega8

Добрый день. У меня проблема, запутался в 3-х соснах. Может ли при отключении устройства на базе mega8 изменяться содержимое eeprom и если да то что необходимо предпринять для предотвращения этого?
Реклама:
__________________
Дайте точку опоры и я ...

Последний раз редактировалось EKuzmich; 06.04.2010 в 09:03.
EKuzmich вне форума  
Непрочитано 06.04.2010, 09:27  
urry
Почётный гражданин KAZUS.RUN
 
Аватар для urry
 
Регистрация: 06.02.2007
Сообщений: 1,340
Сказал спасибо: 3
Сказали Спасибо 107 раз(а) в 66 сообщении(ях)
urry на пути к лучшему
По умолчанию Re: eeprom в atmega8

везде меняется - что пик, что авр.
Методы борьбы -
1 если есть возможность не юзать - не использовать.
2 не трогать первые ячейки, писать вглубь
3 использовать внешний супервизор питания, не забывая и о встроенном
4 размещать инфу в нескольких местах, закрывая контрольной суммой.
при включении девайса считывать и анализировать - если запоролась, то переписать из того блока. где кс совпала.
__________________
warez
urry вне форума  
Непрочитано 06.04.2010, 11:14  
SasaVitebsk
Гражданин KAZUS.RUN
 
Регистрация: 04.08.2006
Сообщений: 911
Сказал спасибо: 28
Сказали Спасибо 180 раз(а) в 139 сообщении(ях)
SasaVitebsk на пути к лучшему
По умолчанию Re: eeprom в atmega8

Выпускали тысячи устройств на м8, да и других тоже. Если меняется EEPROM, то очень велика вероятность неработоспособности устр-в. Возвратов по этой причине не наблюдали.

Если правильно написана программа, установлен BOD (это обязательно), то EEPROM портится не должен. Если он портится, то это ни чем не уберёшь. Никакими CRC. Отнеситесь также внимательно к источнику.
SasaVitebsk вне форума  
Непрочитано 06.04.2010, 12:25  
E97
Почётный гражданин KAZUS.RUN
 
Регистрация: 08.01.2008
Сообщений: 1,140
Сказал спасибо: 379
Сказали Спасибо 429 раз(а) в 273 сообщении(ях)
E97 на пути к лучшему
По умолчанию Re: eeprom в atmega8

Нарушается содержимое EEPROM если микроконтроллер работает при пониженном напряжении. Для сброса контролерра при снижении напряжения в ATmega предусмотрен встроенный супервизор питания BOD для того чтобы он работал нужно установить фюз BODEN.
Но чтобы полностью обезопасится от несанкционированного изменения EEPROM нужно делать выдержку времени 100мкс после выхода из спящего режима до обращения к EEPROM. Дело в том что схема BOD отключается при входе в режимы Extended Standby, Standby, Power Save и Power Down для экономии электропотребления. А включается не сразу при входе в рабочий режим.

Последний раз редактировалось E97; 06.04.2010 в 13:01.
E97 вне форума  
Непрочитано 06.04.2010, 12:27  
urry
Почётный гражданин KAZUS.RUN
 
Аватар для urry
 
Регистрация: 06.02.2007
Сообщений: 1,340
Сказал спасибо: 3
Сказали Спасибо 107 раз(а) в 66 сообщении(ях)
urry на пути к лучшему
По умолчанию Re: eeprom в atmega8

Сообщение от SasaVitebsk Посмотреть сообщение
Выпускали тысячи устройств на м8, да и других тоже. Если меняется EEPROM, то очень велика вероятность неработоспособности устр-в. Возвратов по этой причине не наблюдали.
Если правильно написана программа, установлен BOD (это обязательно), то EEPROM портится не должен. Если он портится, то это ни чем не уберёшь. Никакими CRC. Отнеситесь также внимательно к источнику.
Вы большой оптимист. Помнится, несколько лет назад продвинутый заказчик тестировал устройство, втыкая дроссель помощнее последовательно в 220 вольт, один конец - к корпусу моего устройства и на напильник. Второй вывод на отвертку и отверткой водил по напильнику.
Впрочем, не навязываю, но лично я всегда прописываю одну и ту же инфу в 3 местах и закрываю КС. Кстати, спасает.
__________________
warez
urry вне форума  
Непрочитано 06.04.2010, 14:23  
kison
Почётный гражданин KAZUS.RUN
 
Регистрация: 13.12.2004
Сообщений: 3,168
Сказал спасибо: 11
Сказали Спасибо 691 раз(а) в 503 сообщении(ях)
kison на пути к лучшему
По умолчанию Re: eeprom в atmega8

Сообщение от urry Посмотреть сообщение
Впрочем, не навязываю, но лично я всегда прописываю одну и ту же инфу в 3 местах и закрываю КС. Кстати, спасает.
Ну так и правильно делаете. BOD не панацея - он спасает только от хаотической записи в случайные ячейки еепром при снижении питания. А вот если при записи многобайтной переменной произойдет перезапуск процессора, информация будет потеряна. Способ с трехкратным резрвированием как раз от этого и спасает. При наличии CRC можно всего две копии хранить.
kison вне форума  
Непрочитано 06.04.2010, 15:13  
SasaVitebsk
Гражданин KAZUS.RUN
 
Регистрация: 04.08.2006
Сообщений: 911
Сказал спасибо: 28
Сказали Спасибо 180 раз(а) в 139 сообщении(ях)
SasaVitebsk на пути к лучшему
По умолчанию Re: eeprom в atmega8

Я не беру в расчёт ситуации с пропаданием питания в момент записи. Для таких случаев необходима дополнительная аппаратная защита. То есть должно происходить прерывание при падении напряжения ниже какого-то (допустимого уровня) и в прерывании проц должен успеть завершить все начатые операции и зациклится. сли ему не хватает времени, то должен стоять кондёр или ионистор.

Я говорю только о разрушении информации при неправильной работе проца, в момент падения напряжения. В этом случае, при включенном BOD разрушения EEPROM, равно как и FLASH не наблюдалось с момента выхода at90s8515. И я не оптимист, а реалист. Если бы у меня такие случаи были, то я бы полностью отказался от использования EEPROM. Как можно пользоваться памятью, если иногда она сохраняет туфту???

Мой личный опыт показывает, что если идут сбои, то софтом можно минимизировать их влияние, но не убрать их полностью. Их надо убивать в точке их возникновения, а не бороться с проявлениями. Спецконтроль за спецнадзором - безперспективен.
Индуктивная нагрузка - это классический способ проверки и мы им активно пользуемся. Хотя это больше проверяет эффективность написания проги и применения WDT.

У меня было одно составное уст-во на 2 МК. К сожалению нельзя было сделать реинициализацию "на ходу". То есть возникала проблема, если одно из устр-в сбойнуло и перезапустилось. В результате был так написан софт, что подвисание и перезапуск устр-ва в 90% случаев не был заметен для второго. То есть по вылету от WDT, МК анализировал своё состояние и пытался восстановить его.
Я к чему это пишу? К тому, что на сегодняшний день надёжность устр-ва в значительной части определяется софтом! Начиная с проектирования структур данных и применёнными протоколами и заканчивая реализацией программы. Другой вопрос, что это всё не даром. Когда у меня заказчик спрашивает "а можно?" - ответ всегда "да". Правильный вопрос будет "насколько целессообразно", а в конечном счёте "сколь это будет стоить". Поэтому есть изделия, которые создаются как ширпотреб, а есть изделия (например для облтелекома модемы делали, которые уже лет 10 непрерывно работают), которые пишутся с учётом специфики и вылизываются до безобразия.
SasaVitebsk вне форума  
Непрочитано 06.04.2010, 19:52  
EKuzmich
Прописка
 
Регистрация: 07.08.2005
Сообщений: 178
Сказал спасибо: 16
Сказали Спасибо 6 раз(а) в 6 сообщении(ях)
EKuzmich на пути к лучшему
По умолчанию Re: eeprom в atmega8

спасибо за ответы! постараюсь поправить программу под этот случай. Но у меня возникают сомнения так как сбивается все время одна и та же ячейка причем с адресом 0х0а и в нее записывается одно и тоже значение 1 в независимости от того что там было записано например 180.
__________________
Дайте точку опоры и я ...
EKuzmich вне форума  
Непрочитано 06.04.2010, 20:12  
ish0
Прописка
 
Регистрация: 09.08.2006
Сообщений: 197
Сказал спасибо: 14
Сказали Спасибо 27 раз(а) в 20 сообщении(ях)
ish0 на пути к лучшему
По умолчанию Re: eeprom в atmega8

Попробуйте после каждой операции чтения-записи EEPROM записывать в регистр EEADR адрес неиспользуемой ячейки. Мне с тини26 помогло.
ish0 вне форума  
Непрочитано 06.04.2010, 21:32  
SasaVitebsk
Гражданин KAZUS.RUN
 
Регистрация: 04.08.2006
Сообщений: 911
Сказал спасибо: 28
Сказали Спасибо 180 раз(а) в 139 сообщении(ях)
SasaVitebsk на пути к лучшему
По умолчанию Re: eeprom в atmega8

2 EKuzmich. Вот это очевидно указывает на ошибку в программе.
SasaVitebsk вне форума  
 
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Proteus и EEPROM alex28411 Proteus 2 02.01.2010 15:52
Котроллер дисплея на Atmega8 kosant Микроконтроллеры, АЦП, память и т.д 24 30.11.2009 20:57
Как на Си создать EEPROM segment? chapa Микроконтроллеры, АЦП, память и т.д 6 13.10.2009 12:10
proteus, atmega8, меняю ноги в hex - не работает digitest Микроконтроллеры, АЦП, память и т.д 3 08.10.2009 13:07
[Решено] Проблема с eeprom в Proteus Memfis666 Proteus, KiCAD и другие ECAD 1 01.10.2009 15:38


Часовой пояс GMT +4, время: 15:26.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.