Самодельный watchdog на ребут. Что мы будем делать? Почему watchdog не работает на большинстве современных плат Arduino

Получив, недавно, свой новый планшет Kindle Fire, я заметил что на нем установлена, устаревшая уже, прошивка 6.1. Я знал что рано или поздно таблетка сама обновит свою прошивку по средствам беспроводной сети WI-FI. И тут мне в голову пришла интересная мысль: "а как быть тем у кого под рукой не будет доступного вайфая для обновления?" Благо земля полна талантами, и решение выхода из сложившейся ситуации не заставило себя долго ждать. Автор блога о планшетах www.4tablet-pc.net подкинул способ обновления стандартной прошивки для Kindle Fire через шнур USB.

И так давайте приступим к обновлению прошивки:

Как вы уже, наверное, и сами догадались, нам, прежде всего, потребуется USB для подключения планшета к компьютеру.

Затем нам нужно скачать самую последнюю версию прошивки для Amazon Kindle Fire. Ее вы можете найти на официальном сайте Amazon по этому адресу . На открывшейся странице выберите свой планшет, чтобы перейти к станице загрузки прошивки.

Внимание! Перед прошивкой зарядите полностью батарею своего Kindle Fire.

Теперь, когда у нас есть все, что нужно, приступам к прошивке планшета:

1. Проверьте версию имеющейся на планшете прошивки: Нажмите на иконку «Quick Settings» -> «More» -> «Device» . Здесь вы увидите номер версии вашего программного обеспечения, например: Current Version: 6.2_xxxxx_xxxxxxxx . Если версия прошивки планшета, ниже скачанной вами версии прошивки, вы можете обновить планшет с помощью новой прошивки.

2. Скопируйте прошивку на планшет: Включите планшет и разблокируйте его экран. Подключите планшет к компьютеру через USB кабель. Перетащите файл с прошивкой с компьютера в папку kindleupdates вашего планшета и дождитесь, пока он полностью скопируется.

3. Отключите планшет от компьютера: После того, как вы убедитесь, что файл с прошивкой полностью скопировался на ваш планшет, нажмите на кнопку «Disconnect» на экране планшета, чтобы безопасно его отключить от компьютера. После этого отключите USB кабель.

4. Запустите обновление прошивки планшета: Нажмите «Quick Settings» -> «More» -> «Device» -> «Update Your Kindle» . (Эта опция будет недоступна, если файл с прошивкой не скопировался полностью на планшет или у вас уже установлена самая свежая версия прошивки). Начнется установка новой прошивки.

Планшет в процессе прошивки должен дважды перезагрузиться. После первой перезагрузки вы увидите на экране планшета логотип Kindle Fire, и после окончания прошивки на экране планшета появится сообщение "Current Version: X.X" , где X.X – это номер версии программного обеспечения, которое вы только что установили на планшет.

Планшет Amazon Kindle Fire, а также его главный конкурент Nook Tablet от Barnes&Noble представляют собой новый класс устройств, ориентированных на покупку книг, видео, музыки и игр в фирменных интернет-магазинах. И хотя эти устройства базируются на ОС Android, планшеты имеют собственную оригинальную оболочку, главное предназначение которой - осуществлять быстрый доступ к фирменному онлайн-магазину для покупки контента. Производители устройств зарабатывают именно на продаже цифрового контента, поэтому эти модели предлагаются по очень привлекательным ценам, практически равным себестоимости.


Так как планшеты "заточены" под фирменные сайты, и ориентированы на добропорядочных американских граждан, привыкших приобретать лицензионный контент, потенциал устройств в России, естественно, на порядок снижается. И не только по причине того, что россияне отдают предпочтение бесплатному пиратскому контента с горячо любимых торрентов. И Amazon, и Barnes&Noble не предлагают на своих сайтах книг и видео на русском языке, да и чтобы приобрести те мультимедийные радости, которые имеются, Вам нужно иметь пластиковую карту, выпущенную американским банком.


