Что такое watchdog в телевизоре

Здравствуйте, уважаемые читатели! В этой статье поговорим о таком понятии, как Сторожевой таймер или Watchdog . Что это такое и как с ним работать.

Сторожевой таймер (Watchdog)

Данный таймер есть у всех AVR микроконтроллеров, даже у малыша ATtiny10 . У которого изменению режима работы Сторожевого таймера посвящен один из всего трех его фьюзов WDTON . Как работать с фьюзами на Тини10 я рассказывал в отдельной статье » Изменение фьюзов на ATtiny10 «.

Что такое Сторожевой таймер (Watchdog)?

Основное назначение Сторожевой таймера – предотвратить зависание микроконтроллера в процессе выполнения программы. Т.е. мы запускаем данный таймер и если в течение установленного нами интервала времени счетчик Watchdog не будет перезапущен, то уже будет перезагружен сам микроконтроллер. Но на самом деле возможности Сторожевой таймера больше, чем просто перезагружать микроконтроллер. О чем мы и поговорим далее.

Сторожевой таймер обладает собственным тактовым генератором, отдельным от основного тактового генератора микроконтроллера. Обычно частотой 128 кГц.

DLC за $70. Sony стыдно

Таблица 6-1 даташита на ATtiny13

Здесь и далее я буду рассматривать даташит на ATtiny13 . Но информация из данного ролика актуальна, с небольшими поправками о которых я расскажу далее, и для других AVR микроконтроллеров.

Управляет всеми режимами работы Сторожевого таймера всего один регистр Watchdog Timer Control Register (WDTCR) состоящий из одного байта с набором конфигурационных бит.

Биты WDE и WDTIE определяют режим работы Watchdog. Вернее к какому результату приведет срабатывание Сторожевого таймера. В размещенной ниже таблице, в которой указано, как данные биты настраиваются:

Таблица 8-1 даташита на ATtiny13

Если WDE и WDTIE по нулям – у нас Сторожевой таймер остановлен.

Присваивая единицу WDTIE мы определяем, что результатом работы сторожевого таймера будет срабатывание прерывания.

А WDE равный единице, будет означать, что результатом работы сторожевого таймера будет Reset, т.е. перезагрузка микроконтроллера.

Если же обоим битам WDE и WDTIE присвоена единица, то у нас сработает и прерывание и Reset. Т.е. сначала сработает прерывание, а затем микроконтроллер перезапустится. Т.е. в этом случаем мы можем сохранить какую-то важную информацию, полученную в ходе работы скетча или код ошибки, например в EEPROM памяти, а затем перезагрузить микроконтроллер.

Это всё при условии, что у нас фьюз бит WDTON равен единице. Т.е. вспоминаем особенность фьюзов, о которой я рассказывал в статье » Что такое фьюзы? Как работать с фьюзами на микроконтроллерах AVR «, единица означает, что данный фьюз, не установлен. Если же установить фьюз WDTON, то неважно, как у нас заданы биты WDE и WDTIE , срабатывание Сторожевого таймера будет приводить только к перезагрузке микроконтроллера.

Еще по теме:  Защитное стекло или пленка на телевизор

Бит WDTIF работает когда Watchdog настроен на Прерывание. И микроконтроллер сам с ним работает и очищает, когда прерывание выполнено.

AVR 32# Сторожевой таймер — WatchDog.

Бит WDCE временно разрешает изменение параметров работы сторожевого таймера. Т.е. прежде, чем изменить режим работы Watchdog мы должны записать в этот бит единицу, а затем изменить нужный нам параметр. Через 4 такта данный параметр будет аппаратно сброшен на 0.

И биты WDP0, WDP1, WDP2 и WDP3 устанавливают количество тактов, прежде чем наступит срабатывание Сторожевого таймера. Ниже расположена таблица, где указано, какие значения мы можем установить данным битам и какое получить количество циклом до срабатывания Watchdog и сколько это примерно в миллисекундах и секундах.

