Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: WDT MSP430F427
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > MSP430
sept
Прибор иногда (раз в год или в два) виснет. Ввел внутренний WDT. Попытки аппаратно его зависнуть ни к чему не привели. Создавал помехи - подключал обший прибора(питание батарейное) к сварочному аппарату - не сбивается. Как все отлаживают программно или аппаратно? Как заставить сработать WDT?
Pavel V.
Первое, что приходит в голову - while(1);

Сбой кварцевого генератора обрабатывается? (если есть)
sept
Цитата(Pavel V. @ Apr 9 2010, 10:05) *
Первое, что приходит в голову - while(1);

Сбой кварцевого генератора обрабатывается? (если есть)

Сбой кв. генератора не обрабатывается. Т.е. зависание происходит вследствии сбоя кв. генератора? Обработка сбоя генератора исключает небходимость использования WDT?
MrYuran
Цитата(sept @ Apr 9 2010, 12:32) *
Обработка сбоя генератора исключает небходимость использования WDT?

WDT надо использовать всегда, причём желательно внешний, т.к. внутренний тактируется от внутренней системы тактирования, которая тоже может сбойнуть
Pavel V.
Цитата
Сбой кв. генератора не обрабатывается. Т.е. зависание происходит вследствии сбоя кв. генератора? Обработка сбоя генератора исключает небходимость использования WDT?

Одно другому не мешает, это все же разные вещи. Я не эксперт, но полагаю, что зависание процессора чаще всего происходит по вине кварцевого генератора (если исключить проблемы в софте). Поэтому сбои обязательно надо отлавливать, и в прерывании пытаться перезапустить генератор или переходить на тактирование от DCO.

WDT больше подходит для устранения проблем со всякими блокировками. Типа ждем в вечном цикле ответа, а ответ однажды не пришел. WDT не обнулился и сгенерировал сигнал сброса, девайс перезапустился.
rezident
Цитата(Pavel V. @ Apr 9 2010, 20:16) *
Поэтому сбои обязательно надо отлавливать, и в прерывании пытаться перезапустить генератор или переходить на тактирование от DCO.
Вообще-то у MSP430 система тактирования устроена так, что при сбое генератора MCLK автоматически переключается на тактирование от DCO и зависания работы ядра не происходит. Зависание же исполнения программы может возникнуть в случае, если, например, от SMCK, источником которого является внешний генератор, тактируется таймер от которого зависит исполнение программного автомата. В MSP430F1xxx, например, при сбое XT2 SMCLK совсем пропадает и не переключается на DCO. Для переключения нужно в обработчике прерывания по вектору NMI сначала переключить программно SMCLK на DCO, дождаться возобновления работы XT2, и только потом переключить SMCLK обратно на XT2. С МК из серии MSP430F4xx я не работал и о них таких подробностей не знаю. Но то, что ядро (MCLK) автоматом переключается на тактирование от DCO при сбое кварцевого генератора это совершенно точно. Именно поэтому везде в документации рекомендуется тактировать ядро от DCO.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.