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.

KrzysioTesterEPM240 - tester układów EPM240T postrach sprzedawców z alieexpress

phanick 14 Jan 2022 16:48 2430 20
  • KrzysioTesterEPM240 - tester układów EPM240T postrach sprzedawców z alieexpress

    W tym artykule opiszę projekt oraz konstrukcję testera układów FPGA własnego pomysłu, do którego budowy zostałem zmuszony przez Chińczyków, bo w ostatnio zamówionej paczce od nich co trzeci scalak był wadliwy. Tester po wciśnięciu jednego przycisku dogłębnie sprawdzi włożony układ. Będzie trochę elektroniki analogowej, sporo cyfrowej, trochę o JTAGu i USB. Zapnijcie pasy, bo zapowiada się ciekawie.

    1. Tytułem wstępu - trochę o naszym pacjencie, czyli układzie EPM240T100C5N
    1.1. Dlaczego akurat ten?
    1.2. Motywacja do budowy
    1.3. Sprytny test
    2.0 Budowa – założenia
    2.1. Obsługiwane układy
    2.1. Podstawka ZIF
    2.2. Programowanie układu
    2.3. Zabezpieczenie przeciwzwarciowe + pomiar prądów zasilania
    2.2. Test pinów
    2.3. Oprogramoanie po stronie PC
    3. Niespodzianki podczas budowy
    4. Plany na przyszłość
    5. Podsumowanie


    1. Tytułem wstępu - trochę o naszym pacjencie, czyli układzie EPM240T100C5N
    Każdy z konstruktorów-elektroników ma chyba swoje ulubione procesory, FPGA czy inne scalaki, których używa do budowy jakichś projektów. Moim jest układ EPM240T100, najprostszy przedstawiciel rodziny układów programowalnych MAX II od firmy Altera.
    KrzysioTesterEPM240 - tester układów EPM240T postrach sprzedawców z alieexpress

    1.1. Dlaczego akurat ten?
    + Tani (przed skokiem inflacji można było je dostać po 0.90$-1.5$/sztukę ana aliexpress)
    + Pojemność 240 bloków logicznych (LE) (1 blok w uproszczeniu pozwala na przechowanie jednego bitu w przerzutniku)
    + Dość przyjazna obudowa TQFP100 (0.5mm odstęp między nogami) – łatwa do lutowania w domu (po nabraniu wprawy)
    + Spora liczba końcówek (wersja w obudowie TQFP100 to 80 pinów I/O)
    + Obsługa różnych standardów napięciowych na pinach I/O w tym możliwość włączenia przerzutnika Schmitta na wejściu dla wolno rosnących sygnałów,
    + W najprostszym wariancie wymaga jedynie pojedynczego napięcia zasilania 3.3V
    + Zawiera dwie niezależne pamięci - pierwsza (konfiguracyjna) przechowująca aktualnie zaprogramowany wsad oraz druga (tzw. blok UFM)
    * w pamięci konfiguracyjnej zapisane jest "jak ma działac układ", nie wymaga on więc dodatkowej pamięci do przechowania tej informacji (jak w przypadku wielu układów FPGA), jest te też możliwość zabezpieczenia przed odczytem naszego kodu
    + UFM służy dla użytkownika jako pamięć Flash; z zewnątrz może być ona widoczna jako pamięć szeregowa (np. po protokole SPI, I2C) czy też pamięć równoległa
    + Sygnał zegarowy (ok 3..5MHz) z bloku UFM można wykorzystać na swoje potrzeby, nie wymaga więc dodatkowego generatora

    Jednak jest też sporo wad:
    -Wyżej wspomniana pojemność 240 LE to jednak stosunkowo mało (nie zmieścimy w nim np. implementacji prostego procesora Z80 czy nawet 6502)
    -Ograniczona liczba cykli przeprogramowania (do 100 razy)
    -Blok UFM symulujący pamięć Flash tez ma tylko do 100 cykli zapisu (więc bardziej służy do przchowywania jakichś danych, które rzadko modyfikujemy;)
    -Brak wejść 5V-tolerant

    Wspomniany układ EPM240 to tylko najprostszy przedstawiciel rodziny, poniższa tabelka zawiera wszystkich członków tej rodziny:
    KrzysioTesterEPM240 - tester układów EPM240T postrach sprzedawców z alieexpress

    Oraz sposób oznaczania:
    KrzysioTesterEPM240 - tester układów EPM240T postrach sprzedawców z alieexpress

    1.2. Motywacja do budowy
    Cena tych układów (aliexpress) na początku mojej przygody z nimi (rok 2017) wahała się w okolicach 1$ i w zasadzie przez 3 lata była na podobnym poziomie. W ciągu ostatnich kilku miesięcy stał się jednak jakiś dramat - cena z tygodnia na tydzień zaczęła szybować w górę i obecnie jest w okolicach 2-3$.
    Ja zamawiałem je od przeróżnych sprzedawców i bywało raz lepiej, raz gorzej. Bywały zamówienia, że tylko 1 na 50 układów okazywał się niesprawny, bywały takie że 100% działało, ale ostatnio zamawiając od jednego sprzedawcy kilka razy zauważyłem poważny problem. Średnio co 3-4 układ nie działał. A bywały przypadki, że wylutowałem niesprawny układ, wlutowywałem nowy i ten tez nie działał, dopiero za 3 czy 4 razem było OK. Strata czasu i zszargane nerwy powiedziały STOP.

    A co to znaczy, że układ był niesprawny? Bywało wiele różnych usterek:
    * po wlutowaniu powodował zwarcie między zasilaniem a masą
    * nie był wykrywany przez programator
    * był wykrywany przez programator jako zupełnie inny układ (np. 5M240ZT100) mimo, że na obudowie widniało prawidłowe oznaczenie (!). O tym układzie będzie wspomniane jeszcze później. To tylko potwierdza, że Chińczyki malują na obudowach nowe oznaczenia często na ślepo. Mam kilka układów „zbieranych” na przestrzeni czasu – widać różną czcionkę na każdym z nich, faktura obudowy tez jest różna (raz gładka, raz szorstka)

    * programowanie w połowie nagle zostawało przerywane z komunikatem błędu
    * niektóre z pinów wyjściowych nie działały (albo przywarte do masy/zasilania albo w ogóle wisiały w powietrzu)
    * niektóre z pinów wejściowych nie działały - ta usterka była najcięższa w diagnozie, bo objawiała się niezgodnym z założeniem działaniem całego układu
    * no i oczywiście defekt fizyczny (np. wygięte nogi, brak którejś ze skrajnych nóżek - ułamana w czasie transportu). Kilka razy zdarzyła się nawet dziurka w środku obudowy, świadcząca jednoznacznie, że z układu ulotnił się magic smoke oraz widoczne przez obudowę części pól struktury (za mocno zeszlifowana obudowa?)
    KrzysioTesterEPM240 - tester układów EPM240T postrach sprzedawców z alieexpress KrzysioTesterEPM240 - tester układów EPM240T postrach sprzedawców z alieexpress

    Jeśli podczas mojej przygody wykryłem kiedyś wadliwy układ, odkładałem go do specjalnego pudełka. Na przestrzeni lat zgromadziłem ok 100 układów, które w jakiś sposób nie nadawały się do normalnej pracy.

    1.3. Sprytny test
    Będąc w potrzebie stwierdzenia, z jakim układem mam do czynienia, przypadkowo znalazłem ciekawy sposób na test na szybko przed wlutowaniem. W opisywanym scalaku można wyróżnić kilka grup pinów:

    Przykładając do pinów 11 GND (+) oraz 13 VCCINT (-) sondy miernika na teście diod, otrzymywałem z reguły 3 wskazania:
    ~1070 mV – EPM240 (czyli taki, jak ma być)
    ~1300 mV – układ wykrywany jako 5M240
    ~700 mV – układ który po wlutowaniu powodował zwarcie
    Test jednak wymagał wyłożenia scalaka na biurko, skrupulatnego policzenia pinów, przyłożenia ostrych sond miernika, był więc upierdliwy a i tak nie pozwalał na stwierdzenie czy wszystkie piny w scalaku działają poprawnie.
    A co tu tak właściwie mierzymy? Zdaje się, ze średnie napięcie przewodzenia wszystkich diod zabezpieczających w scalaku.
    KrzysioTesterEPM240 - tester układów EPM240T postrach sprzedawców z alieexpress

    2.0 Budowa – założenia
    Tak naprawdę na tym etapie sam do końca nie wiedziałem, co chcę zbudować. Na pewno miałoby to być urządzenie wyposażone w podstawkę ZIF, do której wkładałoby się pacjenta.
    Początkowo chciałem do podstawki podłączyć jedynie gniazdo programatora (oraz zasilanie).
    Później doszedłem do wniosku, że warto byłoby jednak przetestować też wszystkie piny.
    Dalej – że warto byłoby dodać pomiar prądów pobieranych przez scalak.
    Dalej – że niezbędne jest zabezpiecznie przed zwarciem

    Sam sposób wyświetlania wyniku też ewoluował w mojej głowie:
    * dwie diody LED: czerwona – układ ma jakiś defekt, zielona – układ sprawny
    * mały wyświetlacz OLED – w przypadku defektu - wyświetlenie szczegółów usterki
    * wysłanie szczegółowej informacji o wyniku po USB do komputera – przyspieszyłoby to tworzenie listy zawierającej scalaki wraz z usterkami (którą można np. potem wysłać do sprzedawcy w celu ubiegania się o zwrot kosztów)

    Finalnie pomysł ktory został zrealizowany to:
    * płyta główna (oparta o mikrokontroler Atmega 64), gniazdo USB, diody sygnalizacyjne, bufory, gniazdo USB
    * na płytę nakładana druga płytka z podstawką
    KrzysioTesterEPM240 - tester układów EPM240T postrach sprzedawców z alieexpress KrzysioTesterEPM240 - tester układów EPM240T postrach sprzedawców z alieexpress KrzysioTesterEPM240 - tester układów EPM240T postrach sprzedawców z alieexpress KrzysioTesterEPM240 - tester układów EPM240T postrach sprzedawców z alieexpress

    2.1. Obsługiwane układy
    Kluczowym układem który chciałem obsłużyć jest oczywiście główny bohater - EPM240T100.
    Czasami zachodziła także potrzeba zakupu trochę bardziej pojemnych układów (EPM570T100), którym mam też kilka w kolekcji. Pod względem obudowy i wyprowadzeń są one niemal identyczne z poprzednikiem.

    W wyniku niefrasobliwości sprzedawców, w mojej kolekcji pojawiło się tez kilka układów EPM240GT100 - różnią się one tym, że do zasilenia wymagają napięcie VCCINT 1.8V (zamiast 3.3V)
    Wreszcie, także w wyniku błędów sprzedawców jest tez kilka układów 5M240ZT100 - one także wymagają VCCINT = 1.8V oraz dodatkowo mają drobną różnicę w pinoucie
    Mam też jeden układ 5M570ZT100
    Różnica w pinoucie jest naprawdę minimalna i sprowadza się do tego, że układy mają dodatkowe piny masy/zasilania w miejscu, gdzie EPM240T100 miał piny IO:
    KrzysioTesterEPM240 - tester układów EPM240T postrach sprzedawców z alieexpress

    W efekcie:
    * płytka musi umożliwiać podanie na piny VCCINT zarówno napięcia 1.8V jak i 3.3V
    Napięcia 1.8V oraz 3.3V mają ciekawa własność, że leżą symetrycznie między napięciem środkowym 2.5V.
    Jeśli teraz pin VCCINT_SET:
    * będzie w stanie Hi-Z, to na wyjściu dzielnika ustali sie napięciei 2.5V
    * będzie zwarty do masy, to na wyjściu dzielnika ustali się napięcie ~1.8V
    * będzie zwarty do +5V, to na wyjściu dzielnika ustawli się napięcie ~3.3V.
    Atmega64 sterując odpowiednio pinem może więc regulować napięcie dostarczane do układu - wystarczy jedynie dodać wtórnik (zrealizowany na wzmacniaczu operacyjnym):
    KrzysioTesterEPM240 - tester układów EPM240T postrach sprzedawców z alieexpress

    * ściągnięcie pinów 1, 37, 90 do masy
    * ściągnięcie pinów 39, 88 do VCCINT
    To zostało zrealizowane poprzez klucze tranzystorowe (nasycone):
    * pojawienie się na pinie VCCINT_39_80_nEN stanu niskiego powoduje ściągnięcie pinów 39 i 88 do zasilania (VCCINT)
    * pojawienie się na pinie GND_1_EN stanu wysokiego powoduje ściągnięcie pinu 1 do zasilania
    * pojawienie się na pinie GND_37_90_EN stanu wysokiego powoduje ściągnięcie pinów 37 i 90 do masy
    Ponieważ w przypadku układu EPM240 wszystkie te piny (39, 88, 1, 37, 90) są pinami IO, są one nadal połącze do mikrokontrolera tyle że przez rezystory zabezpieczające
    KrzysioTesterEPM240 - tester układów EPM240T postrach sprzedawców z alieexpress

    2.1. Podstawka ZIF
    Najważniejszą (i najdroższą) częścią urządzenia jest podstawka. Są dwa rodzaje
    Podstrawka typu „muszla” do której wkłada sie scalak, a następnie zamyka klapkę, która dociska piny (po lewej) oraz podstawka typu kompaktowego, do której wkłada się scalak, naciska całość, scalak opada pod ciężarem i jest już dociskany
    KrzysioTesterEPM240 - tester układów EPM240T postrach sprzedawców z alieexpress KrzysioTesterEPM240 - tester układów EPM240T postrach sprzedawców z alieexpress

    Nie miałem do czynienia z żadną z nich, ale postawiłem na tą drugą - wydała mi się bardziej precyzyjna, a możliwość obsługi jedną ręką była dodatkowym atutem (swoją drogą – ciekawe czemu ceny tych podstawek na ali zaczynają się od 20$, a w Polsce to już np. od 700zł?)

    Dalszym rozważaniem był wybór między gołą podstawką a taką już wlutowaną w płytkę z goldpinami po bokach (jak na zdjęciach). Wybrałem drugie rozwiązanie, bo wykonywanie w domowych warunkach płytki z taka ilością dziurek to mordęga.

    Teraz z perspektywy czasu mogę powiedzieć, że podstawka działa wyjątkowo sprawnie. Jedyny mankament jest taki, ze wsadzenie (i wyjęcie) układu odbywa się od góry, więc wymagany jest podciśnieniowy chwytak.

    Tu znów musiałem zrobić mały risercz. Chwytaki manualne wg wielu opinii, niezależnie od producenta to jeden i ten sam szmelc:
    KrzysioTesterEPM240 - tester układów EPM240T postrach sprzedawców z alieexpress

    Ja przypadkowo trafiłem na ssawkę, zasilaną bateryjką, która ma mini pompkę aktywowana przyciskiem. I muszę powiedzieć – rewelacja. Bez problemu unosi nawet ciężkie rzeczy. Jedyne, czego nie mogę zrozumieć, to dlaczego producent postanowił zasilać go jednym paluszkiem AAA (malutkim) zamiast normalnym (AA)? Nawet gdyby wiązało się to z delikatnie grubszym chwytem, to taka bateria ma przecież 3 razy większą pojemność.
    KrzysioTesterEPM240 - tester układów EPM240T postrach sprzedawców z alieexpress KrzysioTesterEPM240 - tester układów EPM240T postrach sprzedawców z alieexpress

    2.2. Programowanie układu
    Na płytce dodałem złącze 6 pin (JTAG) które umożliwia podłączenie do niej programatora USB Blaster i zaprogramowanie układu z poziomu oprogramowania Quartus. Płytka przystosowana jest tez do programowania bezpośrednio przez układ Atmega 64 aby wyeliminować konieczność korzystania z zewnątrznego programatora.
    KrzysioTesterEPM240 - tester układów EPM240T postrach sprzedawców z alieexpress

    2.3. Zabezpieczenie przeciwzwarciowe + pomiar prądów zasilania
    Jak było wspomniane wcześniej, czasami po wlutowaniu układu w płytkę pojawiało się zwarcie które świadczyło o jakimś wewnętrznym uszkodzeniu scalaka. Po włożeniu takiego układu do podstawki, najpewniej zakończyłoby się to albo pojawieniem się komunikatu "nastąpil skok napięcia na porcie USB", albo zadziałaniem zabezpieczenia w stabilizatorze 3.3V albo wypaleniem delikatnych styków w podstawce. Konieczne było więc zrobienie jakiegoś zabezpieczenia przeciwzwarciowego. Najprostrze zabezpieczenie skłąda się z rezystora szeregowego, na którym odkłada się napięcie. Przy zbyt duzym prądzie, ten spadek napięcia steruje tranzystorem, który "przytyka" tranzystor przepuszczający napięcie, obniżając jego wartość, w efekcie zmniejszając pobierany prąd:
    KrzysioTesterEPM240 - tester układów EPM240T postrach sprzedawców z alieexpress



    Idea jest prosta, jednak w powyższej postaci ma ona pewną wadę - spadek napięcia na rezystorze szeregowym musi być co najmniej ok 0.7V aby "przymknąć" tranzystor. Przy zasileniu układu napięciem 3.3V taki spadek jest zbyt duży. Pewnym obejściem byłoby zastosowanie powyższego układu po stronie wejściowej stabilizatora 3.3V (stabilizator LD1117 ma dropout ok 1V więc przy zasilaniu z +5V byłoby to na styk), jednak pomysł ten mi sie nie podobał. Innym pomysłem byłoby zmniejszenie dropoutu na rezystorze szeregowym, następnie wzmocnienie tego spadku i sterowanie nim tranzystora. Postanowiłem na razie pomyślęć nad czymś innym, mianowicie pomiarem prądu pobieranego przez scalak.

    Układ EPM240 posiada trzy rodzaje napięć zasilających:
    * VCCINT - zasilanie rdzenia (+1.8V lub +3.3V)
    * VCCIO1 - zasilenie pinów IO: 2, 3, ..., 51 oraz pinów JTAGa (max +3.3V)
    * VCCIO2 - zasilenie pinów IO: 52, 53, ..., 100, 1 (max +3.3V)
    KrzysioTesterEPM240 - tester układów EPM240T postrach sprzedawców z alieexpress

    W najprostrzej konfiguracji wystarczy zewrzeć wszystie trzy napięcia VCCINT = VCCIO1 = VCCIO2 = +3.3V. Jednak w przypadku testu warto byłoby zmierzyć pobierany prąd na każdym z trzech rodzajów zasilań. Wykorzystałem tutaj rezystor szeregowy 1R oraz wzmacniacz operacyjny w konfiguracji nieodwracającej, którzy wzmacnia ~20 razy różnicę na rezystorze szregowym i podaje na wejście ADC mikrokontrolera (trzy takie same bloki dla każdego z napieć VCCINT, VCCIO1, VCCIO2).
    Warto tylko wspomnieć, że zastosowany wzmacniacz operacyjny LM324 NIE JEST rail to rail, jednak poniważ jest zasilany z napięcia +5V, a obie końcówki rezystora szeregowego maksimum na potencjale +3.3V, to spełnia się on w tej roli doskonale
    KrzysioTesterEPM240 - tester układów EPM240T postrach sprzedawców z alieexpress

    Ogólny schemat opisanego rozwiązania przedstawiłem poniżej:
    KrzysioTesterEPM240 - tester układów EPM240T postrach sprzedawców z alieexpress

    Wracając jednak do tematu zabezpieczenia nadprądowego, teraz coś mi w głowie zaświtało. Można by wykorzystać wzmocniony spadek napięcia (np. ADC_VCCIO1) do sterowania tranzystorem ograniczającym napięcie na wejściu.

    Niestety jest pewien kłopot. Do sterowania tranzystore T1 (PNP) wymagamy przedziału [4.3V ... 5V] (włączony .. wyłączony). Przedzial zmian napięcia na ADC_VCCIO1 wraz ze wzrostem prądu to [0 ... 5V]. Kierunek zmian się zgadza, niestety przedział wartości nie.
    KrzysioTesterEPM240 - tester układów EPM240T postrach sprzedawców z alieexpress

    Trzeba więc dodać tranzystor NPN (T2) który odwróci końce kierunek napięć [5V .. 0V]. Konieczny będzie też kolejny tranzystor NPN (T3) który znowu odwróci kierunki napięć)
    KrzysioTesterEPM240 - tester układów EPM240T postrach sprzedawców z alieexpress

    Fajnie byłoby jednak, aby nadmierny pobór prądu w każdej z gałęzi (VCCIO1 / VCCIO2 / VCCINT) aktywował zadziałanie zabezpieczenia przeciwprądowego. Tutaj wystarczy dodac 3 diody, które będą pełnić funkcję podobną do bramki OR. Dodatkowo dodając czwarta diodę i sterując tym pinem (POWER_nON) z mikrokontrolera możemy programowo wyłączyć zasilanie do układu - przydatne, aby po wykonanym teście odciąć zasilanie i móc spokojnie wyjąc badany układ.
    KrzysioTesterEPM240 - tester układów EPM240T postrach sprzedawców z alieexpress

    Wartość prądu, od którego układ zacznie obniżać napięcie można zwiększyć zwiększając wzmocnienie wzmacniaczy albo zmniejszyć dodając dodając dzielnik rezystorowy na bazie tranzystora T2. Nie wiedziałem do końca jakiego prądu się spodziewać przy normalnej pracy, więc postanowiłem za limit uznać coś w okolicach między 50 a 100mA.

    Cały układ przesymulowałem najpierw w programie LTSpice i wg symulacji zabezpieczeniei zadziałało w okolicach 80mA
    KrzysioTesterEPM240 - tester układów EPM240T postrach sprzedawców z alieexpress

    Później już na wykonanym fizycznie urządzeniu zwiększałem stopniowo pobór prądu, odczytując jednocześnie wartość zwracną z przetworinka ADC i na tej podstawie mogłem stwierdzić, że zabezpieczenie pozwala na przepuszczenie maksymalnie ok 65 mA prądu (na wykresie widać małe nieliniowości na początku i końcu przedziału, spowodowane albo nieliniowością samego przetwornika w Atmedze albo też nieliniowością wzmacniacza napięcia z rezystora szeregowego)
    KrzysioTesterEPM240 - tester układów EPM240T postrach sprzedawców z alieexpress

    2.2. Test pinów
    Kluczową sprawą (oprócz stwierdzenia, czy układ nie ma zwarcia, czy jest wykrywany i czy da się zaprogramować) jest stwierdzenie, czy każdy z pinów jest sprawny. Nie znam do końca mechanizmu, który powoduje, że niektóre piny w posiadanych układach były uszkodzone (sprzedawane układy są najpewniej używane i odnowione), więc mam pewne podejrzenia:
    * albo zostały uszkodzone już w urządzeniu z którego zostały wyszabrowane,
    * albo zostały uszkodzone w momencie niefachowego wylutu - np poprzez ładunki ESD,
    * albo cała struktura została w ogóle usunięta z oryginalnego scalaka i następnie zapakowana do nowej obudowy z nowymi nóżkami i podczas lutowania złotych drucików (bond wires) coś poszło nie tak.
    Przetestsowanie działania pinów polega na sprawdzeniu, czy każdy z nich może wystawić logiczne 0/1 oraz czy każdy może odczytać z zewnątrz 0/1. Wymaga to wgrania do układu specjalnego wsadu diagnostycznego oraz komunikację z pinami. Ponieważ pinów w układzie jest aż 80, a dostęp do wszystkich z nich na raz nie jest wymagany, postawiłem na multipleksowanie buforami (odczyt wszystkich na raz nie jest potrzebny). Przy 80 pinach wykorzystałem równo 10 buforów 74LVC245. Ilość zużytych nóg to: 8 + 10 (BUF /OE) + 10 (BUF DIR) = 28. Jak sie później okazało, wszystkie piny sterujące kierunkami buforów i tak można było połączyć razem, bo nigdy wiecej niż jeden bufor nie jest aktywny.
    Bufory oprócz multipleksowania pełnią one dodatkowa funkcję - konwertują napięcia z poziomu 5V (Atmega64) do +3.3V (układ EPM240)

    Prosty program, wgrany do układu EPM240 który go testuje działa jak poniżej:
    * jeden z pinów przeznaczony jest na zegar, który steruje pracą
    * podczas cyklu T0 - na pierwszych 8 pinach wystawiane jest 0xAA
    * podczas cyklu T1 - na pierwszych 8 pinach wystawiane jest 0x55
    * podczas cyklu T2 - z pierwszych 8 pinów odczytywana jest wartość (V1)
    * podczas cyklu T3 - na pierwszych 8 pinach wystawiana jest zanegowana wcześniej odczytana wartość (~V1)
    * podczas cyklu T4 - z pierwszych 8 pinów odczytywana jest wartość (V2)
    * podczas cyklu T5 - na pierwszych 8 pinach wystawiana jest zanegowana wcześniej odczytana wartość (~V2)
    Układ EPM240 wystawia wartości jedynie podczas gdy CLK=0, gdy CLK=1 - piny są w stanie wysokiej impedancji

    potem cykle T6..T11 testują kolejne 8 pinów, T12..T17 dalsze 8 itd.

    Dzięki wystawieniu wartości AA a potem 55 można sprawdzić, czy układ potrafi na każdym z pinów wystawić logiczne zero oraz jedynkę oraz czy dwa sąsiednie piny nie są ze sobą zwarte.
    KrzysioTesterEPM240 - tester układów EPM240T postrach sprzedawców z alieexpress

    Pewnym mankamentem był pin zegarowy. Taki pin powinien być bezpośrednio połączony z atmegą, gdyż wartość na nim wystawiona powinna byc dostępna dla układu EPM240 ciągle, a dostęp rzez bufory to uniemożliwia. Początkowo probowałem to obejść, używając np pinu nr 1 (który ma też połączony klucz tranzystorowy), zwierając go do masy (logiczne 0) rozwierając i stosując wbudowane w EPM240 rezystory pociągające (logiczne 1). Niestety, takie zbyt mało strome zbocza, nawet pomimo włączenia wbudowanego przerzutnika Schmitta powodowały często, ze układ myślał że dostał dwa albo i więcej zboczy. Musiałem więc dokonać przeróbki w płytce, odcinając jedną ze scieżek od bufora i łącząc na stałe z atmegą (dodałem oczywiście rezystor w szeregu i diodę zenera +3.3V)

    Wadą jest również to, że jeśli pin, przeznaczony na zegar akurat w testowanym układzie nie działa, to nie będzie możliwości przeprowadzenia testu.

    2.3. Oprogramoanie po stronie PC
    Kolejnym krokiem było stworzenie programu, który będzie się komunikował urządzeniem. Postanowiłem na skromny interfejs, który
    * pozwala włączyć/wyłączyć układ
    * ustawić odpowiednie napięcie zasilania
    * przeprowadzić test
    * wyświetlić aktualny pobór prądu przez układ
    KrzysioTesterEPM240 - tester układów EPM240T postrach sprzedawców z alieexpress KrzysioTesterEPM240 - tester układów EPM240T postrach sprzedawców z alieexpress

    3. Niespodzianki podczas budowy
    Podczas prac nad urządzeniem nie wszystko od razu szło gładko i po myśli.
    * Pierwszym problemem była Atmega64, która po wlutowaniu nie była w ogóle wykrywana - tu jak sieo kazało winny byl sam scalak, który kupiłem kiedyś od kogoś na allegrolokalne.pl i posiadał on tak zaprogramowane fusebity, że nie dało sie go już przeprogramować szerzej opisałem to tu:
    https://www.elektroda.pl/rtvforum/topic3849821.html

    * Tuż po zlutowaniu okazało się, wyłączanie podawania napięcia do układu nie działa, jeśli wybrano napięcie +2.5V lub +3.3V. Przyczyna problemu okazała się prosta - w momencie gdy tranzystor (Q4) odcinający napięcie zasilające jest aktywny, wzmacniacz operacyjny (wtórnik) nadal próbuje tak wysterować tranzzystor T4 aby podawał on napięcie VCCINT zgodne z ustawionym. Ponieważ jednak T4 nie może tego zrobić, bo do jego kolektora nie wpływa już zaden prąd, operacyjny wystawia na jego bazie tak duże napięcie, że złącze baza-kolektor zostaje przebite i do układu nadal dopływa prąd, jednak tym razem - ze wzmacniacza:
    KrzysioTesterEPM240 - tester układów EPM240T postrach sprzedawców z alieexpress

    Rozwiązaniem było przepięcie jednej z nóg rezystora R23 od +5V do kolektora:
    KrzysioTesterEPM240 - tester układów EPM240T postrach sprzedawców z alieexpress

    To rozwiązanie działa dla zadawania napięcia +1.8V oraz +2.5V, natomiast nadal nie działa dla +3.3V (bo wtedy atmega wprowadza swoje +5V). Jednak układ EPM240 do zasilania VCCINT wymagają napięcia z przedziału +2.5V..+3.3V więc zailanie go +2.5V wystarcza

    * Czasami zdarza się, że test wskazuje, że jeden lub dwa piny są uszkodzone, mimo że układ okazuje się potem być sprawny. Przyczyną jest osad (brud) na testowanych scalakach, wystarczy czasem ponowne dociśnięcie podstawki lub wyjęcie układu i przejechanie nożykiem po wszystkich pinach.

    * Oscylacje przy zwarciu - podczas zwarcia (czy to w wyniku uszkodzonego układu czy np. celowo, gdy łączymy któreś z napięć zasilających z masą drutem), sygnał ze wzmacniacza który trafia do przetwornika w Atmedze nie jest już napięciem stałym, ale widoczne są na nim wyraźne oscylacje o częstotliwości ok 100 kHz. Nie wiem dokładnie jaka jest tego przyczyna, czy któryś z tranzystorów próbuje generować, czy może pętla sprzężenia zwrotnego w ograniczaczu prądu jest zbyt długa. Ja to obszedłem programowo, uśredniając odczyt z ADC.
    KrzysioTesterEPM240 - tester układów EPM240T postrach sprzedawców z alieexpress

    4. Plany na przyszłość
    * dodanie możliwości programowania układu bezpośrednio z poziomu mojego programu (każdorazowe podłączanie programatora USB Blaster oraz uruchamianie oprogramowania Quartus jest wyjątkowo upierdliwe). Możliwość automatycznego wykrywania rodzaju układu oraz wybierania odpowiednioego do niego wsadu (do testu każdego z układów EPM240T100 / EPM240ZT100 / 5M240ZT100 / EPM570T100 potrzeba osobnego skompliowanego pliku VHDL)
    * znalezienie jakiegoś sposobu, na zmianę pinu do zbocza zegarowego (te z układów na liście, w których rzekomo wszystkie 79 pinów jest uszkodzonych posiada tak naprawdę uszkodzony pin zegarowy i dlatego wynik testu jest niewiarygodny)
    * na byłem kilkadziesiąt sztuk bardziej pojemnych układów Xilinx XC3S100E (obudowa TQF144) co do których także mam wątpliwości, czy wszystkie są sprawne. Mam już tez podstawkę ZIF do tych scalaków, pozostaje więc tylko stworzyć dedykowaną wersję testera.
    KrzysioTesterEPM240 - tester układów EPM240T postrach sprzedawców z alieexpress

    5. Podsumowanie
    Opisywany tester umożliwił sprawdzenie wszystkich posiadanych przeze mnie układów. Dzięki niemu mogłem stworzyć listę wadliwych i wysłać ją do sprzedawcy żądając zwrotu środków:
    KrzysioTesterEPM240 - tester układów EPM240T postrach sprzedawców z alieexpress

    * Kilka z układów miało usterkę w postaci niedziałającego 1/2/3 pinów - te udało się wykorzystać do mojego projektu po prostu pomijając wadliwe piny (chociaż bywały takie, w których nie działało i np. 17).
    * Sporo układów miało wewnętrzne zwarcie (głównie na linii VCCINT2).
    * Także sporo układów nie było wykrywanych przez programator (pomiar multimetrem na teście diod wskazywał brak połączenia jednego lub kilku pinów odpowiedzialnych za JTAG - upalenie wewnątrz scalaka)

    Jako ciekawostkę powiem, że dwa razy z własnej winy uszkodziłem układ EPM240. Opisywane scalaki służą mi m.in. do budowy KrzysioCarta - programowalnego kartridża do konsoli NES (https://www.elektroda.pl/rtvforum/topic3326538.html). Na zdjęciu niżej w specjalnej wersji dla konsoli NES. Na płytce są dwa złącza 6 pin - jedno JTAG do programowania układu EPM, a drugie ISP do programowania mikrokontrolera attiny13. Przypadkowo dwa razy w życiu podłączyłem programator USB blaster do gniazda JTAG, raz na gdzieś 5 sekund, drugim razem nawet nie wsadziłem wtyczki do środka tylko ledwo przyłożyłem i od razu odrzuciłem. Niestety w obu przypadkach układ EPM powodował po tej operacji zwarcie do masy (prawdopodobnie +5V na linii od programatora USB podłączone do któregoś z pinów JTAGa skutecznie go zabiło)
    KrzysioTesterEPM240 - tester układów EPM240T postrach sprzedawców z alieexpress

    KrzysioTesterEPM240 - tester układów EPM240T postrach sprzedawców z alieexpress KrzysioTesterEPM240 - tester układów EPM240T postrach sprzedawców z alieexpress KrzysioTesterEPM240 - tester układów EPM240T postrach sprzedawców z alieexpress KrzysioTesterEPM240 - tester układów EPM240T postrach sprzedawców z alieexpress KrzysioTesterEPM240 - tester układów EPM240T postrach sprzedawców z alieexpress KrzysioTesterEPM240 - tester układów EPM240T postrach sprzedawców z alieexpress


    Cool? Ranking DIY
    Can you write similar article? Send message to me and you will get SD card 64GB.
    About Author
    phanick
    Level 28  
    Offline 
    phanick wrote 2425 posts with rating 2493, helped 54 times. Live in city Warszawa. Been with us since 2007 year.
  • #3
    fotomh-s
    Level 23  
    Co ci Chińczycy robią z tymi układami że tyle wadliwych się trafia. Rozumiem jakiś padnięty pin, ale zwarcie do masy?!
    Jak myślisz, co jest tego powodem? Czy te układy to te niesławne Chińskie kopie/podróbki na kradzionych kliszach?
    Rozumiem że kupujesz większe ilości tych CPLD. Czy produkujesz te kardridże w jakichś większych ilościach że trzeba było budować całą tą aparature?
  • #5
    Thunderacer
    Level 17  
    fotomh-s wrote:
    Jak myślisz, co jest tego powodem? Czy te układy to te niesławne Chińskie kopie/podróbki na kradzionych kliszach?



    Była już dyskusja na Elektrodzie o rzekomo podrabianych tranzystorach. Może w tym przypadku też sprawdzi się teoria, że sprzedawane układy są odpadami nie przechodzący testów końcowych, które oficjalnie miały zostać zutylizowane?
    Niestety, kupno poza oficjalną siecią sprzedaży wiąże się z dużym ryzykiem.
  • #6
    Galareta
    Level 22  
    Thunderacer wrote:
    Niestety, kupno poza oficjalną siecią sprzedaży wiąże się z dużym ryzykiem.


    W oficjalnej również sie cuda dzieją. Tranzystory najczęściej pakują inne w obudowy. Również układy mocy zdarzają się podobne, z innym opisem oraz obudową. Stm32 produkują sami, pod mikroskopem na krzemie są różne chińskie znaczki. Dziala to w większości podobnie.
  • #7
    Thunderacer
    Level 17  
    Galareta wrote:
    W oficjalnej również sie cuda dzieją.


    Podobnie jak w dyskusji o tranzystorach, tutaj powtórzę: nie spotkałem się i nikt z moich znajomych nie spotkał się z "podrobionymi" półprzewodnikami kupionymi u oficjalnych sprzedawców (duże hurtownie). Mówię o zakupach dla R&D i produkcji seryjnej.
  • #8
    phanick
    Level 28  
    Taka czarna seria, że uszkodzony był co trzeci układ trafiła mi się chyba tylko raz. Ostatnio kupowałem znów od tego samego sprzedawcy (z zewnątrz scalaki identyczne jak poprzednio) i tym razem w pierwszym zamówieniu tylko jedna na 68 sztuk była wadliwa, w drugim tylko jedna na 81. Jednak zakładanie sporów to średni pomysł, bo potem sprzedawca nie chcę sprzedawać drugi raz.

    Zwarcie zasilania do masy wcale nie jest takie trudne do osiągnięcia. Wystarczy że na którymś z pinów diody zabezpieczające przed podaniem napięcia poza progi GND..VCC uszkodzą się na zwarcie i wtedy z warcie GND z VCC gotowe.
    KrzysioTesterEPM240 - tester układów EPM240T postrach sprzedawców z alieexpress

    Układy na 100% sa odnawiane, bo raz trafiło mi się, że miał on grawerkę laserowa odwróconą o 90 stopni (pin1 był tam, gdzie pin 26), a raz była ona przesunięta sporo na prawo tak, że mniej więcej jej połowa wychodziła już poza układ.
    Nie możliwe też jest, że po zwykłym wylucie używek w większości przypadków nóżki scalaków są lśniące, nie widać na nich ani grama osadu czy nadmiarowej cyny. Tutaj musi zachodzić jakaś większa magia - albo oryginalne piny są ucinane i w jakiś sposób dorabiane sa nowe piny, albo cała struktura zostaje przeniesiona do nowej obudowy, a niedziałające piny to efekt złego połączenia nowego pinu ze strukturą (w jednym ze scalaków kilka leżących obok siebie pinów nie działało, co potwierdzałoby tą tezę)

    Często tez miałem wątpliwość, jeśli układ był wykrywany jako zwarcie, czy tak naprawdę mam do czynienia z faktycznie tym układem. Opisywane EPM240 ma wszystkie grupy pinów GND, VCCIO1, VCCIO2, VCCINT zwarte ze sobą. Wystarczy np sprawdzić multimetrem, czy kilka pinów GND jest faktycznie zwartych aby się przekonać, czy faktycznie w środku siedzi taki układ, jaki jest na etykiecie.
  • #9
    __Grzegorz__
    Level 29  
    A sprawdzał kolega układy zwarte, w innej orientacji w podstawce(+90, +180, +270)?
  • #10
    phanick
    Level 28  
    Sprawdzałem ale niestety sytuacja z odwróconym nadrugiem zdarzyła sie tylko raz (było to zresztą łatwe do odgadnięcia, bo wytłoczona kropka pinu nr 1 nie zgadzała się z lewym gornym rogiem napisu)

    Najprostszym sposobem detekcji czy faktycznie mamy do czynienia z układem EPM240 jest sprawdzenie, czy piny 10 i 11 (obie masy) są zwarte wewnątrz układu - jeśli nie, nie to mamy ciekawa zagadkę.
    Raz jeden zdarzyło mi się, że sprzedawca wsadził do paczki jeden układ EPM3128 (jest to przedstawiciel rodziny MAX3000)
    Ten scalak ma zupełnie inny pinout. Z ciekawości sprawdziłem miernikiem 3 scalaki z nadrukiem EPM240 (nie wykrywane) które mam i które nie mają zwarcia między pinami 10 i 11 no i mają zwarcie między 11 i 59 - to potwierdzałoby, że mogą to być właśnie EPM3128 - to zupełnie inna rodzina. Musiałbym zrobić do nich oddzielny tester do nich.
    KrzysioTesterEPM240 - tester układów EPM240T postrach sprzedawców z alieexpress

    Wczoraj natomiast dokonałem kolejnego dziwnego odkrycia - wśród kilku scalaków, które także nie były wykrywane (ale miały zwarcie między pinem 10 i 11) postanowiłem się trochę pobawić. Wcisnąłem i trzymałem podstawkę tak, że wszystkie styki się rozłączyły, wcisnąłem w programie Quartus przycisk PROGRAM i puściłem podstawkę tak, żeby nastapiło połaczenie. Program zaprogramował układ moim wsadem, test przeszedł w 100% pomyślnie i od teraz ukłąd daje się programować już normalnie. Tak jakby oryginalny wsad, który był wgrany w ten układ coś blokowal. W ten sposób odzyskałem 10 scalaków z tych, które już były "bez nadziei"

    Także obecnie lista scalaków które sa w pudle "uszkodzone" powoli się wyjasnia :)
    KrzysioTesterEPM240 - tester układów EPM240T postrach sprzedawców z alieexpress
  • #11
    ArturAVS
    Moderator of HydePark/Cars
    @phanick teraz to zasiałeś "phanikę" wśród sprzedawców :D. Gratuluję pomysłu i wykonania.
  • #12
    coberr
    Level 19  
    avatar wrote:
    Kawał dobrej roboty - jak byś zrobił z tego projekt na sprzedaż to pewnie kilka firm i osób by to w PL kupiło - bo komponenty dzisiaj to tragedia


    zwłaszcza u tych cholernych chinczyków... osobiscie cale to dziadoskie aliexpress bym zablokowal w Polsce i spokój... (powiedzmy)
    co jest oczywiscie nierealne...
  • #13
    Grzegorz_madera
    Level 35  
    phanick wrote:
    Ja przypadkowo trafiłem na ssawkę, zasilaną bateryjką, która ma mini pompkę aktywowana przyciskiem. I muszę powiedzieć – rewelacja.
    Możesz podać link?
  • #14
    phanick
    Level 28  
    Grzegorz_madera wrote:
    phanick wrote:
    Ja przypadkowo trafiłem na ssawkę, zasilaną bateryjką, która ma mini pompkę aktywowana przyciskiem. I muszę powiedzieć – rewelacja.
    Możesz podać link?

    Allegro => Chwytak XTREME podciśnieniowy

    Aczkolwiek na markę bym akurat nie zwracał uwagi, po prostu importer nakleił swoje logo (dziwne bo 2 miesiące temu kupowałem u teggo sprzedawcy po 30zł a teraz jest po 11 - deflacja?)
  • #15
    Grzegorz_madera
    Level 35  
    Zamówiłem, zobaczymy jak się sprawdzi.
  • #16
    ArturAVS
    Moderator of HydePark/Cars
    @phanick też kupiłem :D Całkiem przypadkowo zrobiłeś reklamę :D.
  • #17
    CosteC
    Level 34  
    Scalaki są najprawdopodobniej odrzutami z produkcji - stąd sporo 'działa' - nie przechodzą rygorystycznych testów np szybkości albo tolerancji poboru prądu, upływności wejść i tak dalej.
    Ponieważ są to odrzuty, muszą być oznaczane laserem osobno i zapewne nie na "oficjalnej linii" - stąd błędy i "różnorodność". Niektóre 'serie' natomiast są bardzo słabe, bo np krzem miał defekt.
    Ponieważ nie są przechowywane jak trzeba (bo to odpad) są też spatynowane i słabo stykają, mają pogięte nóżki i inne problemy.
  • #18
    398216 Usunięty
    Level 43  
    CosteC wrote:
    Scalaki są najprawdopodobniej odrzutami z produkcji
    Ja tak samo uważam. Chińczyk głupi jnie jest - jak coś da się opchnąć to ro9bi to bez mrugnięcia okiem.
    A dlaczego? Bo tak jak Autor tematu - nie opłaca się wchodzić w spór i reklamować.
    Dokładnie tak samo dzieje się w wypadku laserów do CD czy DVD - o ile tylko coś świeci - idzie do sprzedaży (a czasem nawet i nie świeci...) - jak trafi się niekumaty kupiec uzna, że albo sam coś spartolił, albo padło coś innego (i przeważnie próbuję kręcić czym popadnie, co może powodować że potem nawet w 100% sprawny działać nie będzie). Osobiście miałem dwa takie przypadki gdy elementy elektroniczne były wadliwe już na "dzień dobry" w pierwszym to cała partia kondensatorów elektrolitycznych (pojemności zaniżone o dwa rzędy wielkości - chyba tylko pojemność nóżek udawało się zmierzyć ;), a drugi to układy scalone (LM3886) też cała partia była wadliwa - każdy z okładów miał dokładnie taką samą wadę - zwarcie pomiędzy wyjściem, a minusem zasilania.
    W pierwszym wypadku kondensatory zakupione w sprawdzonym sklepie, w drugim z Aliexpress.
    Tak więc - nihil novi...
  • #19
    phanick
    Level 28  
    CosteC wrote:
    Scalaki są najprawdopodobniej odrzutami z produkcji

    Z jednej strony nie moge się zgodzić z tą teorią. Kupowałem sporo róznych scalaków z aliexpress, zawsze w większych ilościach (pamięci Flash, pamięci RAM, mikrokontrolery, układy FPGA), zawsze je lutowałem i w 90-99%i przypadków nie sprawiały problemów w urżądzeniach które wykonywałem z ich użyciem. A były to rzeczy kupowane zwykle po najniższych cenach (ten sam układ wg ceny katalogowej producenta kosztuje 10 razy tyle albo już nawet nie jest produkowany).

    Oczywiście czasami raz na kilkadziesiąt zdarzal się ukłąd który np nie dzialał, miał zwarcie, ale idąc Twoją teorią to co drugi powinien nie działać. No chyba że jak w fabryce wykryją że jakiś scalak nie spelnia testu, to cała seria idzie do kosza, a w nich sa i działające.

    Moim zdaniem są to układy które zostaly wyjęte z urżądzenim poddanych recyklingowi, a jako że do Chin trafia pewnie sporo róznych elektrosmieci z każdej możliwej kategorii to i potem mogą sprezdawać takie scalaki, które już od wielu wielu lat nie sa produkowane, albo nigy nie były produkowane na sprzedaz detaliczną (chociazby np. układy dźwiękowe AY od komputerów tymu Commodore czy procesory od Pegasusów)

    Np pamięci flash które kupowałem, często były zaprogramowane i analizując sczytany wsad doszedłem do wniosku, ze pochodziły z jakeigoś routera.

    Jednak moja teoria ma tez pewne dziury. Np często kupowałem procesory do Pegsusa i w 50% przypadków od Chińczków przychodziły układy wyprodukowane przed rokiem 90 (mają pewna subtelną rożnicę w działaniu od tych po tym roku). A różnych konsol które przeszły przez moje ręce (lub których zdjęcia wnętrza widziałem) już nie zlicze i NIGDY takiego scalaka w nich fabrycznie zainstalowanego nie widziałem, co może jednak sugerowac że to jakaś prototypowa seria z fabryki która nigdy nie wyszła na sprzedaż.

    W przypadku tych pegasusowych scalaków uszodzone zdarzały się dużo częściej i czasami uszkodzenia były naprawdę bardzo dziwne, których także nie widziałem nigdy w żadnej uszkodzonej konsoli to tez może świadczyć o wadliwej serii w fabryce.
  • #20
    CosteC
    Level 34  
    phanick wrote:
    Oczywiście czasami raz na kilkadziesiąt zdarzal się ukłąd który np nie dzialał, miał zwarcie, ale idąc Twoją teorią to co drugi powinien nie działać. No chyba że jak w fabryce wykryją że jakiś scalak nie spelnia testu, to cała seria idzie do kosza, a w nich sa i działające.


    Nie znam historii tych układów. Natomiast testy układów są różne. Jeśli układ spełnia tylko 95% wymogu szybkości to dla ciebie może być działający. Jeśli pobiera 110% prądu z datasheeta - to też niekoniecznie zauważysz.
    FLASH - może 1 komórka więcej niż dozwolone jest uszkodzona, ale układ dalej działa - i może wychodzi to podczas programowania.
    Natomiast koszt wylutowania układu, oczyszczenia i sprzedania - to są ceny opłacalne dla rzeczy drogich. Układów za 1 euro się tak nie czyści.
  • #21
    bolek
    Level 35  
    Aliexpress to porażka, jeśli już to jakieś sprawdzone firmy. Ja sobie jednak dałem siana i wybrałem oficjalne źródła z dłuższym terminem. Klient na pewne coś zjeżył się swego czasu i postanowił na własną rękę kupić 1000szt PIC32 TQFP100. Twierdził że może oddać, więc mnie to rybka. Ogólnie opis się zgadzał choć kanty były bardziej zaokrąglone niż w oryginałach (pewnie kiepska znakowarka laserowa). Zauważyłem też że nogi na jednym rogu były przygięte. Zmontowało się na próbę kilka sztuk, programowanie się udało- ale tu pierwsza ciekawostka. Wg oznaczenia niby 2020r, a krzem twierdził że ma z 10 lat. Dalej było już tylko z górki bo żadna płytka nie przeszła testu. Już nawet nie wnikałem czy był to efekt utlenionych padów bo nawet zielone się trafiały czy były padnięte. Ponoć wróciły do domu.

    W polsce udało mi się też kupić PHY do ethernetu gdzie 8% płytek miało je do wymiany. Tu z kolei były też np sztuki z uszkodzeniami mechanicznymi.