Таблица 8-2 даташита на ATtiny13

Значение можно задать от 16 мс до 8 секунд. И следует учитывать, что это время указано при напряжении питания в 5В. Т.к. частота внутреннего кварцевого генератора зависит от напряжения и снижается при его понижении.

Очень важной особенностью является то, что имена конфигурационных бит, имя регистра таймера Watchdog и возможные варианты его работы отличаются у разных микроконтроллеров!

В этой статье, я привожу пример для ATtiny13.

А вот для ATtiny25/45/85 название регистра WDTCR совпадает с ATtiny13

А вот конфигурационного бита, отвечающего за включение прерывания, по срабатыванию счетчика Watchdog отличается. Он здесь WDIE , в отличие от WDTIE на ATtiny13.

Источник: dzen.ru

Аппаратный «watchdog» или незаменимый помощник в борьбе с зависанием

В одной компании было много терминалов, и одна из неблагодарных задач для техподдержки — ездить по точкам и перезапускать операционную систему внутри терминалов. Было решено бросить вызов этой проблеме в виде разработки аппаратного сторожевого таймера.

В итоге мы получили устройство, которое подключается к расширительному спаренному USB-разъему на материнской плате.

Данное устройство имеет следующие возможности:

  1. Имитация нажатия кнопок POWER и RESET;
  2. Управление питанием USB-устройством (при условии, что у него нет отдельного источника);
  3. Управление гальванически развязанной контактной группой (реле). Можно поставить в разрез цепи питания;
  4. Индикаторные светодиоды (одним можно управлять, второй показывает режимы работы).

Алгоритм работы прост: внутри находятся два настраиваемых таймера, которые постоянно отсчитывают заданное время, по истечению которого имитируется нажатие соответствующих кнопок (POWER и RESET). Чтобы предотвратить случайную перезагрузку, необходимо периодически послать команду сброса таймера.

Лучше, чтобы за процедуру сброса таймеров отвечало целевое приложение, а не стороннее или системное (Cron, служба расписаний) по причине того, что вероятность сбоя в системе меньше, чем в приложении (хотя, у кого как).
Обмен информацией аналогичен консольному.

Еще по теме:  Что такое мпр в телевизоре
команда Описание Пример
help Краткая справка по командам help
LED1 Управление светодиодом, по умолчанию выключен LED1 ON
LED1 OFF
RELAY Управление реле, по умолчанию включено RELAY ON
RELAY OFF
KEY1 Имитация нажатия кнопки 1, по умолчанию не нажата KEY1 ON
KEY1 OFF
KEY2 Имитация нажатия кнопки 2, по умолчанию не нажата KEY2 ON
KEY2 OFF
C1 Управление таймером 1, связанным с кнопкой 1.
Установка времени в секундах, максимальное значение 32767.
Для отключения функции таймера, необходимо задать время равное 0.
C1 RES
C1 SET 60
C1 SET 0
C2 Управление таймером 2, связанным с кнопкой 2.
Установка времени в секундах, максимальное значение 32767.
Для отключения функции таймера, необходимо задать время равное 0.
C2 RES
C2 SET 60
C2 SET 0
USB Управление питанием USB, по умолчанию включено USB ON
USB OFF

В случае удачного выполнения команды возвращает «OK».
В случае некорректных данных возвращает «ERROR».
Признаком конца строки служит символ возврата каретки «r». Также поддерживается режим «rn».

Устройство выполнено на базе контроллера STM32F103CA с аппаратной поддержкой USB. Библиотека работы с USB версии V4.0.0. Напряжение работы 3.3В получаем с помощью линейного стабилизатора из 5В на USB. Во всех управляющих цепях используются транзисторы в ключевом режиме. Также не забываем про защитный диод от токов самоиндукции в катушки реле (в моем случае он оказался встроенным).

Вот и все — просто и сердито =).

Источник: habr.com

