Это – так называемый «вотчдог», устройство, которое автоматически перезапускает компьютер в том случае, когда он намертво зависает. Само собой, такая вещь наиболее известна людям, имеющим майнинг-фермы.
В повторении данной поделки не будет ничего сложного, в отличие от процесса разработки, пока идея данного устройства приходила мне в голову. Больше интересно поделиться идеей и получить об этом отзыв.
Нам понадобятся:
- Ардуино или любая совместимая железка, главное требование – возможность общения через СОМ
- мосфет N-канальный, совершенно любой, лишь бы приоткрывался при напряжении от 3 до 5 вольт
- стягивающий резистор на 10-500к
- один провод для подключения к выводам кнопки сброса на материнской плате, для надёжности или личного удовлетворения - два
- свободный USB кабель или ещё 4 провода
Сборка до ужаса простая, схема ниже, единственное условие – поменять вывод на затвор транзистора, если это кому-либо необходимо.
Как корпус хорошо подойдёт широкая термоусадка.
Приложение было сделано в программе Hiasm, соответственно, если кто-то сам ковыряется в данной программе, чему я, безусловно, удивлюсь – милости прошу, пополняйте, урезайте, творите.
Приложение довольно простое – открываете, нажимаете «Обновить список» при первом запуске, выбираете необходимый порт и, если оно требуется, можете проверить работоспособность. Индикатор показывает статус работы – если записать в порт вышло, то он засветит зелёным, и, если прошивка не была изменена, то будут мигать светодиоды TX и на 13 выводе.
Так же это приложение необходимо добавить в автозапуск своими руками: нажимаете WIN+R, пишете “shell:startup” без кавычек, и копируете приложение. На месте можно будет проверить автооткрытие порта при запуске программы. Если порт открывается, но не тот, то это можно исправить. Приложение создаёт текстовый файл port.txt, который содержит список портов, использованных ранее. Число в файле меняете на номер (именно номер!) необходимого СОМ порта, сохраняете и открываете приложение снова. Если всё сработало сейчас, значит, сработает и после жёсткой перезагрузки.
Касательно прошивки – использование delay(), как показала практика и несмотря на подобный «колхоз», на работоспособность это не повлияет. Так же можно сменить таймаут на автосброс в случае, если пяти минут не хватает.
Цеплять данное творение можно и к штырькам USB на материнской плате: 4 провода подпаивается к USB-UART преобразователю, в данном случае CH340 - к VCC на 16 выводе, GND на первом выводе, и D+\D- на пятом и шестом выводах соответственно.
Подключение к компьютеру простое – «земля» у микроконтроллера и компьютера будет общая, а значит и исток транзистора тоже, а сток транзистора подключается рядом. Если замерить эти два вывода мультиметром, то один из выводов будет звенеть на любую металлическую часть, например, радиатор процессора, а на соседнем будет высокий логический уровень в 3,3 вольта. Транзистор, открываясь, «садит» логическую единицу в ноль и происходит перезапуск. В целом, похожий принцип используют китайские вотчдоги с реле, но, соответственно, имеют более громоздкую конструкцию.
Данное устройство прошло боевое крещение при разгоне видеокарты, перезагрузив мне компьютер, когда во время теста компьютер в очередной раз завис, так что, работать должно.