Spisu treści:

System rozwoju logiki programowalnej getta (CPLD): 13 kroków
System rozwoju logiki programowalnej getta (CPLD): 13 kroków

Wideo: System rozwoju logiki programowalnej getta (CPLD): 13 kroków

Wideo: System rozwoju logiki programowalnej getta (CPLD): 13 kroków
Wideo: SICK Webinar | Flexi Compact - nowa generacja programowalnego sterownika bezpieczeństwa 2024, Lipiec
Anonim
Programowalny system programowania logiki getta (CPLD)
Programowalny system programowania logiki getta (CPLD)

Od kilku miesięcy cieszę się Systemem Rozwoju Getta dla procesorów AVR. W rzeczywistości to prawie zero dolarów narzędzie okazało się tak fascynujące i użyteczne, że zacząłem się zastanawiać, czy możliwe jest rozszerzenie tej koncepcji również na rozwój FPGA/CPLD. (FPGA: Field Programmable Gate Array. CPLD: Complex Programmable Logic Device.) Więc pogrzebałem trochę w Internecie i wymyśliłem system programistyczny dla Atmel CPLD. Porównanie z urządzeniami Altera pokazuje, że ich pinout jest taki sam (w ramach ograniczeń, które opisuję poniżej), więc one również będą działać. Budując płytkę rozwojową i kabel interfejsu, które przedstawię, a następnie pobierając narzędzia, możesz tworzyć własne aplikacje CPLD. Zwróć uwagę na następujące ograniczenia i ograniczenia. Próbowałem zrównoważyć możliwości i prostotę, abyś mógł zbudować coś, co będzie Ci się podobać i uczyć tylko z urządzeń 5V. Rozszerzenie systemu o dodatkowe napięcia (3,3V, 2,5V, 1,8V obsługiwane są przez urządzenia Atmel z tej samej rodziny) nie jest trudne, ale komplikuje zarówno płytkę rozwojową, jak i kabel do programowania. Pomińmy to na razie. Zwróć uwagę, że musisz zapewnić zasilanie 5V tylko na płytce.44-pinowe PLCC. W szczególności zaprogramowałem Atmel ATF1504AS. Koncepcję Ghetto CPLD można łatwo rozszerzyć na inne urządzenia Atmela, ale to urządzenie wydawało się dobrym kompromisem między ceną, łatwością obsługi i możliwościami. Koncepcja powinna również obejmować inne urządzenia, takie jak Altera, Xilinx, Actel itp. W rzeczywistości rodzina Max7000 EPM7032 i EPM7064 będzie działać w tym samym gnieździe, o ile użyjesz 44-pinowych wersji PLCC. Do tej pory używałem tylko kabla do programowania Atmel, ale Altera Byte-Blaster jest obsługiwany przez oprogramowanie Atmel i również powinien działać poprawnie. Właściwie to trochę prostsza konstrukcja niż kabel Atmela. (Zbudowałem wersję Atmel i działa, więc nie wypróbowałem wersji Altera.) SparkFun oferuje wersję kabla Altera za 15 USD. Ponieważ będzie to działać zarówno dla Atmela, jak i Altery, polecam. Jeśli zamierzasz programować z częściami Altera, będziesz chciał również otrzymać oprogramowanie Altera. Właściwie nie próbowałem tego, ale nie ma powodu, dla którego mógłbym myśleć, że to nie zadziała. Prędkość jest ograniczona. Ponieważ system rozwoju Ghetto CPLD jest zbudowany z ręcznego okablowania i bez płaszczyzny uziemienia, nie oczekuj niezawodnego działania przy prędkościach powyżej kilku megaherców. Nawet to nie jest gwarantowane, Twój przebieg może się różnić! Oczywiście, jeśli zbudujesz prototypowy sprzęt, który ma płaszczyznę uziemienia, twój CPLD może działać dobrze przy wyższych prędkościach. Tylko nie oczekuj, że szybko zostanie zamontowany w Systemie Rozwoju Getta.

Krok 1: Idź Zamów części

Idź Zamów Części
Idź Zamów Części