Что такое Watchdog и его применение при потере связи на Raspberry Pi

Перед тем как выполнять действия, описание в этой статье, пожалуйста прочтите мнение редакции в конце.

Watchdog расшифровывается как сторожевой таймер. Основная его функция — перезапуск системы в определённых случаях, таких как: зависание системы, повышенная температура, пропадание связи и т.д. Бывает аппаратный, программный и программно-аппаратный.

Меня заинтересовала прежде всего такая функция, как перезапускать систему при отсутствии связи с роутером. Почему прежде всего именно эта функция?

У меня часто отключают свет в квартире, а при подаче питания вновь часто отваливается HomeBridge на микроконтроллере Raspberry Pi 3 (далее малинка). Лечится это перезагрузкой самой малинки. Причина до конца не выяснена, но думаю мой роутер запускается позже чем сама малинка.

Проведя эксперимент с выключением роутера во время работы малинки, я убедился что HomeBridge перестает функционировать. Вы можете проверить сами и написать в комментариях как решили данную проблему. Может быть проблема могла решиться заданием статического IP на самой малинке, но я это не проверял.

Еще по теме:  Подключение 3d очков к телевизору Samsung

На малинке установлен образ с Node 10 по статье нашего коллеги. Малинка подключена к роутеру с помощью кабеля и её IP зарезервирован как статический адрес на роутере.

Так вот для решения проблем с пропаданием питания, благодаря советам нашего сообщества, я решил установить Watchdog. Как готовое решение я взял статью, которая полностью соответствовала моим запросам.

Заходим на малинку по SSH и устанавливаем демон Watchdog командой:

sudo apt-get install watchdog

Далее делаем бэкап конфигурационного файла, если что-то пойдет не так и для отказа от работы Watchdog, если нет больше необходимости.

sudo cp /etc/watchdog.conf /etc/watchdog.conf.backup

Далееи редактируем файл конфигурации /etc/watchdog.conf

sudo nano /etc/watchdog.conf

В файле конфигурации необходимо раскомментировать ниже приведенные строки и задать Ваши параметры

# Watchdog ping: если не отвечает, то перезагрузка: ping= 192.168.0.1 # IP моего роутера interface= eth0 # используем wlan0 для Wi-Fi ping-count = 5 # ping 5 раз # Смена интервала по умолчанию с 1 секунды на 20: interval = 20 # проверка watchdog каждые 20 секунд

Теперь при отсутствии пинга 5 раз каждые 20 секунд (через 100. секунд) малинка будет перегружаться. Конечно интервал и количество пингов можно изменить в зависимости от задач, а так же при необходимо сменить IP на внешний (8.8.8.8 для примера) для проверки работоспособности интернета (хотя зачем это в моем случае).

Ложка дёгтя

Надо помнить, что при потере связи с указанным IP адресом малинка будет постоянно перегружаться и если Вы этого не хотите, то надо вернуть старый файл конфигурации (мы его специально сохраняли). Делается это командой

sudo cp /etc/watchdog.conf.backup /etc/watchdog.conf

Я тестировал работу Watchdog , описанную в статье, отключая роутер на интервал более заданного и малинка перегружалась. При отключении роутера на меньшее время HomeBridge всё равно не запускался, так что Watchdog оказался бесполезен для решения конкретно моей задачи. Возможно что Watchdog контроля связи будет особенно полезен для тех кто использует Wi-Fi подключение. Как это повлияет на работоспособность малинки при длительном отсутствии связи (умер роутер) я не знаю. Рекомендую иметь рабочий бэкап прежде чем что либо устанавливать.

Как я уже писал выше Watchdog может перегружать малинку и по другим событиям, но это уже другая, не мене интересная тема., которую я продолжу изучать. Для желающих разобраться ниже ссылки на инструкции по Watchdog.

Прикольная картинка взята здесь

Мнение редакции

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

Источник: sprut.ai

Оцените статью
Добавить комментарий