Словом, вариант использования в связке с Amazon в России не работает. Но устройство само по себе очень интересно даже "в отрыве" от фирменного сайта, так как в него можно загружать свой контент через USB-кабель. В оригинальном варианте “из коробки” планшет представляет собой отличный вариант устройства для чтения с TFT-дисплеем.


Кроме того, Android есть Android - на устройство можно установить полноценную альтернативную операционку, и получить отличный планшет для чтения, игр, интернет-серфинга и просмотра видео. Не проще ли купить уже готовое устройство с установленной производителем полноценной операционной системой? - спросите Вы. Конечно, можно, но сколько такой планшет будет стоить? Есть, к примеру, с , но их цена выше Kindle Fire или .


"Американцы" как минимум не хуже по качеству сборки. В их пользу говорят неброский, но продуманный дизайн, авторитетность бренда, букет современных технологий (чего стоит хотя бы экран Kindle Fire, оснащенный IPS-матрицей с разрешением 1024 на 600 точек и покрытый вертолетным нецарапающимся стеклом Gorilla Glass, или фирменный браузер Amazon Silk). И все это за цену около 8 тысяч рублей. Альтернативой Kindle Fire по цене могут стать лишь "произведения" от китайских брендов с ужасным дизайном, непотребным уровнем качества сборки и надежности.


Если наши аргументы кажутся Вам убедительными, советуем ознакомиться с данным обзором, где мы опишем параметры и спецификации Kindle Fire "из коробки", а также возможности его модифицированной версии с установленной прошивкой CyanogenMod 7.2 на базе Android 2.3.

Внешний вид и комплектация

Kindle Fire выглядит неброско, но стильно. Естественно, сложно ожидать от устройства за такую цену каких-либо дизайнерских изысков. 7-дюймовый экран занимает всю лицевую поверхность планшета - на ней Вы не обнаружите вообще никаких кнопок. На нижнем торце расположена кнопка включения, выход для наушников, а между ними - разъем Micro-USB для загрузки контента и зарядки устройства.


Кнопка включения не совсем удалась - ее трудно найти на корпусе. На верхнем торце имеются встроенные динамики. Сзади и на торцах Kindle Fire покрыт черным прорезиненным пластиком или, как модно теперь говорить, покрытием "софт-тач".


Габариты планшета позволяют удерживать его одной рукой в любой ориентации экрана. Так как физических кнопок на корпусе нет совсем все управление осуществляется с помощью сенсорного экрана.


Удивительный факт состоит в том, что планшет поставляется в комплекте с зарядным устройством, но без кабеля micro-USB для загрузки файлов с компьютера. Оправдывает свою ориентированность на беспроводную закачку с Amazon, так сказать. Пользователю придется докупить этот шнур отдельно.

Оригинальная оболочка Kindle Fire

При включении устройство просит зарегистрировать себя на Amazon.com . Регистрацию можно отложить и сразу проникнуть в Главное меню, но потом напоминание о регистрации будет постоянно отвлекать о работы с Kindle Fire. Так лучше при первом включении зарегистрировать планшет, и подключившись к WiFi, создать аккаунт на сайте Amazon.com.


Главная страница меню состоит из строки поиска, вкладок-разделов меню, книжной полки (ей отведено центральное место) и иконок вызова различных веб-сервисов.


Вкладка Newsstand ведет в раздел, где находятся различные периодические издания (журналы и газеты). Кстати, Амазон предлагает оформить на любую газету или журнал бесплатную подписку сроком минимум на неделю. Каталог англоязычных периодических изданий имеется богатейший. Оформив подписку, Вы сможете получать свежий газетный или журнальный номер автоматически. То есть каждое утро любимая газета будет аккуратно загружаться в устройство при подключении к WiFi.


Раздел Books, конечно, основной. Внешне он похож на периодику. Книги можно без проблем покупать и с помощью карты любого российского банка, подходящей для платежей в интернете. Есть возможность предварительно скачать выдержку из любой книги (Sample) , чтобы составить впечатление о ней, а потом уже приобретать полную версию.


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


Книги с компьютера необходимо загружать в папку Documents. Туда же будут сохраняться и книги, скачанные и купленные на Амазоне.


