Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Сбой TMR0
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
muravei
Неподалеку от моего дома погасла 1/8 полноцветного экрана площадью около 20 м2...

А у меня макет уст-ва начал работать так , как будто в нем таймер стал считать в 16 раз быстрее.
Уст-во работает след образом : после вкл питания(батарейного 3в) инициализируется и уходит в Power-down Mode . По INT0 просыпается , делает что от него требуется и уходит в Idle Mode. Если за 32 сек с коп. INT0 не произойдет, то снова -Power-down.
Очередной раз проснувшись, оно начало показывать в 16 раз меньше и засыпать за 2 сек.
Вышло из этого откл. питания.
Что бы такого придумать, чтобы выходить из таких глюков автоматически -сторожевая @ здесь как-то не просматривается.
GDI
А какой контроллер стоит?
prottoss
Цитата(GDI @ Aug 14 2007, 21:09) *
А какой контроллер стоит?
Могу ошибаться smile.gif но внутренний голос подсказывает, что AVR smile.gif ... Хотя TMR0 в AVR-ах нетути 07.gif



По теме: Возможно можно))) сделать защиту от НЛО - в прерывании или еще где проверять регистр сравнения ТС0, если конечно НЛО не изменил (перепаял кварц) частоту кварца на плате или частоту внутреннего генератора. biggrin.gif
Dog Pawlowa
Цитата(muravei @ Aug 14 2007, 15:33) *
Что бы такого придумать, чтобы выходить из таких глюков автоматически -сторожевая @ здесь как-то не просматривается.

Это в соседнюю тему оптимального выбора платформы smile.gif
Тот же MSP имеет возможность на ходу переключать генератор и использовать несколько источников тактирования для разных узлов. Поэтому уход какой-нибудь частоты можно отловить (точность, правда, процентов 50 05.gif )
Но для начала нужно уяснить точную причину сего глюка, и тут нам поможет автор!
korobov_michael
Цитата(Dog Pawlowa @ Aug 14 2007, 17:10) *
Но для начала нужно уяснить точную причину сего глюка, и тут нам поможет автор!


Неплохо действительно указать кирпич, настройку фьюзов, параметры таймера... в идеале бы еще и фото девайсины... А то окажется, что к ноге INT0 подходит дли-ии-и-инный провод или еще какая фигня
GDI
Про камень это я к тому что в некоторых последних камнях появилась возможность доступа к ватчдог таймеру, т.е. вроде как можно считывать его счетчик и даже тактироваться от его генератора, но нам интересна первая возможность(считывание), т.к. собака работает от собственного генератора и т.о. можно сравнить расхождение частот генератора собаки и тактового генератора МК..
muravei
Цитата(korobov_michael @ Aug 14 2007, 18:29) *
Неплохо действительно указать кирпич, настройку фьюзов, параметры таймера... в идеале бы еще и фото девайсины...

Ну, это много ...
ТИНИ 26Л , кварц 2 048, предделитель - 1024 ...
Цитата(korobov_michael @ Aug 14 2007, 18:29) *
А то окажется, что к ноге INT0 подходит дли-ии-и-инный провод или еще какая фигня

Примерно так.
GDI
А у кварца частота случаем не уходит при этом? Осциллом не пробовали смотреть?
singlskv
Цитата(muravei @ Aug 14 2007, 19:06) *
, кварц 2 048

Вы уверенны что у Вас кварц ?
Какой корпус ?
muravei
Цитата(GDI @ Aug 14 2007, 19:41) *
А у кварца частота случаем не уходит при этом? Осциллом не пробовали смотреть?

Макет две недели работал без проблем, после сброса питанием продолжил.
Неправильная работа тоже была стабильной smile.gif Так что ничего, никуда не уходит.

Цитата(singlskv @ Aug 14 2007, 20:17) *
Вы уверенны что у Вас кварц ?

Вполне.
fmdost
Какой компилятор?
Очень похоже на неверную запись в предделитель системного тика CPU. (Регистр CLKPR) И как раз при сбросе!
В CAVR на максимальной оптимизации по размеру, неверная запись это нормальное явление.
Обязательно ставьте(и проверьте) инициализацию CLKPR независимо от фуза CKDIV8!!!
muravei
Цитата(Т.Достоевский @ Aug 15 2007, 02:19) *
Какой компилятор?

Причем тут компилятор? 07.gif Оно две недели работало , и после сброса, снова работало.

Цитата(Т.Достоевский @ Aug 15 2007, 02:19) *
от фуза CKDIV8!!!

А это кто? 07.gif
Serj78
У меня тут вчера тоже удивительная "неисправность" вылезла- на 8-й меге.
Маленький девайс, предназначенный для сбора данных (измерения импульсов) и выдачи по запросу этих данных по uart.
При тестировании- не распознается контрольная сумма ответа - посмотрел осциллом-на резонаторе ( пьезокерамика 16мгц), размах почти 3в, (питание 3.3), все ок, но длительность посылки uart-овской почему-то в 1.5 раза больше чем на исправном устройстве.Данные такие же на первый взгляд. на всякий случай обновил прошивку- то же самое.

Потом обратил внимание что резонатор (smd) как-то странно приподнят с одного боку - как будто паста не полностью расплавилась. Так и есть- недогрев. Прогрел заново - все стало работать нормально.

Но механизм влияния какого-то непропая так и остался тайной smile.gif
fmdost
CKDIV8 это фуз такой. Если он установлен то контроллер начинает работу с частотой основного генератора делёной на 8, путём занесения при сбросе в CLKPR какой-то там константы . Потом её поправляют до нужного значения занесением в регистр CLKPR. Возможно у вас как раз и происходит/нероисходит запись в этот регистр. В CAVRе у меня такой глюк был. В зависимости от результата сброса, было 2 инициализации(полностью холодный старт и просто перезагрузка). Во втором случае запускался на частоте в 8 раз меньше.
muravei
Цитата(Т.Достоевский @ Aug 16 2007, 01:35) *
CKDIV8 это фуз такой.

У меня такого нет. smile.gif Кроме того , я не доверяю делать программу разным Каврам.
И частота у меня была скорее в 16 раз больше.
Думаю, это глюк железа, и программно , и даже ресетом не устранился бы.
GDI
Кстати насчет кварцев... на прошлой работе был такой случай, в схеме стоял кварц на 2 с копейками МГц, так вот.. купили как то партию кварцев такую что она пусткалась на 3й гармонике и частота была соответственно 6МГц, лечилось сие установкой емкостей поболее, которые у кварца стоят, но в итоге решили не рисковать и закупили другую партию кварцев... может в данном случае имеет место схожий эффект? тепловой уход емкости и кварц срывается на другую частоту, потому я и спрашивал - не проверяли ли частоту кварца осцилом... В нашем случае эффект ухода частоты был исключительно устойчивым.
Цитата
Макет две недели работал без проблем, после сброса питанием продолжил.
Неправильная работа тоже была стабильной smile.gif Так что ничего, никуда не уходит.

А такой ответ в данном случае ничего не объясняет и сделанные выводы не подтверждает.
muravei
Цитата(GDI @ Aug 16 2007, 12:00) *
А такой ответ в данном случае ничего не объясняет и сделанные выводы не подтверждает.

А ничего не подтверждает и не объясняет. Тем более просмотр осциллографом - 10 пик щупа могут лишить эксперимент чистоты. Мысль о том что генератор запустился на гармонике была, но я ее с испугом отогнал- запустится на 32 мГц 07.gif Кроме того , у меня используется "полный даун", и что генератор останавливается , а потом снова многократно пускается на столь высокой частоте, сомнительно.
GDI
Цитата
генератор останавливается , а потом снова многократно пускается на столь высокой частоте, сомнительно

Ничего сомнительного... в приводимом мною примере кварц 2МГц стабильно пускался на 6МГц в любую погоду и после переброса питания, т.е. вел себя как честный кварц на 6МГц.
Цитата
Тем более просмотр осциллографом - 10 пик щупа могут лишить эксперимент чистоты

Если после касания щупом все времянки вернутся на свои места - это и будет подтверждением глючности кварца, останется только заменить кондюки на больший номинал. И чистота эксперимента тут не при чем - "вам шашечки или ехать?".
muravei
Цитата(GDI @ Aug 16 2007, 16:05) *
Ничего сомнительного... в приводимом мною примере кварц 2МГц стабильно пускался на 6МГц

На 6 , а не на 32 ! И у меня при этом все работало . Сомнительно, что 32 МГц будет работать не только АВР , но и ЖК индикатор.
GDI
Прескаллер для таймера используется? Как вариант перезапись регистра TCCR0 вдруг гдето... но это даст уход частоты в 8 раз(у него такой шаг) + уход частоты кварца smile.gif в 2 раза, что вполне сдюжит и тини и ЖКИ...
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.