Elektroda.pl
Elektroda.pl
X

Search our partners

Find the latest content on electronic components. Datasheets.com
Elektroda.pl
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

Mikroprocesorowy tester układów

Duch__ 13 May 2012 02:45 14854 23
  • Mikroprocesorowy tester układów

    Witam.

    Chciałbym dzisiaj przedstawić prosty układzik który wykonałem 2 miesiące temu.

    Układ powstał z prostego powodu. Budując kolejny układ natrafiłem na problem uszkodzonego układu scalonego i chwile czasu mi zajęło zanim doszedłem do przyczyny problemu - uszkodzenie jednego z wyprowadzeń scalaczka (układ z wylutu).

    Postanowiłem wiec wykonać taki oto prościutki testerek z rzeczy które akurat miałem pod ręką. Cała logika urządzenia zawarta jest w mikroprocesorze Atmega16, a komunikacja z układem odbywa się poprzez dwie diody LED, oraz Bascomowy terminal. Zadaniem mikroprocesora jest wysterowanie odpowiednich stanów logicznych na badanym układzie (maksymalnie 20-sto nóżkowym) i sprawdzenie czy na jego wyjściach pojawiają się odpowiednie "odpowiedzi". Jeśli wszystko się zgadza z nota katalogową danego układu, to otrzymujemy odpowiedz:

    "Układ 74x245 jest sprawny"....
    Mikroprocesorowy tester układów

    oraz zapala się dioda zielona.
    Mikroprocesorowy tester układów


    Jeśli któryś z portów odmówi posłuszeństwa, to zapala się dioda czerwona...

    Mikroprocesorowy tester układów

    i otrzymujemy komunikat: "Układ 74x245 jest uszkodzony lub brak układu w podstawce"

    Mikroprocesorowy tester układów

    Jeśli pomylimy się podczas wpisywania nazwy układu który chcemy przetestować, lub wpiszemy nazwę której mikroprocesor (jeszcze) nie obsługuje to wyświetli się stosowny komunikat:

    Mikroprocesorowy tester układów




    Na obecną chwilę testerek obsługuje następujące scalaczki (kolejne będą dodawane w miarę potrzeb):

    4001, 4017, 4049, 4093, 74x244, 74x245, 74x74

    Na koniec dodaje jeszcze zdjęcie poglądowa płytki.

    Mikroprocesorowy tester układów

    Jeśli będzie zainteresowanie to wrzucę stosowne pliczki :wink:

    Cool! Ranking DIY
    Can you write similar article? Send message to me and you will get SD card 64GB.
    About Author
    Duch__
    Level 31  
    Offline 
    Unitrez elektronik
    WWW.UNITREZ.PL
    SYSTEMY ALARMOWE, TELEWIZJA DOZOROWA,
    KONTROLA DOSTĘPU, AUTOMATYKA BRAMOWA.
    INTELIGENTNE BUDYNKI
    Has specialization in: bascom, avr, alarmy, telewizja, monitoring, kontrola dostępu
    Duch__ wrote 2284 posts with rating 1524, helped 33 times. Live in city Opole. Been with us since 2004 year.
  • TespolTespol
  • #2
    igon
    Level 11  
    Dodaj opcje wykrywania typu scalaka :) nie powinno to byc trudne - po prostu prosty test na 1 z wejsc i wyjsc scalaka kazdej rodziny i zobaczyc czy odpowiedz jest poprawna - jak tak to wykryto scalaka jak nie to nastepny test lub komunikat o braku mozliwosci auto detekcji i w tedy prosba recznego wpisania. Takie rozwiazanie przyspieszyloby testowanie wiekszej partii scalakow i ew. wykrywanie typu scalaka gdy napisy zostana zatarte
  • TespolTespol
  • #3
    Komar91
    Level 18  
    Czy komunikacja między PC a urządzeniem odbywa si.e za pomocą programatora?
  • #4
    Led156
    Level 16  
    Witam. Czy można prosić o kod programu?
    Pozdrawiam:)
  • #5
    Duch__
    Level 31  
    igon wrote:
    Dodaj opcje wykrywania typu scalaka


    W tej formie nie mozna tego zrobić, gdyż podczas nieudanej próby mogło by dochodzić do zwarcia, w końcu trzeba podać wystarowanie na badany układ, oraz na któryś pinach go zasilić, a nie każdy układ ma w tym samym miejscu wyprowadzenia zasilania.


    Komar91 wrote:
    Czy komunikacja między PC a urządzeniem odbywa si.e za pomocą programatora?


    Poprzez RS-TTL, w moim przypadku stosuje konwerter USB do RS232 TTL (widoczne na zdjęciu 2 przwody do komunikacji).
    Z programatora wykorzystuje tylko zasilanie.


    Led156 wrote:
    Witam. Czy można prosić o kod programu?
    Pozdrawiam:)


    W załączniku umieszczam wszystkie pliki potrzebne do wykonania takiego układu.
    Jeśli ktoś wykonał by go i dodał kolejne układy do bazy to proszę o zamieszczenie procedur w tym wątku.
  • #6
    Press
    Level 23  
    Dobra sprawa jak się z wylutów buduje.
    Nie dałeś schematu wiec zapytam... jak realizujesz zasilanie układu badanego? Jest podpięte na stałe czy podawane z portów uP?
  • #7
    Mje3sław
    Level 14  
    Pomysł dobry, ale trochę od złej strony podejście. Skoro już potrzebujemy komputera, to zrobić cały program testujący na PC a mikrokontroler tylko w roli interfejsu IO. Wtedy będzie można w 5 minut dodać nowy układ wpisująć (w pliku tekstowym!) jego tabelkę prawdy. O możliwości ręcznego (myszkowego) ustalania stanów pinów i ich wizualizacji nie wspominam. Kiedys nosiłem się z zamiarem wykonania takiego testera - ale większego - z podstawką 40 pin ZIF. Dziś powoli traci to już sens.
  • #8
    leonow32

    Level 30  
    Bardzo dobra rzecz :) kiedyś też chciałem zrobić podobną rzecz ale dla układów SMD i bez potrzeby podłączania do komputera, ale jakoś zabrakło motywacji :)

    Dobrze byłoby dać jakieś rezystory albo bufory między nóżki ATmegi a badanego układu, bo prędzej czy później spalisz ATmegę.
  • #9
    Duch__
    Level 31  
    Press wrote:
    ... jak realizujesz zasilanie układu badanego? Jest podpięte na stałe czy podawane z portów uP?


    Zasilanie poszczególnych kostek realizowane jest bezpośrednio z portów mikrokontrolera (w sumie mamy do wykorzystania 20mA więc sporo).

    Mje3sław wrote:
    Skoro już potrzebujemy komputera, to zrobić cały program testujący na PC a mikrokontroler tylko w roli interfejsu IO. Wtedy będzie można w 5 minut dodać nowy układ wpisująć (w pliku tekstowym!) jego tabelkę prawdy. O możliwości ręcznego (myszkowego) ustalania stanów pinów i ich wizualizacji nie wspominam.


    Może w przyszłej wersji coś takiego powstanie, chyba że ktoś mnie ubiegnie i wykona nowy tester z twoimi wytycznymi :D

    leonow32 wrote:
    Dobrze byłoby dać jakieś rezystory albo bufory między nóżki ATmegi a badanego układu, bo prędzej czy później spalisz ATmegę.


    Dlatego będe starał się 2 razy sprawdzić konfigurację wejść i wyjść z notą żeby nie doprowadzić do uszkodzenia, ale uwaga słuszna.
  • #10
    domek22
    Level 17  
    Witam. Bardzo fajny projekt. Jednak pod badany układ mogłeś zastosować precyzyjną podstawkę zamiast standardowej bo te szybko się wyświechtają. Jeszcze lepiej było by wlutować ZIF-a ale jak sądzę układ raczej będzie wykorzystywany sporadycznie.
    Gratuluję projektu.
  • #11
    phanick
    Level 28  
    Pomysł moim zdaniem genialny.
    Jedyne, co dodałbym / zmienił, to:
    * wszystkie wyjścia zrealizowane za pomocą tranzystorów, zamiast bezpośrednio z nóżek mikrokontrolera (nie byłoby problemu z pobieraniem >20mA z nogi), ewentualnie poprzez ULN28XXXX
    * wyjścia oczywiście przez rezystory
    * zamiast zrobić tego na mikrokontrolerze, to zrobić na FPGA - wówczas zakodowanie wszystkich układów z rodziny 74XX w VHDLu byłoby pryszczem.
    * wlutować szerszą i dłuższę podstawkę. niektóre układy są szersze (74181) - https://www.elektroda.pl/rtvforum/viewtopic.php?p=6950180
  • #12
    superhiro2
    Level 15  
    Czemu mega16 nie SMD. Ja to bym nie zrobil w SMD ale kolega tak.

    Czemu zasilanie nie z usb? USB + konwenter i mamy fajne urządzenie.
  • #14
    Duch__
    Level 31  
    superhiro2 wrote:
    Czemu mega16 nie SMD. Ja to bym nie zrobil w SMD ale kolega tak.

    Czemu zasilanie nie z usb? USB + konwenter i mamy fajne urządzenie.


    Miło mi że kolega zna lepiej moje umiejętności niż ja sam :D

    Napisałem że zasilanie czerpie z USB, poprzez programator.
  • #15
    maciej_333
    Level 35  
    Pomysł dobry, ale takie układy już były opisywane. Ponadto opisywać algorytm testu danego układu w kodzie programu :D :D :D ? Dużo lepsze rozwiązanie to nieco inne podejście do problemu. Badany układ faktycznie może mieć wszystkie piny dołączone do linii portów Atmegi. Porty tego mikrokontrolera są w stanie oddać dostatecznie duże prądy - nawet do zasilenia układu TTL. Jednak to już zwykle praca na granicy wydajności portu. Do testu lepiej stworzyć zestaw komend wysyłanych po RS232. Przykładowo można mieć komendę odczytującą daną linię portu Atmegi - np. wysyłamy bajt po RS232, trzy najmłodsze bity to numer linii portu. Reszta to numer samego portu. Odpowiedź, wysyłana przez RS232 to stan badanej linii. Inna komenda to nastawa rejestru DDRX i PORTX w Atmedze - określenie tego, czym ma być dana linia (wejście/wyjście). W ten prosty sposób istnieje możliwość wykonania bardzo uniwersalnego urządzenia. Zaś do samego sterowania testerem po RS232 konieczne jest opracowanie dedykowanego oprogramowania na PC. Zwróćmy uwagę, że coś takiego może już być wykorzystane np. jako prosty programator jakiegoś układu. Po dodaniu jakiegoś regulowanego i przełączanego zasilacza można mieć programator już bardzo uniwersalny.
  • #16
    RitterX
    Level 39  
    W mojej ocenie projekt jest bardzo udany. Prosty, skuteczny i taki powinien być. Zwykle gdy coś robimy w wyniku określonej naglącej potrzeby nie ma zbędnych dupereli a tylko to co niezbędne. Jeśli pojawi się kolejny układ do testowania to wystarczy dodać parę linijek do kodu i po sprawie.
    Jakbym miał coś zasugerować to zastanów się czy nie warto dorobić testowania wzmacniaczy operacyjnych. Zarówno zasilanie z 5V jak i prąd wyjściowy portu wystarczy by zasilić wzmacniacz.
  • #17
    phanick
    Level 28  
  • #18
    mikro_elektro
    Level 10  
    Jesli kolega zrobi testerek do sprawdzania SRAM, DRAM i flash w systemie z prockiem ARM9 (układ BGA ) poprzez JTAG to jestem w stanie rzucić nawet jakieś drobne pieniążki. bardzo mi to potrzebne do wdrożenia w produkcji.

    dziekuje bardzo, bóg zapłacić za duże chęci ambicja powinna zawsze wygrywać.
  • #19
    perszeron
    Level 21  
    Witam jakiś czas temu zrobiłem podobne urządzenie bo musiałem sprawdzić ogromną ilość układów TTL zrobiłem to na 2 układach PCF8574 podłączonych to złącza LPT oprogramowanie bylo napisane w delphi/ interfejs graficzny /nie tylko można było sprawdzić układ od razu ale podawać 0/1na dany pin i widzieć jak układ reaguje odpowiedzą na innych pinach
    ps.myślę że urządzenie tego typu było by bardziej uniwersalne tym bardziej że wykorzystywałem go jakiś czas jako analizator przy naprawach co się dzieje na pinach danego układu.
    Pozdrawiam
  • #20
    krru
    Level 32  
    Dawno temu, w trakcie praktyk studenckich napisałem program testera układów scalonych TTL. Sprzęt już istniał, miałem go tylko wysterować. Główny pomysł to pewnien "kalkulator ciągów". Zawierał kilka predefiniowanych ciągów (NKB, pływająca 1/0, Gray, kod Johnsona, itp) i operacje na ich (sklejenie dwóch ciągów - poprzecznie, podłużnie, iloczyn kartezjański itp). Odpowiedni ciąg wynikowy był podawany na wejścia i drugi ciąg wynikowy sprawdzany na wyjściach. Opis testu przeciętnego TTLa zajmował kilka linijek. Jakiś czas później dopisałem do tego prosty symulator układów cyfrowych - wtedy nie trzeba było podawać ciągów wyjściowych - program sam potrafił do obliczyć.
    Ostatecznie korzystając z tego wszystkiego powstał prototyp najbardziej uniwersalny - pracował w czterech trybach:
    1 - wyżej opisane testowanie scalaka wyjętego z układu,
    2 - emulator układu sacalonego w urządzeniu - odłaczamy zegar w układzie, podłaczamy w to miejsce sygnał zegara z testera i w miejsca badanego układu podłączamy sondę z testera.
    3 - weryfikacja scalaka w okładzie - z zegarem jak wyżej, na układ sprawdzany dajemy klips do testera.
    4 - weryfikacja danych z analizatora, z sygnałami z nóżek sprawdzanego układu.

    Oczywiście w trybach 2 i 3 można było testować jedynie takie układy, które mogą pracować z bardzo wolnym zegarem.
  • #21
    Rafał Piwowarczyk
    Level 11  
    zmontowałem tester układów i nie mogę go uruchomić, po podłączeniu zasilania i włożeniu układu w podstawkę tester nie działa (jest martwy). Próbowałem różnych ustawień fusebitów i nadal nie działa. Czy mógłby mi Pan podać bity konfiguracyjne na Atmegę 16?
  • #23
    Rafał Piwowarczyk
    Level 11  
    Terminal też jest martwy. Posiadam interfejs na RS232 i skonfigurowałem terminal w bascomie i nie ma żadnego odzewu z procka, diody led też nie pokazują żadnych stanów
  • #24
    ciapciok
    Level 20  
    Czy od czasu publikacji projekt się rozwinął? Obsługuje więcej układów?