Potrzebne będzie 44-pinowe gniazdo PLC, kilka nakładek odsprzęgających, kilka nieprogramowanych CPLD, gniazda do połączeń płytek stykowych, rezystor podciągający i być może płytka perf do zbudowania. Jeśli masz cokolwiek z tego w swoim pojemniku na śmieci, możesz zaoszczędzić kilka dolców. Dla Twojej wygody, oto numery części Digikey: GNIAZDO CONN PLCC 44POS NUMER PN: 1-822473-4-ND GNIAZDO IC OPEN FRAME 14POS 0,3" PN: 3M5462-ND Ilość: 2GNIAZDOWA RAMA OTWARTA 18POS.3" PN: 3M5464-ND Ilość: 2CAP ELECT 10UF 50V SU BI-POLAR PN: P1280-ND Ilość: 1, C1CAP CER.10UF 50V 20% DISC RAD PN: 478 -4275-1-ND Ilość: 4, C2-C5RES FOLIA METALOWA 5.10K OHM 1/4W 1% PN: P5.10KCACT-ND PŁYTA PC FR4 1-STRONNA PPH 4.0X4.0 PN: V2010-ND IC CPLD 64 MACROCELL 10NS 44PLCC PN: ATF1504AS-10JC44-ND Kilka części może mieć minimalne ilości, ale nadal powinny być dość tanie. Jeśli chcesz zbudować kilka świateł migających (krok 8) lub zrobić zestaw przełączników (krok 9) możesz zamówić te również. Pamiętaj, że Digikey ma minimum 25 USD, aby uniknąć opłaty manipulacyjnej, więc możesz chcieć uzyskać kilka dodatkowych nieprogramowanych CPLD lub procesor AVR lub dwa tylko dla zabawy. Polecam kupić kabel do programowania Altera od SparkFun. Oto numery części. Zdobądź również kabel i złącze. (W przeciwnym razie zamów części do kabla w firmie Digikey, jeśli budujesz własny.) Programator zgodny z FPGA Altera PN: PGM-087052x5 Pin IDC Kabel taśmowy PN: PRT-085352x5 Pin osłonięty nagłówek PN: PRT-08506

Krok 2: Pobierz i zainstaluj oprogramowanie

Pobierz i zainstaluj oprogramowanie
Pobierz i zainstaluj oprogramowanie

Obecnie używam łańcucha narzędzi Atmel Prochip Designer 5.0. To narzędzie wymaga zarejestrowania się w Atmel i wypełnienia oficjalnego formularza wniosku. Powiedziałem im, że jestem inżynierem projektantem, obecnie bezrobotnym, a moim głównym celem było poznanie ich urządzeń i VHDL (wszystko to prawda, BTW). Zatwierdzili wniosek o licencję. Jedynym haczykiem jest to, że licencja jest ważna tylko 6 miesięcy. Mam nadzieję, że do czasu jego wygaśnięcia uda mi się znaleźć łańcuch narzędzi z domeny publicznej. Altera ma również łańcuch narzędzi, który mogę sprawdzić. Wszelkie sugestie będą mile widziane. Zobacz komentarze i linki w ostatnim kroku. Atmel Prochip Designer 5.0 jest tutaj. Jeśli go zdobędziesz, upewnij się, że dostaniesz również dodatek Service Pack 1.

Krok 3: Zrób kabel do programowania

Zrób kabel do programowania
Zrób kabel do programowania

Najłatwiejszym sposobem jest zakup podobnego urządzenia Altera Byte-Blaster od Sparkfun (patrz Krok 1). Jeśli 15 USD to więcej, niż chcesz wydać, możesz użyć schematu SparkFun Altera Cable lub użyć schematu Atmel Cable i zbudować od podstaw. (Jeśli istnieje duże zainteresowanie budowaniem kabla od podstaw, mogę zaproponować kilka sugestii, ale zestaw Sparkfun wydaje mi się właściwą odpowiedzią.)

Krok 4: Utwórz kołyskę programisty

Utwórz kołyskę programisty
Utwórz kołyskę programisty
Utwórz kołyskę programisty
Utwórz kołyskę programisty
Utwórz kołyskę programisty
Utwórz kołyskę programisty

Zapraszamy do obejrzenia programatora Atmel. Jest to bardzo elastyczne i jest świetną opcją, jeśli masz pieniądze i planujesz dużo rozwoju CPLD. Wydaje mi się, że Altera oferuje coś podobnego. Ale poszedłem z tańszym podejściem - o to właśnie chodzi! Zdjęcia pokazują widok z przodu iz tyłu zbudowanej przeze mnie kołyski. Zwróć uwagę na gniazda DIP używane jako złącza płytki stykowej. Wszystkie piny po jednej stronie każdego złącza są podłączone do masy; piny po drugiej stronie łączą się z pinami sygnałowymi na CPLD. Dołączyłem również kilka połączeń zasilania; umieść je tam, gdzie pasują. Diagramy są rodzajem schematów obrazkowych; tylko dodatkowe połączenia zasilania nie są pokazane. Spójrz na zdjęcia, aby znaleźć pomysły na te.

