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

 
 
 
Reply to this topicStart new topic
> ATmega128 - проблемы с EEPROM
Alex86
сообщение Aug 23 2010, 10:46
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 27
Регистрация: 1-10-08
Пользователь №: 40 600



Здравствуйте, уважаемые форумчане! Прошу помочь по следующему вопросу. Есть девайс разработанный моими коллегами и мной на базе ATmega128. В еепроме хранится несколько переменных. Очень редко случается так, что эти переменные корежатся, по непонятной мне причине (за два месяца испытаний устройства зарегестрировано два подобных случая). При чем проблема возникает не в момент записи в еепром, а просто в случайное время. Может быть кто-то сталкивался с подобной проблемой? Почему вообще данные хранящиеся в eeprom могут пропадать? Заранее благодарен отозвавшимся.
Go to the top of the page
 
+Quote Post
defunct
сообщение Aug 23 2010, 10:55
Сообщение #2


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(Alex86 @ Aug 23 2010, 13:46) *
Почему вообще данные хранящиеся в eeprom могут пропадать?

Потому что при вкл. и откл. МК (переходной процесс) МК может выполнять любой кусок кода, в т.ч. и кусок кода который пишет в ячейки eeprom.
еще в вашей программе могут быть ошибки, в результате которых туда пишется фигня всякая.
Go to the top of the page
 
+Quote Post
Savrik
сообщение Aug 23 2010, 11:08
Сообщение #3


наблюдаю..
***

Группа: Свой
Сообщений: 291
Регистрация: 11-12-06
Из: Украина
Пользователь №: 23 369



Цитата(defunct @ Aug 23 2010, 13:55) *
Потому что при вкл. и откл. МК (переходной процесс) МК может выполнять любой кусок кода, в т.ч. и кусок кода который пишет в ячейки eeprom.

Что бы этого избежать, ставят супервайзеры питания, или, на худой случай, включают BOD.
Go to the top of the page
 
+Quote Post
Tiny
сообщение Aug 23 2010, 11:19
Сообщение #4


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

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



На сколько я знаю, при работе с EEPROM возникают сбои при понижении питания ниже допустимого. В связи с этим в платах с МК не рекомендуется использовать по питанию электролиты большой емкости. Т.к. при выключении питания емкость держит напряжение, которое медленно падает и это приводит к сбою в EEPROM.
Один из способов решения проблемы - супервизор. При понижении напряжения ниже допустимого, он сбрасывает МК. Я ставил на палату батарею, развязав ее от сетевого питания диодами.

Точно, пока писал меня опередили,а про BOD я забыл.
BODEN - сброс при пропадании питания
BODLEVEL - уровень срабатывания сброса при пропадании питания.
Их я использовал вместе с супервизором.
Go to the top of the page
 
+Quote Post
GDI
сообщение Aug 23 2010, 11:20
Сообщение #5


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

Группа: Свой
Сообщений: 1 235
Регистрация: 14-05-05
Из: Санкт-Петербург
Пользователь №: 5 008



BOD надо включить и правильно порог настроить в зависимости от напряжения питания МК.


--------------------
http://www.embedders.org Блоги разработчиков электроники.
Go to the top of the page
 
+Quote Post
Alex86
сообщение Aug 23 2010, 11:46
Сообщение #6


Участник
*

Группа: Участник
Сообщений: 27
Регистрация: 1-10-08
Пользователь №: 40 600



Цитата(Tiny @ Aug 23 2010, 15:19) *
На сколько я знаю, при работе с EEPROM возникают сбои при понижении питания ниже допустимого. В связи с этим в платах с МК не рекомендуется использовать по питанию электролиты большой емкости. Т.к. при выключении питания емкость держит напряжение, которое медленно падает и это приводит к сбою в EEPROM.
Один из способов решения проблемы - супервизор. При понижении напряжения ниже допустимого, он сбрасывает МК. Я ставил на палату батарею, развязав ее от сетевого питания диодами.

Точно, пока писал меня опередили,а про BOD я забыл.
BODEN - сброс при пропадании питания
BODLEVEL - уровень срабатывания сброса при пропадании питания.
Их я использовал вместе с супервизором.

Спасибо всем за быстрые ответы. Tiny, действительно по питанию стоит электролит на 47 мкФ, развязанный от кренки диодом. Данная цепь должна была защитить контроллер от кратковременного понижения напряжения. Получается, что эту цепь лучше убрать? BOD пока не использовал, но прислушаюсь к многочисленным советам и включу.
Go to the top of the page
 
+Quote Post
Tiny
сообщение Aug 23 2010, 11:56
Сообщение #7


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

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



47мкф, вроди не большая емкость. Но BOD лучше включить, и если будут сбои лучше поставить супервизор. Надежнее будет. Если важны данные, я бы сразу поставил.
Go to the top of the page
 
