Watchdog LCD
Watchdog z wyświetlaczem LCD
Co i dlaczego: większość kompów się prędzej czy później wiesza. Jak masz serwerek, to wiesz dobrze, że wieszanie nie jest najbardziej pożądaną właściwośią systemu. Można temu zaradzić robiąc watchdoga.
Wiadomo, że do watchdoga coś trzeba wysyłać co jakiś czas, żeby wiedział, że wszystko żyje. Dodatkowo nie może to być jakiś totalnie prymitywny układ, bo watchdog musi być na tyle inteligentny, żeby się włączyć na żądanie i od razu wyłączyć po wygenerowaniu reseta. Czyli mikroprocesorek, bo na układach dyskretnych byłoby za dużo rzeźbienia.
Mamy procesorek do którego coś trzeba wysyłać – najbardziej 'ludzkim’ interfejsem służącym do komunikacji z każdym komputerem i nie sprawiający żadnych problemów w oprogramowaniu jest RS232.
Ok. Mamy procesor, który coś dostaje od komputera i … ma to wyrzucać w kosmos? Marnotrastwo. Na Allegro można dostać sporo różnych tanich wyświetlaczy, które można podpiąć pod taki bezczynny procesorek!
No i mamy wstępną listę części potrzebnych do budowy:
- Atmel AT90S2313-10 – mikroprocesor, który ma w sobie zegary do zrobienia watchdoga, UART i jeszcze sporo nóżek w sam raz do podłączenia wyświetlacza
- MAX232 – konwerter sygnału TTL na RS232
- wyświetlacz DM157A – najtańszy na allegro i jednocześnie największy pod względem liczby wyświetlanych znaków (3×24 znaki) z mieszczących sie jeszcze w wymiarach pojedynczego slota 5.25″ (mieści sie w zaślepce)
- troche drobnicy:
- kwarc 8MHz i kondensatory do niego 2x 12pF
- kondensatory 4x 1uF do przetwornicy w MAX232
- opornik 33 Ohm – do zasilania podświetlenia wyświetlacza
- potencjometr 50K – regulacja kontrastu wyświetlacza
- podstawka pod mikroprocesor
- wtyczka DB9 żeńska
- wtyczka dwupinowa jak do płyty głównej do reseta
- wtyczka molex lub usb, żeby ukraść z wnętrza komputera troche fazy (+5V)
- troche kabelków (w tym przyda się kawałek starej taśmy od fdd lub hdd)
- jakaś płytka uniwersalna (lub hardcorowcy mogą sobie od razu wytrawić porządną)
- jakiś LED (bardziej dla poprawy samopoczucia i sprawdzenia czy wogóle coś działa)
- lutownica, cyna, kalafonia
Zaczniemy od schematu:
Jak widać nie ma tu prawie co robić:-)
UWAGA: Na schemacie nie ma narysowanego podłączenia zasilania do MAX232. +5V ma być podłączony do nóżki 16, masa do 15.
Klejenie układu
Wyświetlacz ma dosyć nietypowy rozstaw pinów na taśmie i dostanie do niego odpowiedniej złączki jest praktycznie niewykonalne. Zostaje więc tylko przylutowanie wyświetlacza do układu. Oznacza to troche kabelków. Najpraktyczniejszym wyjściem jest kawałek starej taśmy od FDD lub HDD, bo rozstaw jest praktycznie idealny i nie trzeba sie bawić za dużo w dopasowywanie, przytrzymywanie i celowanie.
Trzeba sobie przygotować kawałek taśmy 20 żyłowej, odizolować końce na ok. 1-2mm i pocynować. Taśmę wyświetlacza najlepiej przykleić sobie jakoś do biurka, żeby nie uciekała (najlepiej też rozebrać wyświetlacz). No i trzeba zacząć to lutować. Nie należy żałować kalafonii lub innego topnika, bo łatwo mogą się kontakty skleić, a później już zaczyna sie problem z odsysaniem itp.
Generalnie ta część roboty jest najbardziej precyzyjna i wymaga uwagi. Po przylutowaniu obowiązkowo trzeba sprawdzić czy nie ma zwarć (i czy jest przejście).
Dla odprężenia możemy sie teraz troche wyżyć fizycznie przeprowadzając mały tuning wyświetlacza przy pomocy brzeszczota. Trzeba po prostu uciąć wystające kawałki czarnego plastiku, bo z nimi nie zmieści się w standardowej zaślepce do obudowy.
Lutujemy sobie w międzyczasie resztę części na płytkę uniwersalną. Dla niecierpliwych jest właśnie dioda świecąca – po zamontowaniu procesora (zaprogramowanego!!), kwarcu, dwóch kondensatorów 12pF, LEDa i podłączeniu zasilania dioda powinna migać co ok. 1 sekunde. Jak wlutujemy resztę części, to po podłączeniu do komputera i uruchomieniu tam terminala (prędkość 38400N1, kontrola przepływu sprzętowa i programowa wyłączona) powinniśmy dostawać echo wysyłanych znaków, dodatkowo dioda powinna migać za każdym wysłanym znakiem (oprócz zwykłego migania co 1s.).
Czas na przylutowanie wyświetlacza:
No i testy. Po włączeniu trzeba wyregulować kontrast – potencjometrem pokręcić dosyć blisko +5V aż zacznie być widać powoli pikselki na czarno. Jeżeli wszystko jest zmontowane dobrze, to powinniśmy zobaczyć też migający kursor. Tylko podłączyć do komputera i zobaczyć co się tam wyświetla:
Jeżeli wszystko jest ok, to trzeba się zabrać za kosmetykę: usztywnić i zaizolować lutowanie taśm przy wyświetlaczu, wpasować to do obudowy. Polecam przykleić obudowe układu do tyłu wyświetlacza.
Jak wszystko działa, to możemy się już cieszyć wyświetlaczem!
Pozostaje jeszcze znaleźć jakąś zaślepkę do obudowy, zrobić w niej dziurę i wkleić tam wyświetlacz.
Reszta
- podłączenie resetu do płyty głównej: UWAGA – jeżeli odwrotnie podłączymy złączkę resetu, to płyta się nie uruchomi
- po włączeniu watchdog nie jest aktywny
- aktywacja watchdoga: na 74 pozycji do wyświetlenia (aktualnie to już poza widoczną częścią wyświetlacza) jeżeli będzie znak #, to watchdog zacznie działać
- oprogramowanie ma zaszyty czas nieaktywności na 3 minuty – od chwili aktywacji watchdoga musimy coś wysyłać do wyświetlacza, w przeciwnym wypadku wyświetlacz zresetuje nam płytę
- sygnał resetu jest przytrzymywany ok. 1 s.
- po wygenerowaniu resetu, watchdog przestaje być aktywny aż do ponownej aktywacji przy pomocy #
- pod linuksem, żeby coś wyświetlić wystarczy na początku stty do ustawienia prędkości portu lub jakis prosty programik, a poźniej już tylko co jakiś czas:
echo "jakis tekst" >/dev/ttyS0
- ’wsad’ do zaprogramowania mikroprocesora jest tutaj
- na schemacie i zdjęciach jest pokazane branie zasilania z portu usb. Oczywiście można wziaść zasilanie +5V z molexa, albo choćby z baterii płaskiej:-)
- jeżeli chcesz tanio kupić wyświetlacz DM157A, to sprawdź aukcje użytkownika enercon (tam ostatnio kupiłem i jestem zadowolony)
- jeżeli funkcjonalność watchdoga Cie nie obchodzi, to nie musisz lutować dwóch kabelków lub podłączać gdziekolwiek tego wyjścia. Natomiast sam watchdog bez podłączonego wyświetlacza najprawdopodobniej nie będzie działał, bo w programie jest kilka miejsc, gdzie procesor czeka na reakcję wyświetlacza.
Update 2013.03.13:
Strona przeniesiona do bloga z zachowaniem oryginalej daty publikacji.
Co do ewentualnych źródeł programu, to obawiam się, że ich już nie znajdę 🙁
Hi! Do you have a datasheet for DM157A? Can you share it with me? If you have some other info about this LCD, please share with me by my email.
I don’t have datasheet for it. It’s mostly compatible with HD44780.
Exceptions:
– it doesnt work in 4 bits (or at least I couldn’t make it work in this mode)
– it’s little slow
I fould code for this project, so maybe you could find it useful: https://majek.sh/watchdoglcd/mini.asm