Krok 5: Budowa kołyski - część 1

Budowanie kołyski - część 1
Budowanie kołyski - część 1
Budowanie kołyski - część 1
Budowanie kołyski - część 1

Rozpocznij budowę kołyski, wkładając gniazda w miejscach, w których chcesz. Pozostaw wolny rząd lub dwa, aby było miejsce na zaślepki odsprzęgające. Ułatwia to również podłączenie do pinów sygnałowych CPLD. Zakotwicz gniazda za pomocą odrobiny lutu lub żywicy epoksydowej w zależności od rodzaju używanej płytki perforowanej. Pozostaw trochę więcej miejsca na górze (powyżej pinu 1 gniazda CPLD) na złącze JTAG i złącze zasilania. Zobacz zdjęcia tego, który zbudowałem. Poprowadź goły drut (średnica 20) na zewnątrz gniazd dla szyny uziemiającej. Poprowadź również szynę zasilającą. (Czerwony przewód na zdjęciach.) Zapoznaj się ze zdjęciami, aby uzyskać wskazówki, ale twoja płyta prawdopodobnie będzie trochę inna - i to jest w porządku. Przylutuj zewnętrzne styki gniazd do szyny uziemiającej. Pomoże to zakotwiczyć przewód magistrali.

Krok 6: Budowa kołyski - część 2

Budowanie kołyski – część 2
Budowanie kołyski – część 2
Budowanie kołyski – część 2
Budowanie kołyski – część 2

Załóż zaślepki odsprzęgające i podłącz je do styków uziemienia i zasilania po obu stronach gniazda CPLD. Proponuję poprowadzić przewody w górę i nad zewnętrznymi rzędami szpilek, aby dotrzeć do rzędów wewnętrznych. Zapoznaj się ze schematami z numerami pinów, aby uzyskać prawidłowe piny - wyprowadzenie pinów gniazda CPLD nie jest oczywiste. Pozostaw wystarczająco dużo miejsca, aby umożliwić połączenie z dowolnymi pinami, przez które przepuszczasz przewody. Po wykonaniu połączeń nasadki podłącz zasilanie i szynę uziemiającą. Wszystkie czerwone piny na schematach to Vcc i powinny być podłączone. Czarne piny są uziemione i również powinny być podłączone. Ponownie, prowadzenie go w powietrzu jest dobrym podejściem. Spójrz na zdjęcia w poszukiwaniu pomysłów.

Krok 7: Budowanie kołyski - zakończenie

Budowanie kołyski - zakończenie
Budowanie kołyski - zakończenie
Budowanie kołyski - zakończenie
Budowanie kołyski - zakończenie
Budowanie kołyski - zakończenie
Budowanie kołyski - zakończenie

Poprowadź połączenia JTAG do właściwych pinów. Spójrz na kabel do programowania, aby upewnić się, że złącze jest prawidłowo ustawione. Nie zapomnij o podciągnięciu kołka TDO. Jest to pokazane tylko na rysunku i przechodzi między pinem TDO a Vcc. Ostatnim krokiem jest podłączenie każdego pinu I/O CPLD do pinu w gniazdach. Użyj numerów na schematach do połączeń. To zajmuje najwięcej czasu! Jeśli zastosujesz się do mojego schematu numeracji, możesz użyć diagramu Widok z góry jako przewodnika podczas podłączania obwodów. Naprawdę nie musisz podłączać ich wszystkich na początku, możesz poczekać, aż będziesz ich potrzebować do projektowanych obwodów. Sprawdź dokładnie swoją pracę. Upewnij się, że zasilanie i uziemienie nie są zwarte!

Krok 8: Utwórz migające światła (wersja TTL)

Zrób migające światła (wersja TTL)
Zrób migające światła (wersja TTL)

Oczywiście będziesz chciał zobaczyć, jak działają twoje obwody. Więc będziesz potrzebować migających świateł (rozsławionych przez The Real Elliot). Jedynym haczykiem jest to, że CPLD nie mają mocnych wyjść, które mają procesory AVR. Używaj diod LED o mocy 10mA i rezystorów serii 1KOhm. Dają one wyraźne sygnały wyjściowe bez obciążania wyjść CPLD.

