Elektroda.pl
Elektroda.pl
X
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

Płytka uruchomieniowa pod CPLD Xilinx XC9536XL/XC9572XL

phanick 09 Sep 2012 22:54 8664 11
Altium Designer Computer Controls
  • Płytka uruchomieniowa pod CPLD Xilinx XC9536XL/XC9572XL

    Od dłuższego czasu bawię się FPGA (głównie Xilinx Spartan 3), jednak jest to dość droga zabawa, a wiele prostych rzeczy nie wymaga złożonego i drogiego FPGA - zmieszczą się i będą działać na CPLD. Najprostsza wersje to Xilinx XC9536XL, której koszt to ok. 6-8zł.

    Jednak aby uprzyjemnić sobie zabawę, trzeba posiadać płytkę uruchomieniowę z wyprowadzonymi pinami oraz programator. Płytkę można kupić za kilkadziesiąt złotych, ale po co, skoro można ją samemu wykonać za grosze? Programator natomiast na USB to koszt 200zł. Jednak posiadając starszy komputer z portem LPT również można zbudować programator na port równoległy za grosze.

    Projekt płytki i programatora oparty jest o ten pochodzący ze strony:
    http://www.holger-klabunde.de/projects/Xilinx.htm

    Owa płytka działa zarówno z układem XC9536 jak i XC9572 (wersja CPLD 44pin).
    Są to wersje układów zasilanych z 5 V. Ja dysponuję układami z końcówką XL - muszą być one zasilane napięciem do 3.3 V, jednak obsługiwane napięcia na pinach wejściowych mogą być aż do 5 V.

    Ulepszenia wprowadzone do projektów:

    Programator:
    * powiększone pady pod port DB-25 (inaczej odpadły by przy wierceniu)
    * dodane złącze do programowania 2x5pin (zabezpiecza przed odwrotnym podłączeniem kabla)

    Płytka uruchomieniowa:
    * zmienione zasilanie z 7805 na zasilacz regulowany LM3117 + mocowania pod radiator (zasilając z 9/12V większa moc jest na nim tracona)
    * dodane złącze do programowania 2x5pin (zabezpiecza przed odwrotnym podłączeniem kabla)
    * każdy pin układu wyprowadzony jest w dwóch wersjach - zwykłej (niezabezpieczonej) oraz zabezpieczonej (szeregowo rezystorem 330). Zabezpiecza to przed przypadkowym zwarciem (np. przy niepoprawnie napisanym wsadzie) i umożliwia współpracę z poziomami napięć 5 V na wejściach, ograniczając prąd diod wyrównujących (clamp diodes). Bez rezystorów wejścia szybko zostałyby spalone (co zresztą było poruszane w innym wątku na elektrodzie)
    * wyprowadzenie po kilka pinów napięcia oraz masy

    Projekt Eagle, przed wytrawieniem:
    Płytka uruchomieniowa pod CPLD Xilinx XC9536XL/XC9572XL Płytka uruchomieniowa pod CPLD Xilinx XC9536XL/XC9572XL Płytka uruchomieniowa pod CPLD Xilinx XC9536XL/XC9572XL Płytka uruchomieniowa pod CPLD Xilinx XC9536XL/XC9572XL



    Przed wlutowaniem rezystorów:
    Płytka uruchomieniowa pod CPLD Xilinx XC9536XL/XC9572XL Płytka uruchomieniowa pod CPLD Xilinx XC9536XL/XC9572XL Płytka uruchomieniowa pod CPLD Xilinx XC9536XL/XC9572XL Płytka uruchomieniowa pod CPLD Xilinx XC9536XL/XC9572XL Płytka uruchomieniowa pod CPLD Xilinx XC9536XL/XC9572XL

    Po wlutowaniu rezystorów:
    Płytka uruchomieniowa pod CPLD Xilinx XC9536XL/XC9572XL Płytka uruchomieniowa pod CPLD Xilinx XC9536XL/XC9572XL


    Jak widać, wymagało to wywiercenia wielu otworów. Jednak muszę powiedzieć, że mam wyjątkowo wprawną rękę, bo podstawka oraz wszystkie złącza weszły bez najmniejszych oporów.

    Niespodzianki:
    Na płytce programatora doszło do mini-podtrawienia jednej ścieżki, co było o tyle komiczne, że program impact bez problemu wykrywał podłączony układ, jednak na jego skasowanie czy też zaprogramowanie reagował odmownie:
    Code:

    The idcode read from the device does not match the idcode in the bsdl File. xc9572xl


    Z początku myślałem, że problemem są diody (zamiast BAT41 zastosowałem 1N441), jednak po zmianie nadal był problem. Dopiero dokładna analiza pod światło + miernik pomogła.

    Stabilizator LM3117 ma metalową obudowę podpiętą do wyjścia napięcia! Dlatego radzę padów od radiatora nie lutować do masy, bo będziemy mieć zwarcie.

    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 
    Has specialization in: energetyk najwyższych napięć
    phanick wrote 2490 posts with rating 2566, helped 57 times. Live in city Warszawa. Been with us since 2007 year.
  • Altium Designer Computer Controls
  • #2
    Svavo
    Level 23  
    Od dawna zastanawiam się nad rozpoczęciem przygody z matrycami programowalnymi - zapytam więc przy okazji: czy mógłbyś polecić coś na początek: środowisko, język, programator (USB), itp? Płyta uruchomieniowa by już była.
    Pozdro.
  • #3
    phanick
    Level 28  
    Ja pracuję na środowisku Xilinx ISE Design Suite 12.4_1 (pod Windowsy). Wszyscy narzekają, że jest wolne i jest w tym trochę prawdy.

    Aplikacja do programowania (impact) jest częścią tego środowiska.
    Jeśli chodzi o programator na USB, to nie bawiłem się takim nigdy, ale wszystkie zaczynają się od 200zł, np. Xilinx Platform Cable.

    Jeśli chcesz programować przez LPT to wcale nie ma potrzeby pisania kodu na komputerze z LPT, możesz to robić na swoim laptopie. Wystarczy, abyś miał połączenie sieciowe z drugim komputerem - owa aplikacja (impact) posiada przystępną opcję do programowania przez sieć.

    Jeśli nie chcesz się bawić CPLD, tylko FPGA - polecam moduły mmfpga (np. mmfpga02) firmy Propox - użyłem tego w swojej magisterce i naprawdę polecam, a przede wszystkim dużo pojemniejszy od CPLD. Jedyne co trzeba byłoby zmienić, to przerobić programator tak, aby to on zasilał układ przez port JTAG, zamiast samemu być zasilanym z niego.
  • Altium Designer Computer Controls
  • #4
    leonow32

    Level 30  
    CPLD i FPGA fajne jest, ale mam wrażenie, że jest to zbyt zaawansowane jak na nasze potrzeby :) niestety cena tych układów też pozostawia wiele do życzenia, w szczególności kiedy STM32F0 da się kupić za tyle samo. Jest to bardzo ciekawe rozwiązanie i można robić rzcezy, których na procesorze zrobić się nie da, ale mimo to procesory są bardziej wszechstronne. Np tu jest ciekawa rzecz - link - mega prosty procesor, który wchodzi do CPLD i wymaga tylko 32 makrocele :)

    Xilinx udostępnia darmowe ISE, które zawiera wszystko co potrzebne plus 10 razy więcej rzeczy niepotrzebnych :D

    Quote:
    każdy pin układu wyprowadzony jest w dwóch wersjach - zwykłej (niezabezpieczonej) oraz zabezpieczonej (szeregowo rezystorem 330). Zabezpiecza to przed przypadkowym zwarciem (np. przy niepoprawnie napisanym wsadzie) i umożliwia współpracę z poziomami napięć 5 V na wejściach, ograniczając prąd diod wyrównujących (clamp diodes). Bez rezystorów wejścia szybko zostałyby spalone (co zresztą było poruszane w innym wątku na elektrodzie)

    XC9500 ma wszystkie piny z tolerancją do 5V więc te rezystory są niepotrzebne.

    Quote:
    Jeśli chodzi o programator na USB, to nie bawiłem się takim nigdy, ale wszystkie zaczynają się od 200zł, np. Xilinx Platform Cable.

    Mam i polecam. Drogi jak jasna cholera, ale w przeciwieństwie do podróbek działa ze wszystkim, zawsze, szybko i bez łaski. Podróbkom śmierć!
  • #5
    phanick
    Level 28  
    leonow32 wrote:
    XC9500 ma wszystkie piny z tolerancją do 5V więc te rezystory są niepotrzebne.

    To, że jest toleracja 5 V to nie znaczy, że rezystory nie są wymagane.
    Każdy pin układu podłączony jest wewnątrz dwiema diodami - jedną do VCC (3.3 V), a drugą do GND, aby utrzymywać napięcie w tym przedziale. Jednak jeżeli nie damy rezystorów, to prąd płynący przez te diody będzie bardzo duży, co zaskutkuje ich przepaleniem, co sprawi, że napięcie przestanie być w tym przedziale i przepali układ

    Jeżeli chcemy się zintegrować z jakimś mikroprocesorem, gdzie krytyczne są czasy rzędu setek nanosekund, to nie da się tego zrobić na mikrokontrolerze - wymagany jest układ logiczny.

    Obecnie robię projekt polegający na stworzeniu sprzętowego odtwarzacza formatu dźwiękowego NSF - jest to format analogiczny jak SID pod C64, lecz ten pochodzi z NESa (Pegasusa). Układ CPLD pełni rolę dekodera adresowego (generuje sygnały !CS dla pamięci na podstawie wystawionego przez 6502 adresu) oraz kilka innych funkcji. Nie da się go zamienić mikrokontrolerem, gdyż będzie to zbyt wolne - cykl procesora trwa 550ns.
  • #6
    tymon_x
    Level 30  
    Można się o taki pokusić:
    Digilent

    Sam posiadam HS1 wcześniej Full-Speed i nie narzekam. Ten pierwszy jest zrobiony na FTDI z MPSSE, a drugi to Atmel 90USB162. Narzędzia od Digilent w pełni integrują się z Xilinxowymi.

    Najtańszy JTAG na USB to samoróbka z FTDI. Można przygotować w iMPACT plik SVF albo bardziej kompaktowy XSVF i załadować go tak przez jakiś SVFPlayer, który przykładowo jest dostępny z OpenOCD.
  • #7
    User removed account
    Level 1  
  • #8
    spinlock
    Level 11  
    Do ładowania konfiguracji Xilinx FPGA Spartan 3 (również inne) polecam program xc3sprog pod Linuksa (chyba działa też na Windows).
    W przeciwieństwie do OpenOCD nie trzeba bawić się w konfiguracje JTAG'a (ja nie dałem rady) i nie trzeba generować za pomocą iMPACT plików XSVF bo wystarczą pliki BIT.
    Ja korzystam z JTAG'a Olimex'a ARM-USB-TINY-H a konfiguracje ładuje polecenie w konsoli:
    Code: Bash
    Log in, to see the code


    parametry -V i -P to odpowiednio vendor_id i product_id dla JTAG'a usb.
  • #9
    User removed account
    User removed account  
  • #10
    phanick
    Level 28  
    R-MIK wrote:
    Masz 100% racji. Używałem tych układów z napięciami wejściowymi 5V i nic sie nie paliło

    Co powiesz na temat tego wątku: https://www.elektroda.pl/rtvforum/topic545628.html
  • #11
    User removed account
    Level 1  
  • #12
    samochod3
    Level 14  
    Może warto zainteresować się SPARTAN3 XC3S100E przy cenie 15zł/szt.
    Możliwości nie do porównania.