Перейти к содержанию
    

Зависание микроконтроллера

керамический резонатор 0.9..3.0 МГц

не, при CKOPT=0 это как раз f>1МГц

 

кварц менял, про емкости у него не думал. прикол в том, что даже ватчдог не выводит его из этого зависшего состояния.

 

грешу на самый маловероятный исход - проблемная партия контроллеров

 

вот что я только что пронаблюдал - контроллер не завис а начал жестко тупить, те мигание светодиода "я жив" вместо периода 1с превратилось в 30с.

 

ЗЫ. опять же почему ватчдог имея свой собственный генератор невыводит его из этого состояния

ЗЗЫ. при этом потрбляемый ток падает в два раза

Изменено пользователем smalcom

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

не, при CKOPT=0 это как раз f>1МГц

Да верно - я напутал. Но смутно помню, что кода-то экспериментировал с CKSEL, и понял 1111 - лучше. Попробуйте.

кварц менял, про емкости у него не думал. прикол в том, что даже ватчдог не выводит его из этого зависшего состояния.

А может он всё таки не включен? "но после прошивки почемуто WDTON читается опять как 1."

вот что я только что пронаблюдал - контроллер не завис а начал жестко тупить, те мигание светодиода "я жив" вместо периода 1с превратилось в 30с.

ЗЫ. опять же почему ватчдог имея свой собственный генератор невыводит его из этого состояния

ЗЗЫ. при этом потрбляемый ток падает в два раза

Ну это похоже на эффект от деление тактовой частоты в регистре XDIV. Кстати XDIV и на пробуждение из sleep влияет. Sleep у вас есть?

 

А если тестовую программку написать? Только лампочкой мигает и ватчдог сбрасывает.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

"но после прошивки почемуто WDTON читается опять как 1."

прошил дргим программатором, стало верно записываться.

 

про слип я думал, но его я не использую. плюс если верить даташиту, то ватчдог работает в любом из слип режимов.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

в регистре XDIV

Его нет в Меге128.

плюс если верить даташиту, то ватчдог работает в любом из слип режимов.

Да.Работает.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Его нет в Меге128.

 

Как это нет? А по адресу 0x3C(0x5C) что находится?

 

ЗЫ. опять же почему ватчдог имея свой собственный генератор невыводит его из этого состояния

 

Если у вас не работает основной тактовый генератор, то WDT никак не осилит перезапуск.

 

Проблема скорее кроется именно в неустойчивой работе генератора меги с Вашим типом кварца. Ставьте CKSEL=F и CKOPT=0. SUT я бы поставил 3, если, конечно, не нужен быстрый старт.

 

И хорошо промойте плату возле генератора, бывает - помогает.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вы уверены, что конденсаторы на кварце стоят правильного номинала? Может быть на сборке ошиблись?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вы уверены, что конденсаторы на кварце стоят правильного номинала? Может быть на сборке ошиблись?

 

поставьте ckopt галочку и посмотрите осциллографом с делителем 1/10 размах напряжения на ноге xtal2.

если там меньше 2/3 от напряжения питания- меняйте кварц илии его обвеску.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Чёй-то не нашел в ДШ. Ткните носом.

 

Вот дерево разделов:

 

System Clock and Clock Options -> Timer/Counter Oscillator -> XTAL Divide Control Register - XDIV

 

Сразу за External Clock.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

System Clock and Clock Options -> Timer/Counter Oscillator -> XTAL Divide Control Register - XDIV

 

Сразу за External Clock.

Спасибо. Теперь увидел.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Можно попробовать поменять контроллеры у старой и новой плат, т.е. определить дело в контроллере или все же в плате(утечки, плохо промыта и т.п.). А не может у вас какая то периферия глючить, еепром по I2C или еще что?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

вопщем пропаял еще раз мегу, промыл спиртом, заменил кондеры у кварца - 1 из 10 завис через 5минут. проверить осцилом немогу - нету такого, тот что в наличии садит линию кварца, но тестером видно 2.6В. замечено что быстрей всего мегу убить можно обменом по 232му порту.

пробовал в старую плату впаять новую мегу - работает.

грешил бы на прошивку, но уже более 3.5 лет работает на полуторасотнях устройствах при серьезных нагрузках и сбоев небыло.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Иногда может повлиять толщина и материал дорожек.

Замечал что платы изготовленные разными подрядчиками по одному и тому же рисунку могут вести себя по разному.

некоторые (целые партии PCB) глючили - приходилось резать дорожку питания в непосредственной близости от МК и вставлять LC фильтр.

 

Насчет фузов. Для частот выше 8Mhz фузы (CKSEL) ставить в 1111 (0xF).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...