
Przedstawiam urządzenie, którego konstrukcja chodziła za mną od dłuższego czasu. Za pomocą urządzenia można przetestować proste scalaki z rodziny 74xx czy też bardziej złożone układy, jak pamięci SRAM czy Flash (w przyszłości planuje też dodanie obsługi wzmacniaczy operacyjnych)
Motywacja
Często naprawiając stare, niedziałające konsole musiałem znaleźć przyczynę usterki. Zwykle spowodowało ją podłączenie zasilacza o niepoprawnej polaryzacji i wówczas układy scalone w konsoli mogły nie przeżyć i konieczne było sprawdzenie ich pod kątem działania
Możliwości
Sercem urządzenia jest Atmega 32, której 30 linii jest wykorzystanych do komunikacji z testowanym układem.
Urządzenie jest w stanie przetestować każdy układ scalony w obudowie DIP do 32 nóżek (1 nóżka to zasilanie, 1 to masa, więc zostaje 30). Można testować układy wąskie jak i szerokie (umieszczając je w wygodnej podstawce ZIF). W zasadzie większych układów w obudowach DIP się nie robi (nie licząc 40 nóżkowych, które zwykle zawierają mikroprocesory, mikrokontrolery lub inne rozbudowane układy które i tak ciężko byłoby w tak sposób przetestować).
Wszystkie linie mikrokontrolera łączone z testowanym układem zabezpieczone są rezystorem 1k. Ma to służyć:
- zabezpieczeniu nogi mikrokontrolera przed przepływem zbyt dużego prądu (gdyby układ był uszkodzony i powodował zwarcie lub z listy testowanych układów wybrano inny, niż ten faktycznie umieszczony w podstawce).
- możliwości testowania układów, na których nogach można podawać jedynie napięcia do 3.3 V. Wówczas zawarte w takim urządzeniu clamp-diody same wyrównają poziom napięcia, natomiast rezystory ogranicza prąd.
- możliwości podpięcia do tych samych linii (przed rezystorami) innych elementów mojego testera - np. wyświetlacza (o tym niżej).
Większość nóg Atmegi (30 z 32) jest już zajęta, ale wciąż urządzenie nie ma wejścia/wyjścia. Do wyjścia jak już wspomniałem posłużył wyświetlacz LCD (2x24). Wszystkie jego linie podpięte są do tych samych nóg, z którymi Atmega komunikuje się z testowanym układem. Są one jednak połączone przed rezystorami. Dzięki temu wyświetlacz ma niejako priorytet, tzn. gdy Atmega chce sterować wyświetlaczem, to rezystory odcinają wpływ podłączonego na tych liniach układu (nawet, gdy układ wystawia na nich dane). Wyjątkiem jest tutaj linia zezwalająca (E) od wyświetlacza, która jest podpięta do nieużywanego pinu Atmegi.. Gdyby tak nie było, Atmega podczas testowania układu, wystawiając różne sygnały mogłaby przypadkowo załączać wyświetlacz, wysyłając do niego śmieci. Jeżeli jednak na wejściu E będzie stan niski, to wyświetlacz takich danych nie będzie odbierał (zostaje odłączony)
A wejście? Zastosowałem 4 przyciski (LEWO, PRAWO, OK, COFNIJ). Ale jak je podpiąć do ostatniego, niewykorzystanego w Atmedze wejścia? Wykorzystałem trik polegający na wykonaniu z nich drabinki rezystorowej, czyli prostego przetwornika cyfrowo-analogowego. Każdy z przycisków tworzy dzielnik napięcia w innej proporcji i po wciśnięciu przycisku, na pinie Atmegi pojawia się inne napięcie względem masy, a zawarty w Atmedze przetwornik analogowo-cyfrowy mierzy napięcie i na tej podstawie stwierdzamy, jaki przycisk został wciśnięty.
Kod
Procedury testujące dla każdego z układów są wgrane we flash Atmegi. Dodawanie nowych układów polega na przeprogramowaniu wsadu pamięci. Dane o każdym układzie zawierają:
- nazwę,
- numer pinu masy i vcc,
- typ układu (SRAM, 74xx),
- funkcje testującą.
Funkcja testująca (dla układów kombinacyjnych) sprawdza, czy dla wszystkich możliwych kombinacji bitów na wejściach, wyniki zgadzają się z oczekiwaniami, a jeżeli jakieś wyjścia są trójstanowe, to czy po ich wyłączeniu i włączeniu rezystorów podciągających do vcc w Atmedze, na linii pojawi się stan wysoki (rezystory podciągające w Atmedze dla każdego wejścia są zawsze włączone ? zabezpiecza to przed przypadkiem, gdy jakiś pin jest upalony i stan na nim mógłby się przenosić na sąsiednie piny i odwrotnie).
Dla pamięci SRAM funkcja zapisuje najpierw do wszystkich komórek różne wartości, a później każdą po kolei odczytuje, sprawdzając poprawność danych.
Trochę kłopotu jest z układami z pamięcią (przerzutniki, zatrzaski), gdyż funkcje je testujące są bardziej zaawansowane.
Zasilanie układów
Użytkownik po wybraniu układu proszony jest o podpięcie się kabelkiem masy oraz zasilania (podane są numery pinów, do których należy połączenie wykonać). Z reguły w 99% przypadków położenie kabelka z masą nie zmienia się, manewrujemy tylko kabelkiem z Vcc. Myślę, ze nie jest to jakiś kłopot. Mógłbym dać co prawda 30 tranzystorów NPN oraz 30 tranzystorów PNP i wtedy Atmega sama załączałaby zasilanie pod odpowiednie piny, ale skomplikowałoby to układ i podniosło koszt.
Urządzenie na razie sprawdza się bardzo dobrze. Dzięki zastosowaniu takiego dużego wyświetlacza, mamy możliwość oprócz nazwy testowanego układu zmieścić skrótowy opis, co on robi.
Jedynym mankamentem jest brak podświetlenia wyświetlacza (zakupiłem kilka wyświetlaczy z folią EL - niestety nie umiem jej wysterować. Potrzeba do tego mini inwertera, generującego napięcie ok. 170 v 400 Hz). Gdyby ktoś wiedział, jak zbudować taki inwerter z ogólnodostępnych części - prośba o podpowiedź. Tutaj temat poświęcony inwerterom:
https://www.elektroda.pl/rtvforum/topic1756990.html
Kod w C zostanie zamieszczony jeżeli uznam, że jest on już odpowiedniej jakości.








Cool? Ranking DIY