Z niezbadanych przyczyn
W moim starym laptopie sprawa wyglądała równie beznadziejnie. Poza resetem po przekroczeniu 85C brak jakichkolwiek zabezpieczeń przed totalnym zwisem. O tym żeby bios po całkowitym zaniku prądu pamiętał ostatni stan zasilania (on/off) oczywiście też można było sobie tylko pomarzyć. Z powyższych powodów powstał prosty układ na TINY13 który wszczepiłem do EEE PC 901 (znalazłem nawet wygodne miejsce na przylutowanie 4 wyprowadzeń obudowy SOP8 z czego jedno doprowadza masę, a drugie napięcie 3.3V aktywne podczas pracy komputera (pozostałe 2 były niepołączone)) umożliwiając monitorowanie działania dysku i reset lub repower systemu na wypadek nieaktywności po wybranym czasie. Dodatkowa funkcjonalność, to możliwość użycia przycisku na panelu przednim jako sprzętowego resetu lub repower-a.
Przykładowy laptop, co ciekawe posiada przycisk sprzętowego resetu, ale znajduje się on z dołu urządzenia, w dodatku jest oryginalnie zaklejony nalepką licencyjną, nic więc dziwnego, że jego funkcjonalność jest marna.
Do naszego kontrolera należy więc doprowadzić następujące sygnały:
8-zasilanie 3.3V (w eee pobrałem go z LDO3 z układu RT8203)
7-sygnał do diody power on sygnalizującej funkcje układu WDT (wyjścia z płyty i z TINY13 są typu otwarty dren, więc nie przeszkadzają sobie wzajemnie)
6-sygnał do sprzętowego resetu (stan niski powoduje reset komputera)
5-przycisk zasilania (podłączony do sprzętowego guzika power komputera)
4-masa
3-napięcie 3.3V pojawiające się po wystartowaniu płyty komputera (w eee to napięcie na gnieździe karty sim, w które przylutowałem avrka- patrz foto)
2-sygnał z diody HDD służące do resetowania wachdoga (wykrywane zbocze)
1-przycisk trybu pracy/ czasu wdt kontrolera. W tym przypadku podłączony do przycisku na panelu przednim komputera (podawana jest masa).
Kontroler umożliwia wybór następujących czasów, trybów pracy będących bezpośrednio powiązanymi z bitami liczby wprowadzanej ilością przyciśnięć przycisku.
Bit.0,1,2-czas WDT o następujących wartościach (w obecnej wersji kodu procesora):
0=off
1=10s
2=30s
3=1min
4=5min
5=15min
6=30min
7=60min
Bit.4 jeżeli ustawiony powoduje, że zamiast resetowania najpierw próbowane jest „miękkie” wyłączenie komputera przyciskiem power, po czym normalne włączenie również z użyciem przycisku power. Nieudana próba powoduje ordynarny reset
Bit.5 powoduje, że komputer jest za wszelką cenę włączany, jeżeli zostałby wyłączony z jakiegoś powodu.
Bit.6 umożliwia zablokowanie / odblokowanie zmiany parametrów programu
Oprócz programowanych funkcji, domyślnie jest zapamiętywany ostatni stan zasilania, tak więc jeśli odłączymy zasilanie a następnie włączymy komputer do prądu, to układ przywróci system z powrotem do stanu aktywnego. Jeśli podłączymy zasilanie, a laptop był wcześniej wyłączony, to tak pozostanie w dalszym ciągu. Po przejściu komputera w sleep dioda power miga kontrolowana przez bios płyty, co restartuje timer watchdoga i uniemożliwia niechciane opuszczenie tego trybu (z wyjątkiem gdy ustawimy bit.4 – „pc zawsze włączony”).
Programowanie odbywa się przyciskiem podłączonym do wyprowadzenia reset tiny13.
Sprowadza się do wyklikania tyle razy, jaki numer programu chcemy wprowadzić. Wybrana liczba zostanie potwierdzona zaświeceniem się diody LED taką samą ilość razy. Programowanie możliwe jest tylko w przypadku wyłączonego komputera (brak napięcia 3.3V na pb.4). Naciśnięcie przycisku 32 lub więcej razy powoduje blokadę programowania sygnalizowaną 3 zaświeceniami led. Kolejne wybranie 32 naciśnięć odblokowuje programowanie. Podczas aktywnego napięcia (włączony komputer) przycisk wywołuje reset po 7 krotnym naciśnięciu, lub repower po 13. Normalnie przycisk do którego jest przypisana ta funkcjonalność na panelu służy do włączania lub wyłączania ekranu LCD, co podczas zawieszenia się oczywiście i tak nie działa).
W przypadku współpracy opisanego układu z winXP można założyć, że dysk na 100% jest aktywny co najmniej raz na 3min. Więc można spokojnie ustawić czas resetu WDT na 5 lub 10min. Jak wcześniej zaznaczyłem możliwe są też krótsze czasy. Przedstawione urządzenie jest bardzo proste, ale działa bez zarzutu. Dodatkowy pobór prądu to 200uA (pobór prądu obniżyłem, ponieważ napięcie zasilające układ może być aktywne nawet po wyłączeniu laptopa z zasilacza, chociaż w moim przypadku jak się okazało napięcie to dla samego podłączonego akumulatora nie występuje).
W załącznikach źródło programu oraz wsad.
Fajne? Ranking DIY