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

 
 
 
Reply to this topicStart new topic
> Watchdog не работает?, Процессор не сбрасывается
Nikitoc
сообщение Apr 9 2010, 14:14
Сообщение #1


Местный
***

Группа: Validating
Сообщений: 207
Регистрация: 14-01-09
Из: Днепропетровск
Пользователь №: 43 367



Всем здрасте! Я тут недавно столкнулся с непонятным поведением схемы. Устройство на основе PIC18F4620 подвисает, скорее всего после воздействия помехи пришедшей от генератора (используется в автомобиле) и несмотря на то что запрограммирован WatchDog процессор не сбрасывается :-( Что с ним происходит я, признаться, не представляю. После передергивания питания нормальное функционирование восстанавливается. Происходит такое не часто, но с завидной регулярностью. Раз в один-два дня обязательно подвисает. Что это может быть? Я уже голову всю сломал. Кстати из остальных фьюзов запрограммирован PowerUpTimer и Stack Overflow Reset. BrownOutDetector не использую. Но собственно основной вопрос мучает один - может ли программа слететь таким образом, чтобы WDT не сработал?

Сообщение отредактировал Nikitoc - Apr 9 2010, 14:15
Go to the top of the page
 
+Quote Post
rezident
сообщение Apr 9 2010, 16:06
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



От защелкивания (тиристорный эффект) помогает только полное снятие питания МК. Внутренний WDT тут никак не поможет. Займитесь конструкцией своего устройства. Явно имеются какие-то недостатки в трассировке платы и/или в схеме питания и/или во входных цепях.
Go to the top of the page
 
+Quote Post
Nikitoc
сообщение Apr 10 2010, 07:28
Сообщение #3


Местный
***

Группа: Validating
Сообщений: 207
Регистрация: 14-01-09
Из: Днепропетровск
Пользователь №: 43 367



Цитата(rezident @ Apr 9 2010, 19:21) *
От защелкивания (тиристорный эффект) помогает только полное снятие питания МК. Внутренний WDT тут никак не поможет. Займитесь конструкцией своего устройства. Явно имеются какие-то недостатки в трассировке платы и/или в схеме питания и/или во входных цепях.

Про такое слышу первый раз. Можно поподробнее про тиристорный эффект? Или ссылочку какую-нибудь?
Go to the top of the page
 
+Quote Post
rezident
сообщение Apr 10 2010, 20:07
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Цитата(Nikitoc @ Apr 10 2010, 13:43) *
Или ссылочку какую-нибудь?
Можно даже целую кучу ссылочек. http://www.google.ru/search?q=тиристорный+эффект В англоязычной литературе упоминается как latch-up effect.
Go to the top of the page
 
+Quote Post
ar__systems
сообщение Apr 13 2010, 20:38
Сообщение #5


self made
****

Группа: Свой
Сообщений: 855
Регистрация: 7-03-09
Из: Toronto, Canada
Пользователь №: 45 795



Цитата(Nikitoc @ Apr 9 2010, 09:29) *
Всем здрасте! Я тут недавно столкнулся с непонятным поведением схемы. Устройство на основе PIC18F4620 подвисает, скорее всего после воздействия помехи пришедшей от генератора (используется в автомобиле) и несмотря на то что запрограммирован WatchDog процессор не сбрасывается :-( Что с ним происходит я, признаться, не представляю. После передергивания питания нормальное функционирование восстанавливается. Происходит такое не часто, но с завидной регулярностью. Раз в один-два дня обязательно подвисает. Что это может быть? Я уже голову всю сломал. Кстати из остальных фьюзов запрограммирован PowerUpTimer и Stack Overflow Reset. BrownOutDetector не использую. Но собственно основной вопрос мучает один - может ли программа слететь таким образом, чтобы WDT не сработал?

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

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

вообще, полагаться на на WDT можно только если вы не собираетсь им пользоваться. smile.gif если же вы ожидаете что девайс будет виснуть, на использовать внешний WDT
Go to the top of the page
 
+Quote Post
ViKo
сообщение Apr 20 2010, 05:27
Сообщение #6


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Дополню предыдущего отвечающего.
Watchdog нельзя сбрасывать в прерываниях. А то в основной программе процессор из-за сбоя куда-нибудь улетит и зациклится, а в прерывания будет исправно заходить, и исправно сбрасывать сторожевой таймер.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 02:59
Рейтинг@Mail.ru


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