GNU GPL projekt WAtchdog Alphawave AR-2 (RESETATOR) 2003 by lada (L) ---------------------------------------------------- Watchdog je zarizeni ktere pokud zjisti ze nebezi korektne operacni system pocitace tak zmackne reset na motherboardu a resetne pocitac. Indikace ze system zije je pomoci vysilani znaku po seriovem portu pripojenem do watchdogu. Je jedno kolik znaku a libovolnou rychlosti. Watchdog je pri pripojeni ATX pinu (poweron tlacitko ) na motherboard po zapnuti napajeni (musi byt napajen z nezavislych atx napeti 3.3V ktere bezi porad - napr. na konektoru WOL (Wake On Lan) schopen zapnout atx desku ktera se sama neumi nahodit. Po zapnuti napajeni ceka watchdog podle nastaveni jumpery volitelne 30,60,120,240 sekund a pak teprve vejde do cyklicke smycky ktera trva bud 5 nebo 10 sekund (viz program), pokud v teto dobe 5 ci 10 sekund nedostane znak po seriove lince mysli si ze zatuhnul pocitac a posle reset na desku. Po urcite dobe (s prodluzujicim se intervalem) to zkousi znovu, kdyby proste neco, nechava vice casu po kazdem vyslani resetu kdyby probihal fsck filesystemu. START napajeni-> 1sekunda ATX start -> {30,60,120,240} cekani -> SMYCKA: cekani {5,10} sekund -> RESET -> cekani {30,60,120,240} sekund -> RESET -> cekani {60,120,240,360} sekund -> RESET -> atakdale az na konci smycky se opakuje posledni nejdelsi sekvence., Pokud watchdog kdykoliv prijme znak, tak vrati program do bodu SMYCKA: V programu jsou popsany jednotlive sekvence, ktere se voli jumperblokem 6 jumperu, tedy az 64 sekvenci, standardne jsou zapnuty tyto (dalsi je mozno doprogramovat, nebo udelat specialni). JUMPERBLOCK casy cekani v sekundach mezi resety :::::: 30s start, SMYCKA: 5s, 30s 90s 180s , opakovani posledni :::::O 60s start, SMYCKA: 5s 60s 180s 300s , opakovani posledni ::::O: 120 s start, SMYCKA: 5s 120s 300s 500s , opakovani posledni ::::OO 240 s start, SMYCKA: 5s 240s 500s 700s , opakovani posledni :::O:: 30s start, SMYCKA: 10s, 30s 90s 180s , opakovani posledni :::O:O 60s start, SMYCKA: 10s 60s 180s 300s , opakovani posledni :::OO: 120 s start, SMYCKA: 10s 120s 300s 500s , opakovani posledni :::OOO 240 s start, SMYCKA: 10s 240s 500s 700s , opakovani posledni ^-------- voli timeout 5 nebo 10 sekund v vlastni smycce O - jumper nasazen : - jumper nenasazen Konektory ------------ Watchdog ma pozlacene spicky na ktere se davaji jumpery ci kabliky a vyvody tlacitek a LEDek z case pocitace. JP9 - napajeni jako je na floppy konektoru (jen 5 V pouzito, watchdog funguje i na 3.3V) JP1 - jumperblock popsany vyse :::::: JP5 - vystup RESETU, pripojit na reset motherboardu JP11 - vystup na ATX start motherboardu, nemusi se spojovat JP10 - vstup tlacitka ATX start z case pocitace, nemusi se zapojovat, funguje paralelne k generovanemu ATX start pulzu JP3 - vstup RESET, puvodni tlacitko RESET na case pocitace, manualni reset JP4 - vstup seriovy port JP7 - vystup na externi LED na case pocitace, blika JP8 - vstup, docasne odstaveni funkce, na tlacitko TURBO case pocitace U konektoru JP9, JP5,JP11,JP4,JP7 zalezi na polarite, jinak se to treba furt resetuje, nebo zase neresetuje vubec , nebo neblika LED, nebo se to napaji 12 voltama misto 5 (:-(( Polarita bude popsana na obrazku. POUZITI V LINUXU ----------------------- while (true) ; do echo 1 > /dev/ttyS0 ; sleep 1 ; done nebo ekvivalent v C, .... PROBLEMY ----------- u par exotickych motherboardu se vyskytl problem s tim, ze resetator posle reset, ale board je tak dokonale zatuhly (vetsinou diky mikrovlnym kartam), ze nereaguje na reset. U nam znamych pripadu stacilo flashnout novy bios. Dalsim problemem ktery se objevil a jeste jsem ho neodstranil je ze u par exotickych motherboardu se pri resetu na 1 ci vice seriovych portu posila nejaky haluz a ten resetator zblbne a on si mysli ze komp uz nabeh, skoci do 5 vterinove smycky, a za 5 vterin to zresetuje atak dokola - zkusit dat do druheho seriaku, casem to vyresim, po vyslani resetu se da tak 100ms mrtva doba kdy to nebude reagovat). ZAVEREM --------- Projekt byl vyvinut jako mikroudelator cili bastl pro potreby czfreenetu (www.czfree.net), je siren pod licenci GNU GPL, tistaky je mozno sehnat u kohouta z modranech (anebo radeji na alphawave cely resetator bud spajeny odzkouseny nebo jako stavebnici). Nebo si to postavte sami. Prekladal jsem to sdcc 2.3.3 (2.3.0 zlobi) pod linuxem a palil do atmelu programatorem z hw serveru (www.hw.cz). Vsechno k resetatoru je mozne koupit u alphawave (www.alphawave.cz) vyrizuje to fantomas (czfreenet nick: fantomas). Kuriozni bugy a vylepseni posilejte me (xmyslik@aldebaran.feld.cvut.cz). sdcc http://sdcc.sourceforge.net/ Komu by nestacilo pro ucely tech 2kB co je na 89c2051, muze si to napalit do 89c4051 coz ma 4kb flashe a tam uz se vejde vsech 64 sekvenci. Ja tohle ladil a programoval na platforme RD2 (http://hw.cz/products/rd2kit/) od hw serveru, vyvoj je s tim extremne rychly a ve zdrojaku najdete komentare a definy pro maly brouk (2kb) nebo velky ( rd2) - pak po stdoutu na seriaku vypisuje debugovaci hlasky. cus a co nejmin resetu preje lada