+Quote Post
Savrik
сообщение Aug 23 2010, 12:02
Сообщение #8


наблюдаю..
***

Группа: Свой
Сообщений: 291
Регистрация: 11-12-06
Из: Украина
Пользователь №: 23 369



Цитата(Alex86 @ Aug 23 2010, 14:46) *
Спасибо всем за быстрые ответы. Tiny, действительно по питанию стоит электролит на 47 мкФ, развязанный от кренки диодом. Данная цепь должна была защитить контроллер от кратковременного понижения напряжения. Получается, что эту цепь лучше убрать? BOD пока не использовал, но прислушаюсь к многочисленным советам и включу.

Сомнительно.. На кремниевом диоде около 0,7В падения. У Вас какой стоит?
Оптимальное решение - включить BOD, диод выбросить. Если что - поставить супервайзер.
P.S. На своих платах вплоть до 220мкФ ставил - проблем не было ни разу.
Go to the top of the page
 
+Quote Post
novus2004
сообщение Aug 23 2010, 14:50
Сообщение #9


Участник
*

Группа: Участник
Сообщений: 60
Регистрация: 30-04-09
Пользователь №: 48 496



Я на своих платах после стабилизатора ставил 1000 мкф. Если BOD включен - то никаких проблем вообще нет.
Go to the top of the page
 
+Quote Post
Alex86
сообщение Aug 23 2010, 14:51
Сообщение #10


Участник
*

Группа: Участник
Сообщений: 27
Регистрация: 1-10-08
Пользователь №: 40 600



Цитата(Savrik @ Aug 23 2010, 16:02) *
Сомнительно.. На кремниевом диоде около 0,7В падения. У Вас какой стоит?
Оптимальное решение - включить BOD, диод выбросить. Если что - поставить супервайзер.
P.S. На своих платах вплоть до 220мкФ ставил - проблем не было ни разу.

Стоит диод Шоттки. Еще вопрос. Если использовать BOD, то не будет ли внешний супервайзер излишеством? Т.е. чем обосновано его использование вкупе с BOD-ом?
Go to the top of the page
 
+Quote Post
Tiny
сообщение Aug 23 2010, 15:14
Сообщение #11


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

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



Насколько я знаю, супервизор не всегда спасает. Нет ничего идеального. После пары сбоев у себя (без всякой защиты) я использовал защиту по максимуму. Сделать это не трудно, а лишним не будет если важны данные.

Сообщение отредактировал Tiny - Aug 23 2010, 15:20
Go to the top of the page
 
+Quote Post
Savrik
сообщение Aug 23 2010, 15:55
Сообщение #12


наблюдаю..
***

Группа: Свой
Сообщений: 291
Регистрация: 11-12-06
Из: Украина
Пользователь №: 23 369



Цитата(Alex86 @ Aug 23 2010, 17:51) *
Стоит диод Шоттки. Еще вопрос. Если использовать BOD, то не будет ли внешний супервайзер излишеством? Т.е. чем обосновано его использование вкупе с BOD-ом?

На Шоттки 0,2..0,4В, если не изменяет память.. Но все равно диод можете выкинутьsmile.gif
У BOD и супервайзера одно назначение - сбросить и держать на сбросе контроллер до тех пор, пока напряжение не вернется в норму. Но все же супервайзер мне лично кажется предпочтительным, а если вдобавок еще и BOD включить, получите этакую схему сброса с резервированиемsmile.gif В плане проблем это ничем не грозит.
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Aug 23 2010, 19:36
Сообщение #13


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



я бы ставил внешний супервизор только тогда, когда порог внутреннего не устраивает либо надо микропотребление как-то уменьшать. 4.3 вольта - это слишком высоко?
Go to the top of the page
 
+Quote Post
halfdoom
сообщение Aug 24 2010, 03:39
Сообщение #14


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

Группа: Свой
Сообщений: 1 003
Регистрация: 20-01-05
Пользователь №: 2 072



Внешний супервизор нужен только для такого (errata на мегу161):
Цитата
Brown-out Detecor may cause the Device to be Stuck in Reset State
When the internal Brown-out Detector is enabled, the device may hang in Reset state regardless of the VCC level.

Problem Fix/Workaround
Use external Brown-out Detector and do not enable internal Brown-out Detector
(leave BODEN Fuse unprogrammed).
Go to the top of the page
 
+Quote Post
Alex86
сообщение Aug 25 2010, 16:54
Сообщение #15


Участник
*

Группа: Участник
Сообщений: 27
Регистрация: 1-10-08
Пользователь №: 40 600



Включил BOD. Теперь буду гонять устройство. Надеюсь проблема решена. Спасибо всем за активное участие. a14.gif beer.gif
Go to the top of the page
 
+Quote Post

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

 


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


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