gniazdo ZIF 14 pinów

Złożone programowalne układy logiczne (CPLD) to niezbędny element sprzętu w Twoim arsenale. Jak sama nazwa wskazuje, możesz zaprogramować te układy tak, aby zapewniały potrzebne funkcje logiczne. Może to być wymiana przestarzałych układów lub po prostu sposób na naukę i wypróbowanie różnych technologii. Czy istnieje lepszy sposób na naukę niż używanie CPLD i wypróbowanie go?
Stworzyłem moduł CPLD, aby móc go podłączać do wielu rzeczy, w tym do płytek stykowych bez lutowania, ale coś mi się pomieszało. Wygląda na to, że dostępna przestrzeń na płytki stykowej wynosi 2,8 cm. Zrobiłem podstawę o szerokości 2,5 cm, nie zostawiając miejsca na rząd przewodów po obu stronach.
Ale pozwólcie, że cofnę się i pokażę więcej o tym, co robię. Chcę stworzyć programowalny układ logiczny, który można zbudować w zestawie, który można łatwo przylutować w domu, który można zaprogramować w obwodzie i który może pracować przy napięciu 3,3 lub 5 woltów.
Aby stworzyć zestaw łatwy do lutowania, użyłem starego układu CPLD, dostępnego również w wersjach 3,3 V i 5 V, który zachowuje swoje parametry niezależnie od zasilania. Sam układ logiczny to układ scalony CPLD z serii Altera Max, dostępny w dwóch wersjach, odpowiedni do płytek drukowanych z 32 lub 64 makrokomórkami. Makrokomórki to podstawowe logiczne bloki konstrukcyjne, które są programowane za pomocą logicznych „terminów”, a następnie łączone z innymi makrokomórkami za pomocą programowalnych połączeń.
Przyglądając się schematowi, można zauważyć, że nie ma na nim zbyt wiele treści: zasadniczo CPLD, układ programowania w układzie i oscylator sterujący logiką CPLD.
Ta część nosi nazwy EPM7032 i EPM7064 i wykorzystuje 44-pinowy plastikowy układ scalony (PLCC), czasami nazywany wyprowadzeniem J ze względu na kształt litery J. Obudowę tę można umieścić w gnieździe przelotowym lub przylutować bezpośrednio do płytki PCB.
Zawiera wbudowany oscylator, dzięki czemu układ CPLD może wykonywać operacje stanowo i samodzielnie tworzyć szybkie liczniki bez potrzeby korzystania z zewnętrznego zegara. Jeśli dostępny jest zegar zewnętrzny, szybki zegar w module może być użyty do wygenerowania zdarzenia zegarowego na każdym narastającym lub opadającym zboczu zegara zewnętrznego, zachowując jednocześnie zgodność z wytycznymi CPLD/FPGA, co oznacza, że ​​należy korzystać z wewnętrznej globalnej sieci zegarowej zamiast „asynchronicznego” sterowania wejściem zegara. Znamionowe napięcie zasilania tego oscylatora wynosi od 1,8 do 5,5 V.
Jeśli obejrzysz film, zobaczysz, że omawiam moje osobiste preferencje odnośnie sposobu obchodzenia się z pinem „INH” na oscylatorze. Mówiąc prościej, po sprawdzeniu, czy specyfikacja techniczna jest zgodna z przepisami, mam tendencję do pozostawiania go w stanie nieuszkodzonym.
W przypadku takich funkcji, powody, które przyszły mi do głowy, to moja niechęć do podłączania pinów wejściowych bezpośrednio do szyn zasilających (o ile to możliwe). Wolę używać rezystorów szeregowych, aby ograniczyć prąd w stanach przejściowych, nawet jeśli nie jest to konieczne.
Przez lata spotykałem się z problemami w produkcji (duże partie), a czasami, na przykład podczas cyklicznego wyłączania zasilania, piny bezpośrednio podłączone do szyny zasilania miały wyższe napięcie niż sam układ, co jest szkodliwe. Na koniec, podłącz pin do szyny zasilania za pomocą rezystora (zasilania lub masy), a użytkownicy mogą zmienić zdanie i użyć tego pinu później. Jest to szczególnie istotne z mojego doświadczenia z nieużywanymi drzwiami – prawdopodobnie wiesz, że nigdy nie należy pozostawiać ich niepodłączonych. Używając rezystora podciągającego, można podłączyć sygnał i korzystać z bramki bez przecinania miedzianych ścieżek.
Złącze 10-pinowe i kilka rezystorów tworzą obwód programujący. Gdyby wszystkie rezystory były rezystorami podciągającymi, użyłbym sieci rezystorów, ale niestety jeden z nich jest uziemiony.
Do zaprogramowania takiego niezależnego układu CPLD potrzebny jest dedykowany programator. Łatwo mi to powiedzieć, ponieważ zazwyczaj mam ich kilka pod ręką, ale jeśli go nie masz, wejście do gry nie będzie zbyt trudne. Zatwierdzony „Altera USB Blaster” kosztuje 50 dolarów i można go kupić na Digikey i w innych miejscach. Mam kilka klonów z eBay, z których jeden obsługuje jednocześnie Alterę, Xilinx i Lattice. W internecie jest projekt i kod, który można wykorzystać do stworzenia własnego klona. Wymienię go na mojej liście filmów dotyczących tworzenia klonów programistycznych. Pokażę również projekt shielda, w którym można zaprogramować płytę główną, Arduino, PIC itp.
Oprogramowanie potrzebne do kompilacji i programowania CPLD jest dostępne bezpłatnie w Altera, ale ta stara część wymaga starej wersji 9.1. Dobra wiadomość jest taka, że ​​to była moja ulubiona stara wersja. Posiadała intuicyjny analizator czasu, ale został on usunięty w późniejszej wersji.
Płytka PCB to prosta, dwustronna konstrukcja, o ile płytka drukowana do niej pasuje, zazwyczaj używam miedzi do uziemienia, a czasami do zasilania. Czasami zalewanie jest tak uszkodzone, że może powodować problemy lub niedbałe rezultaty, więc ponowne zalewanie miedzią jest tylko narzędziem, ale trzeba to kontrolować.
Obecnie wiele (jeśli nie większość) pakietów oprogramowania CAD zawiera trójwymiarowe widoki produktu finalnego, chociaż dokładność obrazów jest ograniczona jedynie do dokładności modeli trójwymiarowych użytych do przedstawienia części. Tutaj widać, gdzie wybrałem model trójwymiarowy dla 44-pinowego gniazda, złącza programującego i oscylatora. Oto kilka pakietów 3D, z których lubię korzystać:
Wiele firm ma również modele 3D swoich komponentów. Molex to tylko jeden z przykładów firmy, która dobrze sobie radzi w tym obszarze.
Popełniony przeze mnie błąd nie wpływa na funkcjonalność, estetykę, ani nie jest głównym problemem, tzn. nie nadaje się do pojedynczej płytki stykowej bez lutowania.
Kiedy pomyślałem, że mógłbym udostępnić projekt komukolwiek, natychmiast poczułem się niezadowolony z symboli schematycznych CPLD i wyprowadzeń 40-pinowego złącza, które odzwierciedlają jego ogólny rozmiar. Sięgnąłem po symbol 40-pinowego złącza dwurzędowego i dopasowałem go do rozmiaru 1 cala, ale numery pinów to nie 1, 2, 3, 4… ale 1 z boku, jak w obudowie DIP, 3, 5, 7… tak jak w złączach kabli taśmowych. W związku z tym jest to nieintuicyjny rozmiar, jeśli chodzi o określenie sposobu podłączenia do modułu i rozwiązywania problemów.
Podobnie, przypisania pinów CPLD są nieco mylące, dlatego do tworzenia symboli użyłem zestawu narzędzi opartych na języku Boundary Scan Description Language (BSDL). Większość głównych dostawców udostępnia pliki BSDL dla swoich popularnych komponentów, które umożliwiają (pół)automatyczne tworzenie symboli i pakietów. Jak każda automatyzacja, należy traktować ją jako narzędzie i może wymagać dalszego dopracowania, aby uzyskać najlepsze rezultaty. W tym przypadku pozwoliłem programowi na wyświetlanie pinów w kolejności alfabetycznej, która jest niemal losowa podczas śledzenia pinów na płytce. Mogę tylko powiedzieć, że byłem bardzo zdenerwowany tego dnia.
Za te skróty płaci się czasem w drodze. Kiedy będę modyfikował ten moduł, określę i nadam mu rozmieszczenie pinów odpowiadające danemu elementowi, dzięki czemu ustalenie, gdzie umieścić sondę oscyloskopu, będzie tak proste, jak spojrzenie na symbol schematu.
W przypadku płytek drukowanych istnieją inne ulepszenia, głównie estetyczne lub praktyczne. Wskaźnik pinu 1 musi być bardziej powszechny w wielu obudowach, a ja zawsze preferuję prosty punkt uziemienia do podłączenia masy oscyloskopu lub przewodu VOM. Mogę to poprawić, dodając dwupinowe złącze, aby zasilanie i masa mogły być podawane bezpośrednio do płytki, a nie zaciskane na dolnych pinach.
Zanim zacznę modyfikować płytkę drukowaną, chcę się upewnić, że działa ona poprawnie pod względem fizycznym i estetycznym. Po włączeniu zasilania i sprawdzeniu, czy oscylator działa prawidłowo, podłączyłem programator. Chociaż wersja 3,3 V jest nowsza niż oprogramowanie programujące, wykryła ona układ CPLD i wyświetliła go jako „nieznane” urządzenie.
Następnie stworzyłem licznik w Quartusie i przypisałem numery pinów. Szybkie kompilowanie i pobieranie danych oraz funkcja licznika widoczna na oscyloskopie potwierdzają wykonalność projektu.
Szybki układ testowy w Verilogu jest bardzo prosty. Kod znajduje się poniżej. Możesz pobrać plik ZIP zawierający schemat i układ testowy Veriloga jako projekt Quartus II (wymagana wersja 9.1).
Jak wspomniałem, dokonam drugiej rewizji płytki drukowanej, aby zwrócić większą uwagę na szczegóły potrzebne podczas udostępniania projektu lub rozwiązywania problemów. Ponieważ muszę ustawić szerokość dolnego złącza na 0,9 cala lub mniej, mogę nadal ustawiać ją na 0,6 cala, co jest standardową „szeroką” obudową DIP. Oznacza to, że dolne piny wystawają poza obrys gniazda CPLD. Nie zrobiłbym tego w warunkach produkcyjnych, ponieważ w tamtym czasie płytka była składana ręcznie, ale jednym z celów było stworzenie zestawu do ręcznego lutowania. Kompromisem w kwestii ręcznego lutowania jest to, że oscylator musi znajdować się w obudowie do montażu powierzchniowego SMD, wersja przewlekana jest bardzo duża i zazwyczaj nie obsługuje zakresu napięć, jakiego potrzebuję.
Czy można użyć tych modułów do zbudowania kompletnego, prostego komputera? Chyba muszę dodać pamięć.
Lol... tak, to zależy od rodzaju komputera. Jednak „prawdziwe” mikrokontrolery/mikrokomputery są podatne na „połączenie pinów” modułu, co oznacza, że ​​nie da się uzyskać z niego wystarczająco dużo terminologii, aby zrobić coś użytecznego.
Stworzyłem kompletny kontroler czasu i trybu kamery NTSC o rozmiarze 64, dzięki czemu nie jest potrzebny żaden procesor.
Strukturalne języki Verilog i HDL użyte w książce Nand to Tetris są mniej więcej takie same.
Dlaczego części są przelotowe? Spawanie metodą 0805 jest proste! Teraz nadszedł czas, aby każdy majsterkowicz nauczył się tej umiejętności.
Jeżeli zrobię tak, aby górne gniazdo nachodziło na piny lutowane od dołu, to mogę użyć „6 centrów” (symulując układ 40-pinowy) lub przekątnej itd. Będzie to wymagało ręcznego lutowania elementów do lutowania dolnych wyprowadzeń górnego gniazda za nóżkami.
Początkującym trudno jest jednak lutować od dołu. Kiedy lutuję złącza do płytki PCB na płytce stykowej (te tanie płytki adapterów SMD, które można kupić na eBayu, nadają się do prototypowania), wkładam złącza do płytki stykowej, a następnie umieszczam na niej płytkę PCB i mogę łatwo lutować. To rozwiązanie bardzo dobrze nadaje się do płytek stykowych. Jeśli trzeba lutować od dołu, jest jeszcze trudniej.
Jeśli CPLD znajduje się na środku (łatwiejsze może być podłączenie), można go zainstalować po przekątnej, bez nakładania się, są 4 rzędy lub CPLD może być po jednej stronie:
Dziękuję za radę, żeby włożyć złącze do płytki stykowej przed lutowaniem. Moja jest trochę niestabilna.
A co z pinami płytki stykowej w formacie DIP na jednym końcu i gniazdem typu „dongle” samego układu scalonego na drugim? Układ scalony można zawiesić na końcu płytki stykowej. Trasowanie będzie ścisłe.
|####### ******************** |. Tak, zdecydowałem się na „darmową” wersję Altery, tak jak Xilinx i Lattice mają „darmowe” wersje. Muszę zakończyć cykl z Alem Williamsem, aby zrozumieć, co obejmuje całe otwarte wsparcie, które musi obejmować specyficzne atrybuty danej serii urządzeń. Mimo to, wiele zrobiłem z wersją darmową.
Tak, moim zdaniem pokazujesz, że CPLD nakłada się na piny. Jeśli dobrze to zrozumiem, może to wyglądać jak wersja 2. Projektując pod (masową) produkcję, zawsze mam alergię na etap „ręcznego lutowania”, ponieważ się nakładają (właściwie piny lutownicze po stronie niebędącej komponentem). To już element lutowany ręcznie, ale to tylko mały zestaw, a nie projekt zorientowany na produkcję. Po prostu mam pewne nawyki, których trudno się pozbyć w moim wieku. :)
Myślę, że płytka drukowana w kształcie litery T z CPLD i elementami pasywnymi, z szerokim elementem w kształcie litery T, będzie bardzo przydatna, gdy zostanie umieszczona na krawędzi płytki stykowej. Coś podobnego do Adafruit RasPi T-Cobbler (http://www.adafruit.com/products/2028). To pozwoli na wykorzystanie większości miejsca na płytce stykowej.
Niestety, zaprzestanie jego produkcji poważnie ograniczy jego zastosowanie w projektach pobocznych, podobnie jak ma to miejsce w przypadku wszystkich generatorów funkcji opartych na XR2206 i ICL8038.
Ciekawy pomysł. Podoba mi się ten układ. CPLD nie jest przestarzały, to po prostu tańsza opcja, żeby kupić go przy napięciu 3,3 V.
Co do twojej „bredni”... tak naprawdę nie zrobiłeś nowego układu, żeby umieścić go na płytce stykowej. Po prostu najpierw umieść przewód na płytce stykowej, a potem scalak na przewodzie. Albo, jeśli możesz odłączyć listwy zasilania i masy od jednej z nich, użyj dwóch płytek stykowych.
O Altium i Eagle. Czy rozważałeś KiCad? Nie ma żadnych ograniczeń, które przemawiałyby za preferencją Altium nad Eagle, a domyślnie generuje błędy DRC dla wszystkich niepołączonych pinów. Jeśli naprawdę chcesz otworzyć pin, musisz go o tym poinformować. (Może tylko dla wejścia, nie dla wyjścia, i nie zostało to jeszcze sprawdzone). Kolejną zaletą jest to, że jest bardzo łatwy w nauce. Zajęło mi to tylko jedno popołudnie, a doskonały podręcznik wprowadzający pomógł mi zacząć.
Wolę (większą część) SMD nad otworem przelotowym. Są łatwiejsze w użyciu. Nie trzeba ciągle obracać płytki PCB. (Z powodu lustrzanego odbicia popełniono kilka głupich błędów...). I nie trzeba przecinać wyprowadzenia rezystora. Podczas udostępniania projektu, można wygodnie umieścić wiele obudów na płytce PCB lub na jednym elemencie. Rezystor SMD TH. (To trochę komplikuje układ).
Skorzystałem z podręcznika „KiCad Getting Started” w formacie PDF. Stara wersja, z której korzystałem, ma 29 stron, a najnowsza 52. Można ją znaleźć w innych samouczkach (w tym w linkach do filmów): http://kicad-pcb.org/help/tutorials/
Wiem, że [Chris Gemmell] z Hackaday i The Amp Hour stworzył serię na temat Kicad http://kicad-pcb.org/help/tutorials/
Kicad może być przydatny, zobaczę, co się stanie w wersji 2. Dziękuję za sugestie. Niepodłączone wejścia są dobre dla DRC (ERC), a w przypadku złączy i innych elementów, które je stabilizują, można zazwyczaj uniknąć większości komunikatów o rozłączeniu w systemie CAD.
Przeprowadź szybki test i wrzuć złącze do pustej tabeli, uruchom adnotacje i DRC. Zwróciło mi to błędy DRC dla każdego pinu. Jednak oznaczenie znanych, niepołączonych pinów jest bardzo proste.
Ustawiłem na pasywny. Muszę wyszukać (Edytuj komponent -> Edytuj w edytorze bibliotek). Edytor bibliotek otwiera się i ładuje komponent w osobnym oknie. Można sprawdzić lub zmienić dowolną część komponentu. Zmieniony komponent można zapisać lub zaktualizować w schemacie. To bardzo ułatwia zmianę komponentów. Biblioteka nie ma dla mnie większego znaczenia. Na przykład, jeśli używasz cpld, chcesz nadać zrozumiałe nazwy pinom. Co ważniejsze, istnieje dobry interfejs do projektowania własnych komponentów.
W systemie ERC programu KiCad, piny „niepołączone” to inny typ pinów niż piny „pasywne”, a wszystkie piny „niepołączone” generują błędy. Sposób działania systemu ERC można łatwo dostosować do własnych preferencji: Narzędzia -> Sprawdzanie zasad elektrycznych -> Opcje.


Czas publikacji: 18-11-2021