Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Усыпление сторожа-бабульки
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > MSP430
d7d1cd
Привет всем. Для отладки возникла необходимость сделать то, что необходимо было сделать Трусу в "Операции Ы", то есть усыпить на время внешний сторожевой таймер. Он представляет собой микросхему TPS3705-33.

Подскажите, как сделать так, чтобы микросхема не сбрасывала микроконтроллер, когда на его ноге WDI не меняются уровни напряжения? Может надо что-то замкнуть?

msalov
А при чём здесь MSP430?
Для отладки можно и выпаять.
aaarrr
Цитата(msalov @ May 23 2013, 00:56) *
Для отладки можно и выпаять.

Достаточно отрезать WDI. Или оставить его в высокоимпедансном состоянии со стороны МК, если есть такая возможность.
d7d1cd
Цитата(aaarrr @ May 23 2013, 01:00) *
Достаточно отрезать WDI. Или оставить его в высокоимпедансном состоянии со стороны МК, если есть такая возможность.




Если оставить вывод WDI хоть в низком, хоть в высоком состоянии, то примерно через секунду микросхема установит на ноге микроконтроллера RST/NMI ноль и МК сбросится. Надо сделать так, чтобы микросхема не генерировала сигнал сброса.




MrYuran
У меня на всех платах выход вочдога подключен к ресетной шине через резистор 10к.
Таким образом можно залочить ресет в любом состоянии сигналом извне (в данном конкретном случае это было сделано для возможности прошивки )
d7d1cd
То есть, если в моем случае выход сторожа подключен к микроконтроллеру через резистор, то для отладки можно подать на вывод RST\NMI напряжение питания? А если нет резистора?
aaarrr
Цитата(d7d1cd @ May 23 2013, 06:54) *
Если оставить вывод WDI хоть в низком, хоть в высоком состоянии, то примерно через секунду микросхема установит на ноге микроконтроллера RST/NMI ноль и МК сбросится. Надо сделать так, чтобы микросхема не генерировала сигнал сброса.

Помимо низкого и высокого, пин может находится еще в одном интересном состоянии, о котором, собственно, и шла речь.
Настройте его на вход изначально. Если нет подтяжек, то это сработает.
d7d1cd
Цитата(aaarrr @ May 23 2013, 10:55) *
Настройте его на вход изначально.

Что настроить на вход? Внешний сторожевой таймер? Каким образом?

aaarrr
Цитата(d7d1cd @ May 23 2013, 21:07) *
Что настроить на вход? Внешний сторожевой таймер? Каким образом?

Вывод, которым дергается вход WDI таймера (если это, конечно, вывод МК).
d7d1cd
Цитата(aaarrr @ May 23 2013, 21:17) *
Вывод, которым дергается вход WDI таймера (если это, конечно, вывод МК).
К сожалению переопределить направление пина МК, соединенного с пином WDI таймера, нельзя.

Но хотя если бы и можно было, то я не понимаю как это решило бы проблему. Я бы не устанавливал 1 и 0 на ноге WDI, а читал бы, что сейчас на этой ноге. Но ведь там уровень не менялся бы и сброс все равно был бы сгенерирован. Или я чего то не допонимаю?

P.S. Получается, чтобы отключить сброс таймера, надо отсоединить вывод RESET таймера от вывода RST\NMI микроконтроллера? По другому никак?

aaarrr
Таймер блокируется, если WDI не подключен (или, как вариант, подключен к выводу МК, определенному как вход). Других способов заставить супервизор не генерировать сброс нет.
rezident
Цитата(d7d1cd @ May 23 2013, 23:30) *
Но хотя если бы и можно было, то я не понимаю как это решило бы проблему. Я бы не устанавливал 1 и 0 на ноге WDI, а читал бы, что сейчас на этой ноге. Но ведь там уровень не менялся бы и сброс все равно был бы сгенерирован. Или я чего то не допонимаю?
aaarrr намекает вам вот на эту фразу в даташите
Цитата
Leaving WDI unconnected disables the watchdog.

и на вот этот фрагмент блок-схемы "внутренностей" и/с.
Psych
А нельзя-ли на время отладки вначале перевести пин на NMI (NMIIE=0)??
d7d1cd
Цитата(aaarrr @ May 23 2013, 22:56) *
Таймер блокируется, если WDI не подключен (или, как вариант, подключен к выводу МК, определенному как вход). Других способов заставить супервизор не генерировать сброс нет.




Я проверил такую блокировку. Вывод WDI подключен к МК на порт 5.6 и только к нему. Подключаю программатор, в режиме отладки делаю сброс. МК останавливается на первой инструкции. В дампе памяти вижу, что порт 5.6 настраивается как ВХОД. Однако примерно через 1 секунду таймер все равно срабатывает. В чем может быть причина?

aaarrr
Цитата(d7d1cd @ May 31 2013, 21:05) *
В чем может быть причина?

Вариантов два:
- Порт был в какой-то момент времени после подачи питания сконфигурирован как выход
- Порт содержит pull-up или pull-down резистор

Какой уровень на WDI, когда порт включен на вход?
d7d1cd
Спасибо всем за помощь. Проблема отпала. Пока выяснял схему сброса, спалил транзистор, который замыкал RST\NMI на землю, то есть выполнял сброс. Без него сброса не происходит. Как сделаю отладку, заменю на рабочий.

P.S. Нога WDI была подтянута к земле.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.