Вкладка Music ведет к загруженным музыкальным трекам. Здесь с Амазоном устройство уже не дружит (как в случае с видео), требуя для приобретения контента расплачиваться карточкой американского банка. Раздел интересен тем, что в него можно залить свои музыкальные файлы. Треки можно сортировать по песням, альбомам, исполнителям и плей-листам.


В раздел Video тоже можно загрузить свой контент. Планшет позволяет просматривать видеофайлы в форматах VP8 и MP4. Американские граждане могут бесплатно смотреть выпуски ТВ-шоу в онлайне, им доступна платная аренда на сутки роликов в обычном или HD-качестве, и конечно, покупка контента. А еще в Америке можно приобретать по сезонам или конкурентным сериям популярные сериалы. Россиянам ничего из этого не доступно. Только свой контент.


В разделе Documents будут находиться персональные файлы в форматах PDF, MOBI, DOC, DOCX, TXT. Планшет вполне подходит для комфортного просмотра PDF-файлов, которые можно масштабировать с помощью функции мульти-тач.


Во вкладке Apps (Приложения) имеется стандартный набор приложений, не слишком интересный российскому пользователю. Из полезностей стоит выделить, пожалуй, лишь почтовый клиент (можно привязать к нему аккаунт Gmail, Yahoo, Hotmail или Aol), программку Quickoffice, да приложения Contacts и Gallary (каталог ваших загруженных фоток). Ну и Facebook само собой для тех, кто им пользуется.


Интересный элемент интерфейса - браузер Amazon Silk также обнаружится во вкладках. По заверениям разработчиков планшета, он отличается повышенной скоростью загрузки интернет-страниц, в сравнении с другими Android-браузерами. Однако в ходе тестирования Silk ничем таким себя не зарекомендовал. Скорость загрузки сайтов была вполне стандартной.


Центральное место на Главной странице занимает “Карусель” - каталог из значков недавно используемых файлов или приложений. Работать с этой штукой предлагается одним пальцем, пролистывая значки вперед или назад. Очень удобно и оригинально.



В целом, оригинальный интерфейс устройства выглядит неординарно, и Android напоминает лишь отдаленно. Все заточено под приобретение контента, и в этом плане девайс, конечно, очень удобен. В отрыве от сайта Amazon планшет с оригинальной оболочкой подойдет тем, кто хочет обзавестись читалкой с TFT-дисплем. Тем более, что путем нехитрых манипуляций на устройство устанавливается русификация и программа Cool Reader для чтения книг в форматах FB2, EPUB, RTF, TXT, HTML, не изменяя при этом “родной” интерфейс.


Остальные преимущества Kindle Fire с фирменной оболочкой - комфортный выход в интернет (есть собственный браузер), удобный интерфейс просмотра и работы с контентом и возможность смотреть видео в формате MP4 (как в , к примеру). С айпадом, конечно, устройство ни по каким другим параметрам рядом не стояло, но в качестве альтернативы E-ink-читалке, оно вполне себя оправдывает и в оригинальном виде.

Альтернативная Android-прошивка

В качестве альтернативной прошивки для Kindle Fire мы выбрали CyanogenMod 7.2 на базе Android 2.3. В связи с тем, что планшет не имеет физических кнопок, количество прошивок на базе второго Android для него очень ограниченно. Прошивка CyanogenMod является послепродажным обновлением для мобильных устройств от группы независимых разработчиков. Плюс CyanogenMod 7.2 для Kindle Fire в том, что у нее имеются экранные клавиши управления. На аппарат она становится без особых проблем и работает очень стабильно.


Интерфейс CyanogenMod 7.2 представляет собой Android в чистом виде. Возможности прошивки позволяют выбирать различные варианты настройки внешнего вида, в том числе набор стандартных и “живых” обоев. С техническими подробностями и достоинствами прошивки Вы можете ознакомится . Из характерных функциональных особенностей отметим, что прошивка не предусматривает стандартного пакета приложений, то есть вы получаете “голый” Android 2.3. На наш взгляд, это даже лучше, так как нет необходимости впоследствии избавляться от ненужных приложений, которые Kindle Fire не поддерживает, а установить только то, что необходимо из Amdoid-маркета (или Google Play, как он правильно теперь называется).