Krok 9: Zrób przełączniki

Zrób przełączniki
Zrób przełączniki
Zrób przełączniki
Zrób przełączniki

Aby zapewnić bodźce swoim obwodom, będziesz potrzebować kilku przełączników. Masz tutaj kilka opcji, ale wymagania są inne niż dla procesorów AVR. Wyjścia CPLD nie mają wbudowanych podciągnięć i nie jest tak łatwo wykonać debouncing w oprogramowaniu. (Jest to możliwe, ale wymaga zasobów, które prawdopodobnie chcesz wykorzystać w swoich obwodach.) Pokazane przełączniki DIP zapewniają kilka przełączników w wygodnym opakowaniu, ale muszą być podniesione. Użyłem podciągania 1K. Przyciski można wykonać przy użyciu obwodu zalecanego przez Atmel dla swojej płyty demonstracyjnej. Schematy znajdują się na około 36 stronie. Inną opcją jest podłączenie procesora AVR w celu dostarczania bodźców – a nawet sprawdzania odpowiedzi. Ale to ćwiczenie pozostawione uczniowi.

Krok 10: Stwórz swój pierwszy obwód

Stwórz swój pierwszy obwód
Stwórz swój pierwszy obwód
Stwórz swój pierwszy obwód
Stwórz swój pierwszy obwód

Do tego czasu powinieneś otrzymać i zainstalować oprogramowanie. Postępuj zgodnie z dokładnym, szczegółowym samouczkiem, aby stworzyć swój pierwszy prosty obwód CPLD (dwuwejściowa bramka AND; nie jest dużo prostsze). Upewnij się, że wybrałeś właściwe urządzenie (44 Pin PLCC, 5V, 1504AS [szczegóły]) i wybierz numery pinów I/O, które są dostępne (użyłem 14 i 16 jako wejścia; 28 jako wyjście). Te szczegóły różnią się nieco od samouczka, ale nie powinny sprawić Ci żadnych kłopotów.

Krok 11: Zaprogramuj swój pierwszy CPLD

Zaprogramuj swój pierwszy CPLD
Zaprogramuj swój pierwszy CPLD
Zaprogramuj swój pierwszy CPLD
Zaprogramuj swój pierwszy CPLD

Podłącz kabel do programowania do portu równoległego w komputerze, podłącz go do podstawki programatora, podłącz napięcie 5 V do złącza zasilania i postępuj zgodnie z samouczkiem, aby zaprogramować swój pierwszy CPLD. Wybierz odpowiednią wersję kabla. Zauważ, że Altera Byte-Blaster jest jedną z opcji.

Krok 12: Przetestuj zaprogramowaną część

Przetestuj swoją zaprogramowaną część!
Przetestuj swoją zaprogramowaną część!
Przetestuj swoją zaprogramowaną część!
Przetestuj swoją zaprogramowaną część!

Odłącz kabel do programowania od podstawki. Podłącz przełączniki i migające światła do właściwych pinów, włącz zasilanie i wypróbuj. Ponieważ zaczynasz od prostego obwodu, testowanie nie jest dużym wyzwaniem. Jeśli to zadziała, jesteś gotowy do pracy! Schemat widoku z góry poprowadzi Cię przez podłączenie przełączników i lamp błyskowych do testów.

Krok 13: Koniec i niektóre zasoby internetowe

Koniec i niektóre zasoby internetowe
Koniec i niektóre zasoby internetowe

Celem tego samouczka nie jest nauczenie Cię, jak korzystać z VHDL. (Dopiero zaczynam się uczyć, dlatego stworzyłem programistę, pamiętasz?) Powiedziałem, że znalazłem kilka bardzo pomocnych samouczków i kilka przydatnych zasobów, które mogę ci wskazać. Opinie i inne sugestie są bardzo mile widziane. Pamiętaj, że możesz również użyć systemu programistycznego Ghetto CPLD, aby nauczyć się Veriloga i innych technik programowania CPLD, których nie obchodzi sprzęt. Zasoby VHDL w sieci: podstawy i kilka linków tutaj i tutaj. Linki do darmowe narzędzia. Poradniki, które lubię, są tu i tutaj, ale znajdziesz wiele innych. Na koniec (na razie) zechcesz sprawdzić grupę dyskusyjną. Baw się, dużo ucz i dziel się tym, co wiesz.

Zalecana: