Elektroda.pl
Elektroda.pl
X
Konica Minolta
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Tester układów scalonych

phanick 04 Lut 2014 23:39 16845 24
  • Tester układów scalonych

    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/viewtopic.php?t=1756990&highlight=folia+el&sid=

    Kod w C zostanie zamieszczony jeżeli uznam, że jest on już odpowiedniej jakości.

    Tester układów scalonych Tester układów scalonych Tester układów scalonych Tester układów scalonych Tester układów scalonych Tester układów scalonych Tester układów scalonych Tester układów scalonych


    Fajne!
  • Konica Minolta
  • #2 05 Lut 2014 06:23
    Freddy
    Poziom 43  

    phanick napisał:
    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ą strójstanowe, to czy po ich wyłączeniu i włączeniu rezystorów obciągających do vcc w atmedze, na linii pojawi się stan wysoki.

    Coś tu ktoś pomylił ...

  • #3 05 Lut 2014 07:54
    kicked
    Poziom 11  

    Freddy napisał:
    phanick napisał:
    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ą strójstanowe, to czy po ich wyłączeniu i włączeniu rezystorów obciągających do vcc w atmedze, na linii pojawi się stan wysoki.

    Coś tu ktoś pomylił ...


    Pytanie należy zadać inaczej - gdzie każdy facet może takie rezystory kupić :D

  • #4 05 Lut 2014 08:45
    equos
    Poziom 11  

    Logicznie rzecz biorąc, jeśli podciągające są do VCC to obciągające będą do GND? :D
    Dziwna ta Twoja atmega ;)

  • #5 05 Lut 2014 08:57
    neo_84
    Poziom 14  

    Niby urządzonko fajne, ale tylko dla układów będących luzem, bo w gotowym urządzeniu nie ma jak sprawdzić - trzeba by wlutować ;) Z doświadczenia wiem, że układy TTL są zaskakujące :D Nietypowe uszkodzenia, np. układ zimny działa poprawnie, a po "zlapaniu" temperatury pracy potrafi szwankować. Spotkałem się też z taką usterką, że na 2000 cykli pracy wszystko OK, a 2001 pomyłka i znów losowe XXXX cykli pracy bezawaryjnie. To są najgorsze usterki, bo sonda logiczna wymięka, pokazując że wszystko OK. Pozostaje tylko analiza schematu i zasady działania danego urządzenia ;) Więc w tych dwóch przypadkach prawdopodobnie to urządzenie by zawiodło.

  • Konica Minolta
  • #6 05 Lut 2014 09:22
    shadow0013
    Poziom 34  

    Mimo Atmegi32 w wersji gender i niedoskonałości jakie opisał kolega neo_84 chętnie zapoznałbym się z listą testowanych układów i programem do wspomnianej Atmegi. Nie przeczę że wykonałbym sobie taki tester - dużo grzebię w TTL'ach.

  • #7 05 Lut 2014 11:56
    phanick
    Poziom 28  

    neo_84 napisał:
    Niby urządzonko fajne, ale tylko dla układów będących luzem, bo w gotowym urządzeniu nie ma jak sprawdzić - trzeba by wlutować ;) Z doświadczenia wiem, że układy TTL są zaskakujące :D Nietypowe uszkodzenia, np. układ zimny działa poprawnie, a po "zlapaniu" temperatury pracy potrafi szwankować. Spotkałem się też z taką usterką, że na 2000 cykli pracy wszystko OK, a 2001 pomyłka i znów losowe XXXX cykli pracy bezawaryjnie. To są najgorsze usterki, bo sonda logiczna wymięka, pokazując że wszystko OK. Pozostaje tylko analiza schematu i zasady działania danego urządzenia ;) Więc w tych dwóch przypadkach prawdopodobnie to urządzenie by zawiodło.


    Nic nie stoi na przeszkodzie, aby przy testowaniu układów TTL wykonywać np 10 000 prób. Wtedy dostaniemy przekonanie graniczące z pewnością, że układ działa poprawnie.

    Wylutowanie układu jest niezbędne. Żaden tester nie przetestuje układu na PCB, gdyż inne elementy mogłyby zakłócać jego działania.

    Dodano po 3 [minuty]:

    Nie wspomniałem o tym wcześniej i nie przewidziałem na etapie konstrukcji, ale chciałbym, aby urządzenie miało też możliwość testowania wzmacniaczy operacyjnych.

  • #8 05 Lut 2014 17:37
    Freddy
    Poziom 43  

    shadow0013 napisał:
    Mimo Atmegi32 w wersji gender ...

    Przepraszam, a co to za wersja, bo jak wpiszę w Google, to mi tylko o sexie wychodzi :)

    phanick :arrow: jakie zawartości wpisujesz w pamięci w ramach testów ?

  • #9 05 Lut 2014 19:46
    phanick
    Poziom 28  

    4 testy - polegające na zapisie do pierwszej komórki wartości XX, do drugiej XX xor 0xFF (czyli XX z odwróconymi bitami), potem do trzeciej XX, itd, gdzie XX =
    0x00 dla pierwszego testu
    0xFF dla drugiego testu
    0x55 dla trzeciego testu
    0xAA dla czwartego testu

  • #10 05 Lut 2014 20:10
    Fixxxer1
    Poziom 15  

    Czy te układy z konsoli Pegasus MT-777DX:
    UM6116-3L
    UM6116-3L
    SN74LS139N
    HD74LS373P
    UA6538
    UA6527P
    M74HC368B1
    M74HC368B1

    będę mógł przetestować Twoim testerem?

  • #11 05 Lut 2014 21:38
    phanick
    Poziom 28  
  • #12 06 Lut 2014 09:39
    amorfus
    Poziom 10  

    Cytat:

    Wylutowanie układu jest niezbędne. Żaden tester nie przetestuje układu na PCB, gdyż inne elementy mogłyby zakłócać jego działania.


    Oczywiście, że są testery które potrafią zmierzyć elementy w obwodzie - nawet układy scalone !

    Zobacz na:
    http://www.teradyne.com/ict/

    http://www.spea.com/BoardTestAutomation/Elect...Testers/tabid/318/language/en-US/Default.aspx

    http://www.home.agilent.com/en/pc-1041067/in-...test-medalist-i3070?nid=-33996.0&cc=PL&lc=eng

  • #13 06 Lut 2014 11:15
    Urgon
    Poziom 36  

    AVE...

    Amorfus, to są testery do sprawdzania płytek drukowanych w fabryce. I wymagają dostosowywania rozstawu i układu pinów pod każde testowane urządzenie. W serwisie nie ma to sensu z powodów zarówno ekonomicznych, jak i ze względu na ograniczenia testów logiki w tej formie...

    Phanick, nie myślałeś, by zaimplementować to na układzie CPLD na przykład? Albo użyć ciut większego mikrokontrolera i połączenia z komputerem do testowania układów? Przykładowo program komputerowy wysyła do układu konfigurację wejść i wyjść i sekwencję testową, a potem odczytuje wyniki testu. Badany układ teoretycznie możesz zasilacz z mikrokontrolera za pomocą odpowiedniej konfiguracji pinów, przy czym z reguły obciążalność pinów dla mikrokontrolerów nie przekracza 20-25mA. Tak czy siak jest to ciekawy projekt, i warto by było go rozbudowywać...

  • #14 06 Lut 2014 13:33
    trsr
    Poziom 16  

    Projekt bardzo ciekawy - dla mnie nawet z powodów sentymentalnych. W 1997 roku tester układów ttl był moją pracą dyplomową, ale wtedy z racji ograniczeń budżetowych i ogólnodostępnych środków był to faktycznie interfejs na układach 74xx podpinany przez LPT pracujący pod kontrolą DOS-owego programu. Pokusiłem się w tamtych czasach nawet na napisanie procedury próbującej wykryć symbol podpiętego układu i nawet osiągnąłem mały sukces (w sensie takim, że udało mi się wykrywać konkretny układ ttl i nie uszkodzić innych wpinanych układów ttl z pinami zasilania w innych pozycjach ) jednakże ten temat zarzuciłem, bo i tak jak na pracę dyplomową dla technikum to co zrobiłem to było dużo a nie chciałem źle wypaść na obronie.

    Z swoich doświadczeń z tamtych lat zasugerowałbym autorowi jakiś wygodniejszy sposób wprowadzania i korygowania testów - może testy powinny być w jakimś języku skryptowym(nawet własnym formacie wspierający zapis, odczyt z pinów, proste obliczenia, pętle i grupowanie pinów w słowa) a taki test w pliku tekstowym wczytywanym z karty sd czy w inny sposób (np. emulacja dysku USB). Pewnie do czegoś takiego trzeba byłoby albo zastosować inny mikrokontroler, albo użyć conajmniej dwóch atmeg, ale dałoby to możliwość stworzenia bardziej zaawansowanych testów zarówno pamięci jak i innych mikrokontrolerów.

    Tak czy inaczej trzymam kciuki za dalszy rozwój projektu :)

  • #15 06 Lut 2014 21:12
    amorfus
    Poziom 10  

    Urgon napisał:
    AVE...

    Amorfus, to są testery do sprawdzania płytek drukowanych w fabryce. I wymagają dostosowywania rozstawu i układu pinów pod każde testowane urządzenie. W serwisie nie ma to sensu z powodów zarówno ekonomicznych, jak i ze względu na ograniczenia testów logiki w tej formie...


    Wiem, na co dzień tym się "bawię" - bardziej chodziło mi o wskazanie na to, że takie testery istnieją. Jeśli chodzi o serwis to trzeba sobie radzić innym sprzętem.

  • #16 09 Lut 2014 14:32
    Szymon Tarnowski
    Poziom 27  

    Czy w swoim projekcie rozważałeś test poprawności styku w podstawce? Profesjonalne programatory robią to zawsze przed testem, a z praktyki wiem że układy scalone po wludowaniu/wylutowaniu lub wielokrotnym wyciąganiu i wkładaniu w podstawki nie zawsze dobrze kontaktują.

    Widziałem kiedyś że programatory ELNECa potrafią testować układy CMOS/TTL, chyba nawet potrafiły automatycznie testować przy kilku napięciach zasilania.

  • #17 09 Lut 2014 23:05
    toriman
    Poziom 14  

    Witam!

    Sam wykonałem taki podobny do tego projekcik z EPE. Wrzucam link do pdf-a:


    Link

    Przerobiłem pcb pod trochę elementów smd i takie tam... :)

    Problemem może być zdobycie PIC16F877-20I/P - niestety, ale z jakichś powodów taki jest wymagany - podejrzewam, że to kwestie transmisji PC <-> tester.
    Całkiem przyjazny i pomocny układ.

    pozdrawiam

  • #18 12 Lut 2014 17:17
    Rafał Piwowarczyk
    Poziom 10  

    Pomysł bardzo dobry, tylko zaimplementowanie dodatkowego układu scalonego wymaga przerobienie wsadu i przeprogramowanie procka. Czy można prosić o wsad do testera?

  • #19 12 Lut 2014 19:42
    toriman
    Poziom 14  

    Proszę bardzo - wrzucam zip z wszystkimi plikami do tego projektu z Everyday Practical Electronics - October 2002. Software na PC używa specyficznego skryptu testowego - dla każdego typu układu scalonego definiuje się wzór testowy.

    Bardzo łatwe do ogarnięcia :)

    Tutaj są źródła dla PIC i na PC oraz skompilowane programy. Wszystko sprawdzone - działa. Są delikatne błędy w sofcie PC - na szczęście do wyłapania (ustawienia DIP switchy dla różnych układów). Jest także poprawnie zakodowany PDF z czasopisma.

    Nad PCB warto przysiąść i zrobić trochę lepiej niż w oryginale :)

    pozdrawiam

  • #20 13 Lut 2014 11:43
    phanick
    Poziom 28  

    To ja apropo swojego projektu dodam, że dzięki pozostawieniu dwóch wolnych pinów (do LCD i przycisków, z których jeden jest połączony z INT0) można praktycznie za darmo całe urządzenie przerobić tak, aby mogło tez łączyć się z PC po USB. Na PC można napisać jakiś graficzny program i w nim zaszyć logikę wszystkich układów scalonych, aby za każdym razem nie trzeba było przeprogramowywać procesora.

  • #21 17 Lut 2014 23:45
    phanick
    Poziom 28  

    Witam po krótkiej przerwie. Tak jak się spodziewałem, tester został przyjęty wśród użytkowników dość chłodno. W istocie macie racje - brakuje funkcji łączenia się z komputerem. Ale.. nic straconego..

    Jak obiecywałem, postanowiłem połączyć tester z PC po USB. Wystarczyło `dodać` małą płytkę z gniazdem USB oraz układem dopasowywującym poziomy napięcia AVR do USB (diody Zenera 3.6V, rezystory). Ponieważ 30/32 wyprowadzenia Atmegi są już zajęte, miałem ciężki orzech do zgryzienia. Na szczęście tester zaprojektowałem w tak przemyślany sposób, że przeznaczona pod LCD noga PD2 (reagująca na przerwanie INT0) idealnie się nadaje na linie D+ pod USB. Niestety ze złączem pod linie D- jest problem, bo musi być ona na tym samym porcie, co D+ (port D). Dlatego też na owej płytce wykonałem magiczną kombinacje zworkową - ustawiamy zworkami, czy urządzenie ma pracować w trybie USB (i wówczas odłączony jest LCD i przyciski, noga PD4 zamienia się z PA0 i pod PD4 jest podpięta D-) czy tak jak poprzednio - z LCD/Przyciskami. Zawsze też możemy podłączyć go pod USB tylko dla zasilania.

    Na AVR zastosowałem bibliotekę V-USB. Po stronie PC napisałem prostą aplikację w C# (korzystając z biblioteki LibUsbDotNet).
    Jak ktoś zasugerował - PC może sterować testerem - może przestawić dowolną nogę w tryb wejścia lub wyjścia oraz odczytać bit z dowolnej nogi.

    Urządzenie służy mi też jako programator pamięci flash - np. 29f040. 512 kB pamięci programuje w ok. 120 sekund.

    Reasumując - powstał bardzo ciekawy wielofunkcyjny projekcik.


    Tester układów scalonych Tester układów scalonych Tester układów scalonych Tester układów scalonych Tester układów scalonych

  • #22 11 Maj 2014 21:32
    Dariusz Goliński
    Poziom 22  

    Witam
    A ja tam powiem że chętnie bym zrobił ten tester
    Czy jest taka możliwość, że wystawisz hex-a oraz pcb w pdf aby można było sobie zmajstrować ten tester ?

  • #23 28 Gru 2015 19:37
    evilman
    Poziom 15  

    Witam, minęło już trochę czasu, widzę że autor z powodzeniem tworzy nowe projekty związane z nesem.
    Czy udalo sie moze dopracowac ten tester na tyle zeby podzielic sie pcb i kodem programu?

  • #24 29 Gru 2015 05:54
    Dariusz Goliński
    Poziom 22  

    Też bym był zainteresowany.

  • #25 29 Gru 2015 05:58
    fred114
    Poziom 12  

    Ja również zainteresowany jestem tematem.Może coś ruszy w tej materii