Rys. 1 Schemat ideowy
Pewnego dnia kupiłem drukarkę pewnej firmy po bardzo przystępnej cenie. Jak się okazało, drukarka ta całkiem przyzwoicie drukowała, ale niestety co pewien czas domagała się wymiany pojemników z tuszem na nowe. Nie byłoby w tym nic dziwnego, gdyby nie robiła tego tak często. Komunikat o konieczności wymiany tuszu pojawiał się nie wiadomo skąd. Czasami po wydrukowaniu kilkudziesięciu stron w całości zapełnionych drukiem, a kiedy indziej po wydrukowaniu zaledwie kilkunastu kartek. A co mnie bardzo zirytowało - wcale nie zależało to od realnego zużycia tuszu na druk. Po pewnym czasie eksploatowania tego nieszczęsnego urządzenia suma kosztów wkładów z tuszem przerosła cenę drukarki. Napełnienie pojemników nie wchodziło w grę. Drukarka ta jest wyposażona w system kontroli poziomu tuszu i przestaje drukować, gdy poziom tuszu osiągnie zero. Jej projektanci nie potrudzili się jednak na opra-
cowanie systemu kontrolującego realny poziom tuszu w pojemniku. O ile mi wiadomo ze źródeł w Internecie, drukarka ta oblicza poziom tuszu na podstawie ilości wydrukowanych stron, co przypomina tylko atrapę systemu kontrolującego atrament. Każdy pojemnik do tej drukarki posiada chip, w którym zapisany jest „poziom” zawartego w nim tuszu. A więc nawet ponowne napełnienie cartdriges nie dawało rezultatu. Pierwszy pomysł, jaki mi przyszedł do głowy, to dowiedzieć się czegoś więcej o tym chipie. „Może to typowa pamięć EEPROM z magistralą I2C?” - pomyślałem sobie (zwłaszcza że chip posiada siedem styków, w tym pięć aktywnych, czyli zasilanie plus trzy jakieś „ciekawe” styki).
Postanowiłem więc bliżej przyjrzeć się temu układowi, a właściwie to „podsłuchać”, o czym „rozmawia” z drukarką. Ponieważ nie posiadałem jakiegokolwiek rejestratora przebiegów cyfrowych, do zarejestrowania użyłem komputera. Napisałem więc program i podałem sygnał z chipa na złącze LPT. Praca nad tym czymś, co przypomina chlebak (mam na myśli drukarkę), popsuła mi humor na kilka dni. Okazało się, że niepotrzebnie, ponieważ podobny problem z tą samą drukarką ma wielu ludzi na całym świecie i nawet ktoś specjalnie dla nich napisał program, który potrafi zresetować licznik w chipie pojemnika.
Przestałem więc tracić czas na rozpracowywanie drukarki i zająłem się swoim rejestratorem. Dopracowałem program tak, aby prezentował w sposób czytelny przebieg oraz wykonałem przystawkę do portu LPT. Po przeprowadzeniu ostatecznych testów okazało się, że program potrafi bezbłędnie zarejestrować przebieg o częstotliwości dochodzącej do 100kHz. Uznałem to za dobry wynik, zważywszy na prostotę układową oraz brak jakichkolwiek sprzętowych buforów pamięciowych i zewnętrznego sygnału wzorcowego. Ponieważ rejestrator jak najbardziej może się przydać elektronikowi zajmującemu się techniką cyfrową, postanowiłem zaprezentować go Czytelnikom EdW.
Żeby rejestrator działał, potrzebny jest komputer. Nie ma on specjalnych wymagań odnośnie komputera, ale jakieś wymagania jednak są. Oto one:
Komputer musi posiadać złącze LPT obsługujące dwukierunkowy interfejs CENTRONICS. Komputer musi mieć zainstalowany system Windows (od 98 w górę; nie sprawdzałem, jak pracuje pod kontrolą 95 i NT).
Pierwszy warunek spełniają praktycznie wszystkie produkowane obecnie płyty główne komputerów klasy PC. Rejestrator jest zatem w stanie pracować na komputerach większości Czytelników EdW. Ktoś może zapytać: Czy mój komputer posiada dwukierunkowy interfejs CENTRONICS? Łatwo to sprawdzić, zaglądając do ustawień BlOS-a. W BlOS-ie znajdują się ustawienia portu LPT, w tych ustawieniach należy szukać opcji bidirectio-nal. Jeżeli taka opcja istnieje, mamy pewność, że nasz port LPT potrafi zarówno wysłać, jak i odbierać dane. Przy okazji sprawdzenia można tę opcję również ustawić.
58 Wrzesień 2004 Elektronika dla Wszystkich