Браузер опять-таки Вы сможете выбрать тот, который Вам больше нравится, загрузить на планшет тот набор приложений, который Вы считаете оптимальным, и получить привычный “открытый” Android без жесткой привязки к Амазону. Естественно, Вам понадобится программа для чтения (мы рекомендуем Cool Reader) или можно, например, установить приложение Kindle для Android, осуществить синхронизацию с аккаунтом на Амазоне и получить в свое распоряжение все его сервисы (беспроводная загрузка книг, доступ к “облачному” сервису, онлайн-конвертер, покупка книг и периодики). Кроме того, приложение Kindle имеет оригинальный интерфейс чтения книг (уже описанный выше). Так что в итоге Вы получите все достоинства Kindle, но уже на полноценном Android-устройстве.


Конечно, важный минус Kindle Fire - невозможность использовать Skype по причине того, что у планшета нет камеры и микрофона. А еще посетовать можно на небольшой объем встроенной памяти - после установки прошивки свободного объема остается около 5 Гб. Флеш-карты Kindle Fire не поддерживает, так что это главный недостаток планшета. Памяти действительно будет не хватать.


И все-таки девайс с альтернативным интерфейсом дает больше возможностей в плане игр, поддержки форматов книг и видео. Наличие очень качественного экрана, позволяет шире использовать Fire в развлекательных целях. На прошитый планшет можно свободно загружать игры с Android-маркета, а видео, к примеру, воспроизводить теми программами, которые Вам больше нравятся, забыв про стандартный плеер с поддержкой единственного формата.

  • отсутствие камеры и микрофона.
  • Плюсы:

    Резюмируя все вышесказанное, назовем Kindle Fire отличным устройством для интернет-серфинга. Другая возможная ипостась для российских пользователей - читалка с TFT-дисплеем. Экран Fire действительно впечатляет, поэтому для тех, кто любит читать на цветном дисплее и с подсветкой, планшет будет интересен и в оригинальном виде. Потенциально широкие “развлекательные” возможности сужает ограниченный объем памяти. В возможности ее увеличения Амазон нам пока отказывает. В будущих версиях устройство, скорее всего, будет предлагаться с различными объемами памяти, но вот поддержки флеш-карт ждать не стоит, так как “заточенность” под покупку и хранение контента на фирменном сайте, конечно, сохранится. Таким образом, в случае с Kindle Fire россиянам приходится мириться с недостатками планшета и по максимуму использовать те преимущества, которые есть у девайса. Насколько последние перевешивают первые решать, конечно, только Вам.

    Предлагаю вариант устройства автоматически перезагружающее компьютер при зависании.

    В основе лежит известная плата Arduino с минимальным количеством внешних электронных компонентов. Транзистор подключаем к плате согласно рисунку ниже. Коллектор транзистора подключаем вместо кнопки «Reset» компьютера на материнскую плату, на тот контакт который НЕ соединен с GND.

    Вот и вся схема:

    Функционирует устройство следующим образом: на компьютере запускается скрипт, который периодически шлет в порт компьютера данные. Ардуино подключается к USB и слушает этот порт. Если в течении 30 секунд данных нет Ардуино открывает транзистор, который соединяет Reset c землей, тем самым имитируя нажатия кнопки сброса.
    После сброса ардуино делает паузу в 2 минуты дожидаясь загрузки всех программ и вновь начинает слушать порт.

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

    Изготвление устройства требует минимальных навыков работы с паяльником и програмирования ардуино.

    Так же можно использовать любой Н канальный транзистор с похожими характеристиками. Но смотрите что бы совпадала цоколевка. Например я использовал 9013 , там перевернутое подключение

    Компонентты для сборки я покупал на Алиэкспресс:

    Провода для макетной сборки http://ali.pub/22k78b

    Ардуино УНО (точно подходит) http://ali.pub/22k7dd

    Скетч Ардуино

    int LedPin = 13;
    int ResetPin = 12;
    int val = 0;
    int count = 0;
    void setup()
    {
    Serial.begin(9600);
    pinMode(LedPin,OUTPUT);

    //пауза на запуск 2 мин
    delay (120000);
    }

    void loop()
    {
    count++ ;

    if (Serial.available() > 0)
    {
    val = Serial.read();
    if (val == ‘H’)
    {
    digitalWrite(LedPin,LOW);
    digitalWrite(ResetPin,LOW);
    count = 0;
    }
    else
    { count++ ;
    }
    }

    delay (1000);

    if (count > 10)
    {
    digitalWrite(LedPin,HIGH);
    digitalWrite(ResetPin,HIGH);
    }
    }

    Скрипт отправляющий в порт данные:

    (Get-Date).ToString(‘dd.MM.yyyy HH:mm’) | Out-File c:\Users\miner\Desktop\reboot.txt -append

    while($TRUE){
    Start-Sleep -s 3
    $port= new-Object System.IO.Ports.SerialPort COM3,9600,None,8,one
    $port.open()
    $port.WriteLine(«H»)
    $port.Close()
    }

    Сразу после запуска скрипт записывает в файл reboot.txt текущую дату и время. По этому файлу можно судить о количество и времени перезагрузок. Путь к файлу и номер порта необходимо отредактриовать в соответствии с вашими данными системы. Код пишется в обычном блокноте и сохраняется с расширением *ps1.

    Т.к. в Windows политикой безопасности отключено выполнение скриптов по двойному клику и из автозагрузки делаем финт ушами и запускаем шелл из батника следущего содержания.

    Предлагаю вариант устройства автоматически перезагружающее компьютер при зависании.

    В основе лежит известная плата Arduino с минимальным количеством внешних электронных компонентов. Транзистор подключаем к плате согласно рисунку ниже. Коллектор транзистора подключаем вместо кнопки «Reset» компьютера на материнскую плату, на тот контакт который НЕ соединен с GND.

    Вот и вся схема:

    Функционирует устройство следующим образом: на компьютере запускается скрипт, который периодически шлет в порт компьютера данные. Ардуино подключается к USB и слушает этот порт. Если в течении 30 секунд данных нет Ардуино открывает транзистор, который соединяет Reset c землей, тем самым имитируя нажатия кнопки сброса.
    После сброса ардуино делает паузу в 2 минуты дожидаясь загрузки всех программ и вновь начинает слушать порт.

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

    Изготвление устройства требует минимальных навыков работы с паяльником и програмирования ардуино.

    Так же можно использовать любой Н канальный транзистор с похожими характеристиками. Но смотрите что бы совпадала цоколевка. Например я использовал 9013 , там перевернутое подключение

    Компонентты для сборки я покупал на Алиэкспресс:

    Провода для макетной сборки http://ali.pub/22k78b

    Ардуино УНО (точно подходит) http://ali.pub/22k7dd

    Arduino uno с кабелем http://ali.pub/22k7go

    Скетч Ардуино

    int LedPin = 13;
    int ResetPin = 12;
    int val = 0;
    int count = 0;
    void setup()
    {
    Serial.begin(9600);
    pinMode(LedPin,OUTPUT);

    //пауза на запуск 2 мин
    delay (120000);
    }

    void loop()
    {
    count++ ;

    if (Serial.available() > 0)
    {
    val = Serial.read();
    if (val == ‘H’)
    {
    digitalWrite(LedPin,LOW);
    digitalWrite(ResetPin,LOW);
    count = 0;
    }
    else
    { count++ ;
    }
    }

    delay (1000);

    if (count > 10)
    {
    digitalWrite(LedPin,HIGH);
    digitalWrite(ResetPin,HIGH);
    }
    }

    Скрипт отправляющий в порт данные:

    (Get-Date).ToString(‘dd.MM.yyyy HH:mm’) | Out-File c:UsersminerDesktopreboot.txt -append

    while($TRUE){
    Start-Sleep -s 3
    $port= new-Object System.IO.Ports.SerialPort COM3,9600,None,8,one
    $port.open()
    $port.WriteLine(«H»)
    $port.Close()
    }

    Сразу после запуска скрипт записывает в файл reboot.txt текущую дату и время. По этому файлу можно судить о количество и времени перезагрузок. Путь к файлу и номер порта необходимо отредактриовать в соответствии с вашими данными системы. Код пишется в обычном блокноте и сохраняется с расширением *ps1.

    Т.к. в Windows политикой безопасности отключено выполнение скриптов по двойному клику и из автозагрузки делаем финт ушами и запускаем шелл из батника следущего содержания:

    start PowerShell.exe -ExecutionPolicy ByPass -File «c:путь к вашему файлуваш файл.ps1»

    Файл сохраняем с расширением *.bat и ставим его в автозагрузку.

    Радуемся, теперь у нас все автоматизированно. Устройство испытано на своем ПК и польностью работает.

    Подписывайтесь на Bitnovosti в telegram!

    Делитесь вашим мнением об этой новости в комментариях под статьёй.

    Ни для кого не секрет, что любая цифровая техника, рано или поздно, «зависает». Это всегда неожиданность для разработчика и это всегда неприятность для пользователя. Это всегда невовремя и это, увы, никак не прогнозируется. И неважно, самодельная ли это «мигалка на ёлку» на одной микросхеме-микроконтроллере или сложный сервер, работающий в нагруженной сети, - лучше бы этих зависаний не было. А бывают такие системы, зависание которых обходится очень и очень дорого.
    Устройство, называемое «Watchdog» («Сторожевая собака»), призвано отслеживать факт зависания контролируемой им системы и, в случае обнаружения зависания, принудительно эту систему перезагружать.

    Сначала я напишу коротенький абзац для «новичков», чтобы было понятно, о чём я вообще тут говорю. Потом будет абзац для более подготовленных, которые, дочитав дотуда, всё ещё не захотят закрыть вкладку с обзором:)
    Сторожевой таймер, сам по себе - это маленькая и довольно простая схемка. До тех пор, пока ей на вход периодически приходят сигналы от контролируемого девайса («да-да», «всё нормально», «я тут», «я работаю») - собака ведёт себя спокойно и никак не вмешивается. Как только сигналы перестают приходить, собака ждёт положенное время (обычно несколько секунд) и, если сигналов так и не пришло, она считает, что устройство зависло и посылает ему сигнал Reset, перезагружая его. Очевидно, что некая условная система, оборудованная таким модулем, будет более устойчива, по сравнению с аналогичной системой без watchdog: от зависаний не застрахован никто, но первая будет сама выбираться из этих зависаний, вторая же будет ждать и простаивать до вмешательства человека.
    Сторожевой собаке абсолютно всё равно, какой величины и значимости систему она контролирует. Это может быть и копеечная воьминогая микросхема-микроконтроллер, и «малинка»-«апельсинка», и роутер, и домашний стационарный компьютер, и большой навороченный сервер. Ей лишь бы приходили сигналы об активности системы, да чтоб система, соответственно, реагировала на её импульс «Reset».
    Конец абзаца.
    Почему внешний watchdog, если в любом современном микроконтроллере есть встроенный? По двум основным причинам. Во-первых, бывают такие зависания, которые изнутри единого кристалла отследить нельзя: прерывания по таймеру живут, watchdog исправно ресетится, а программа, допустим, крутится в бесконечном цикле. Или ждёт импульса на какой-нибудь ноге, который дойти никак не может из-за какой-то аварии. Да мало что… Внешний же аппаратный сторож никак не связан с процессами внутри: пока у него есть питание, он будет сторожить.
    Во-вторых, ардуино… Нельзя не признать, что доля DIY-микроконтроллерных проектов, реализуемых публикой на arduino, занимает значительную нишу. И приверженцы ардуино, увы, прелестями встроенного в атмегу сторожевого таймера воспользоваться не могут. Проблема . Вкратце: watchdog правильно работает только на некоторых Uno, остальные ардуины намертво «кладутся» при попытке использовать сторожевой таймер. Спасает только перешивка загрузчика внешним программатором. А новичков такая «хирургия», безусловно, пугает. Да и не у всех есть под рукой вторая ардуина, чтобы сделать из неё программатор для оживления первой, ушедшей в мёртвый цикл из-за использования встроенного watchdog. Все эти манипуляции новичка, вероятнее всего, попросту отпугнут.
    Внешний же watchdog позволяет, используя arduino в своих проектах, в полной мере получать все прелести устойчивых систем, не заморачиваясь проблемами внутреннего сторожевого таймера.

    Теперь, собственно, к самому обозреваемому модулю.

    Размерами он сопоставим с Arduino Pro Mini:

    С обратной стороны ничего интересного: только дорожки, соединяющие три переходных отверстия с пинами модуля. Да не очень качественно отмытый флюс:

    Модуль построен на базе далласовского чипа DS1232.
    Для тех, кто привык читать официальную литературу, вот .
    Чип обеспечивает сразу три функции: мониторинг питания, сторожевой таймер и формирование правильного импульса Reset (нужных фронтов, амплитуды и длительности), даже при дребезге контактов ручной кнопки перезагрузки.

    Коротко и сжато о назначении выводов чипа

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

    На выводах RST и /RST формируется перезагружающий импульс. Разница между выводами RST и /RST заключается исключительно в полярности перезагружающего импульса. Сигнал с вывода RST надо брать, если контролируемое устройство перезагружается логической единицей при нормальном нуле на линии сброса. Сигнал же /RST, наоборот, предназначен для устройств, перезагружаемых низким уровнем на линии сброса. Большинство современных микроконтроллеров (включая атмелловские, на базе которых построено и arduino) перезагружаются нулевыми импульсами, т.е. для них подходящим является сигнал /RST.

    Вывод TOL выбирает приемлемость условий питающего напряжения.
    - когда TOL прижат к земле, приемлемым считается пятипроцентный коридор отклонения напряжения. Т.е. сигнал перезагрузки придёт при снижении напряжения до 4,75V.
    - когда TOL подключён к питающей линии, коридор питающего напряжения расширяется до 10%. Т.е. устройство будет перезагружено при снижении напряжения питания до 4,5V.

    Выводом TD выбирается максимальное контрольное время, после которого сработает сторожевой таймер:
    - когда TD прижат к земле, таймаут составляет 150ms (от экземпляра к экземпляру нормой будут значения 62,5ms - 250ms);
    - когда TD висит в воздухе, таймаут составляет 600ms (от экземпляра к экземпляру 250ms - 1000ms);
    - когда TD соединён с питанием, таймаут составляет 1200ms (от экземпляра к экземпляру 500ms - 2000ms). Выдержек свыше двух секунд данная микросхема не даст даже теоретически.


    Продавец услужливо опубликовал схему модуля и его разводку:


    Как видим из схемы, линии чипа ST, RST и /RST выведены, как одноимённые, и на пины модуля.
    Производитель предоставил нам самое лояльное и комфортное включение чипа: максимально широкий коридор питающих напряжений (от 4,5 до 5V) и максимально возможный таймаут сторожевого таймера (1,2 секунды).

    Теперь становится понятной схема подключения модуля к нашей условной ардуине:
    - линии Vcc и Gnd на модуле подключаются к двум одноимённым линиям на arduino;
    - линия /RST на модуле подключается к пину RST на ардуине
    - линия ST подключается к любому свободному пину, желательно без аппаратного ШИМ, - допустим, у меня это пин 2.

    Набросаем простенький скетч для проверки модуля. Я (исключительно для наглядности) при инициализации программно мигаю встроенным светодиодом. Этого можно было не делать, светодиод мигнёт и без нас. Но так - нагляднее и понятнее новичкам.
    void setup() { pinMode(13, OUTPUT); // Используем внутренний светодиод pinMode(2, OUTPUT); // С этого пина Watchdog будет получать сигналы digitalWrite(13, HIGH); delay(50); // Коротко мигнём светодиодом при каждой перезагрузке digitalWrite(13, LOW); } void loop() { digitalWrite(2, HIGH); delay(2); // Формируем короткий перепад digitalWrite(2, LOW); delay(1150); // Максимально длинный таймаут } При значении задержки 1150 миллисекунд (в моём конкретном случае) или меньших, наша ардуина спокойно крутится в рабочем цикле, ей ничто не мешает. Светодиод, мигнув вначале, не светится - перезагрузок нет. Как только мы увеличим эту задержку хотя бы до 1200 миллисекунд (или внесём значительную задержку в процедуру Setup), мы увидим, что светодиод начнёт циклически вспыхивать: время для собаки становится критическим и она перезагружает ардуину.
    В реальных же условиях рабочего скетча, достаточно внести строчку digitalWrite(2,HIGH); delay(1); digitalWrite(2,LOW); в самый конец основного цикла, чтобы сторожевой модуль, подключённый к пину 2, чувствовал себя спокойно.
    При инициализации ардуины все пины передёргиваются, поэтому собаке абсолютно всё равно, на каком логическом уровне зависло устройство: таймер был запущен и, значит, перезагружающий импульс неминуемо придёт.

    Выводы.
    1. Нужен ли сторожевой таймер в принципе? Если в проектируемом вами устройстве зависания могут привести к негативным последствиям, то да. С ним система будет, очевидно, более устойчивой, чем без него.

    2. Является ли внешний сторожевой таймер панацеей? Конечно, нет. Он более эффективен, чем внутренний, имеющийся во многих микроконтроллерах, но и он не панацея. Для достижения максимальной эффективности его работы, важно его подключить в правильное место вашей системы. Лучше не подключать его к линиям, на которых сигналы формируются аппаратно (ШИМ, различные аппаратные порты со стробами), а также к сигналам внешнего или внутреннего тактового генератора. Ну и абсолютно бессмысленно подключать его к линиям, работающим на вход - так мы будем контролировать не свой микроконтроллер, а что-то другое.

    3. Есть ли минусы у этого сторожа? Главным минусом внешнего сторожевого таймера, в общем случае, является потребность в выделении для его работы одного пина на вашем устройстве. Хотя на практике, этого очень часто удаётся избежать: если ваш микроконтроллер что-то постоянно пишет или рисует на дисплее, что-то постоянно посылает в порты, формирует какие-то управляющие импульсы для внешних устройств - подключайте сторожевую собаку к этим линиям, - ей абсолютно безразличны частота и скважность импульсов, ей лишь бы была постоянная движуха.
    Главным минусом конкретно этой реализации таймера я назову, пожалуй, довольно короткий контрольный таймаут. Бывают случаи, когда хотелось бы иметь запас хотя бы в 3-5 секунд.

    4. Надо ли покупать именно этот watchdog? Ну, каждый решит для себя. Сторожевую собаку, совершенно точно, можно получить дешевле $3. Кому-то проще купить один лишь только обозреваемый выше чип и с помощью ЛУТ сделать такой модуль самому. Кому-то проще взять легендарный и сделать сторожевой таймер на рассыпухе: плюсы - дёшево и доступно, минусы - больше возни и времязадающие электролитические конденсаторы, а, значит, с годами гарантированно поплывут все параметры. Кому-то проще сделать одновибратор с таймером вообще на полупроводниках. Тут каждый решает сам.
    Здесь же за вполне посильные деньги мы получаем полностью готовое и рабочее устройство с нормированными параметрами.
    Так что резонность покупки каждый оценит самостоятельно.

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

    Никто ничего не предоставлял и не спонсировал, всё куплено на свои.

    UPD : Пока писал обзор, продавец неожиданно поднял цену. Упс. Будем считать это временным приступом жадности. На этот товар у него периодически бывает скидка. Ну и ничто не мешает искать этот товар у какого-то другого продавца.

    Планирую купить +92 Добавить в избранное Обзор понравился +86 +164

    Есть вопросы?

    Сообщить об опечатке

    Текст, который будет отправлен нашим редакторам: