Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Watchdog не работает?
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Все остальные микроконтроллеры > PIC
Nikitoc
Всем здрасте! Я тут недавно столкнулся с непонятным поведением схемы. Устройство на основе PIC18F4620 подвисает, скорее всего после воздействия помехи пришедшей от генератора (используется в автомобиле) и несмотря на то что запрограммирован WatchDog процессор не сбрасывается :-( Что с ним происходит я, признаться, не представляю. После передергивания питания нормальное функционирование восстанавливается. Происходит такое не часто, но с завидной регулярностью. Раз в один-два дня обязательно подвисает. Что это может быть? Я уже голову всю сломал. Кстати из остальных фьюзов запрограммирован PowerUpTimer и Stack Overflow Reset. BrownOutDetector не использую. Но собственно основной вопрос мучает один - может ли программа слететь таким образом, чтобы WDT не сработал?
rezident
От защелкивания (тиристорный эффект) помогает только полное снятие питания МК. Внутренний WDT тут никак не поможет. Займитесь конструкцией своего устройства. Явно имеются какие-то недостатки в трассировке платы и/или в схеме питания и/или во входных цепях.
Nikitoc
Цитата(rezident @ Apr 9 2010, 19:21) *
От защелкивания (тиристорный эффект) помогает только полное снятие питания МК. Внутренний WDT тут никак не поможет. Займитесь конструкцией своего устройства. Явно имеются какие-то недостатки в трассировке платы и/или в схеме питания и/или во входных цепях.

Про такое слышу первый раз. Можно поподробнее про тиристорный эффект? Или ссылочку какую-нибудь?
rezident
Цитата(Nikitoc @ Apr 10 2010, 13:43) *
Или ссылочку какую-нибудь?
Можно даже целую кучу ссылочек. http://www.google.ru/search?q=тиристорный+эффект В англоязычной литературе упоминается как latch-up effect.
ar__systems
Цитата(Nikitoc @ Apr 9 2010, 09:29) *
Всем здрасте! Я тут недавно столкнулся с непонятным поведением схемы. Устройство на основе PIC18F4620 подвисает, скорее всего после воздействия помехи пришедшей от генератора (используется в автомобиле) и несмотря на то что запрограммирован WatchDog процессор не сбрасывается :-( Что с ним происходит я, признаться, не представляю. После передергивания питания нормальное функционирование восстанавливается. Происходит такое не часто, но с завидной регулярностью. Раз в один-два дня обязательно подвисает. Что это может быть? Я уже голову всю сломал. Кстати из остальных фьюзов запрограммирован PowerUpTimer и Stack Overflow Reset. BrownOutDetector не использую. Но собственно основной вопрос мучает один - может ли программа слететь таким образом, чтобы WDT не сработал?

А кто сказал, что watch-dog не работает? Он же у вас в коде ресетится, надо полагать? Не исключено, что проц крутится в цикле, который сбрасывет wdt. Какая-то функция у вас выводится для отладки, лампочка там мигает, или последовательный порт?

Кстати, а почему brown-up не пользуете?

вообще, полагаться на на WDT можно только если вы не собираетсь им пользоваться. smile.gif если же вы ожидаете что девайс будет виснуть, на использовать внешний WDT
ViKo
Дополню предыдущего отвечающего.
Watchdog нельзя сбрасывать в прерываниях. А то в основной программе процессор из-за сбоя куда-нибудь улетит и зациклится, а в прерывания будет исправно заходить, и исправно сбрасывать сторожевой таймер.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.