Sari la conținut

kit programare FPGA-uri sau CPLD-uri


iulian_zamfir

Postări Recomandate

Buna ziua,

 

Am cautat pe net cateva informatii despre un programator serial sau USB pentru programarea acestor device-uri, in special CPLD-uri (Complex programmable logic device). Daca este cineva dornic sa ma ajute in problema asta i-as fi vesnic recunoscator.

 

Multumesc anticipat. scratch_one-s_head.gif

Link spre comentariu
Distribuie pe alte site-uri

Daca ai port paralel la PC (astea mai noi nu mai au) poti sa-ti faci singur cablul

schema http://www.xilinx.com/support/documentatio...ides/xtp029.pdf

cablul ala e compatibil cu software-ul de programare (si cu cipurile) de la Xilinx, care este si el free

fa-ti cablul si vorbim

 

RR

Link spre comentariu
Distribuie pe alte site-uri

Am sa ma refer la cele fabricate de Xilinx fiind mai familiar cu ele.

preturile CPLD-urilor pornesc de la 1 euro pana la ~50 euro (dupa marime complexitate capsula viteza)

unul din cele mai mici este XC9536XL (3.3V) sau XC9536 (5V), va recomand sa folositi cle la 3.3V pentru ca sunt mai ieftine si mai usor de gasit (mai populare)

XC9536XL are 36 de macro celule compuse dintr-un registru (flipflop) si o retea PLA (combinatoriala) in fata registrului macro celulelel sunt interconectate cu o retea de legaturi programabile.

nu cred ca e constructiv sa tin aici un curs de CPLD-uri, exista carti in limba romana despre CPLD/FPGA si internetul (in limba engleza)

Capsulele la CPLD-uri sunt SMD (SMT) dar exista si cateva care se pot pune pe soclu (PLCC44)

Viteza lor de functionare e intre 100Mhz si 200Mhz (deci la acelasi nivel cu portile logice discrete moderne) si evident cele mai rapide sunt ceva mai scumpe.

Motivele pentru care lumea le foloseste sunt: sunt mai usor de manipulat in productie (in loc sa ai 5-10 circuite logice pe placa ai unul singur, costa mai putin decat circuitele discrete, si cel mai important sunt reprogramabile. Daca ai gresit cablajul (sau vrei sa modifici ceva) la un proiect cu 10 circuite discrete trebuie sa refaci cablajul sau sa pui sarme pe spate, daca folosesti un CPLD nu trebuie decat sa-l reprogramezi.

RR

Link spre comentariu
Distribuie pe alte site-uri

cateva exemple

un frecventmetru la 100 Mhz, aici microcontrolerele nu mai pot face fata.

alt exemplu un generator de semnal (arbitrar) de 10 MHz unde trebuiea sa ataci un DAC-ul cu esantioane la cel putin 10x frecventa semanlului generat.

modulator PWM cu frecventa de ordinul 200 Mhz, analiza de spectru real time pentru un semnal radio cu FFT (fast fourier transform) encriptare, de-encriptare a pachetelor de retea (comunicatie)

cam toate aplicatiile video HD (unde clk video e 148Mhz) scalare, deintretesere (deinterlacing) OSD, adica on screen display, compresie, de compresie (MJPEG, MPEG2, MPEG4) dar astea deja sunt avansate.

 

sunt si exemple unde microntrollerele si PLD-urile lucreaza bine impreuna, de exemplu PLC-urile care au nevoie de mai mult de 100 IO-uri, folosesti un cpld pe care-l conectezi cu magistrala externa a unui MCU (sau cu un port SPI I2C sau ce-ti vrea sufletul) si-l folosesti ca expandor IO.

RR

 

 

 

Intervin si eu...,

 

@roadrunner, zi-mi cel putin un motiv de ce pentru o anumita aplicatie crezi este mai buna o solutie CPLD sau FPGA decat una cu microprocesoare uzuale (Atmel sau Microcip)?

 

Numai Bine

Link spre comentariu
Distribuie pe alte site-uri

Intervin si eu...,

 

@roadrunner, zi-mi cel putin un motiv de ce pentru o anumita aplicatie crezi este mai buna o solutie CPLD sau FPGA decat una cu microprocesoare uzuale (Atmel sau Microcip)?

 

Cum zicea si Roadrunner, in general cele care lucreaza la frecvente mari (si la care ai nevoie de muuulte porturi). Cu FPGA-uri poti implementa inclusiv DSP-uri, dar pt. automatizari generale care nu implica dureri de cap uC sunt baza.

Link spre comentariu
Distribuie pe alte site-uri

tin minte cand am inceput sa folsesc FPGA-uri, am descoperit un alt avantaj care mi s-a parut enorm atunci, si anume ca avand o placa de dezvoltare relativ ieftina, nu mai eram constrans de a face rost de piese daca aveam o idee (nastrusnica) si ma hotaram sa incerc daca functioneaza. Nu mai trebuia sa fac cablaje iar daca greseam puteam repara totul de la tastatura.

Unul din primele proiecte care le-am facut cu fpga a fost sa leg un FPGA cu magistrala externa la un Atmega (sau AT52 nu mai tim minte ca era acum 10 ani) si ma facut un controlor video ca sa pot afisa text (color VGA 640 x 480) limitat la 8 culori, pe un ecran VGA. A fost un proiect interesant care mi-a mancat vreo 2 saptamani din viata, dar a functionat perfect si a fost ca o rampa de lansare pentru mine. Tin minte ca l-am completat cu o interfata PS2 (tot in fpga) pentru tastatura care deserializa in hardware keystroke-urile de la taste si genera o intrerupere la MCU. Pana la urma facusem un terminal color ...

RR

 

Ah, mi-am amintit era atmega8535, si tin minte ca m-am lovit de o problema cu documentatia care nu specifica daca semanlul ALE (Address latch enable) e sincron cu clock-ul, sau mai bine zis cu care front al clock-ului. Dar am zis ca nu poate fi fi decat in doua feluri si am eperimentat in ambele ca nu ma costa nimic decat cateva apasari de buton. (din pacate la AT8952 clock-ul era intern divizat cu 12 si interfata externa era asincrona, sau sincrona cu clock-ul divizat)

Un alt challenge la proiect a fost clock-ul video era de 24.50Mhz (sau ceva similar) iar MCU scria in memoria video cu 8MHz, si FPGA-ul s-a potrivit ca o manusa ca am folosit un BRAM (block de static ram) care e dual port, deci puteai scrie pe un port cu o frecventa si citii pe portul celalalt cu alta.

 

RR

Editat de roadrunner
Link spre comentariu
Distribuie pe alte site-uri

Multumesc pt. reply,

 

Am sa incep cu portul paralel. Dar nu am inteles ce program iti trebuie pentru scrierea programelor in memoria CPLD-urilor sau FPGA-urilor. De exemplu, la AVR ne trebuie AVRStudio, la CPLD-uri sau FPGA-uri ce ne trebuie? Exista niste compilatoare pentru Basic, C sau Pascal? Nu as vrea sa incep totusi cu un limbaj de ansamblare.

 

A..... si inca ceva. Ce este este ala: bootloader. Am auzit la PIC despre asa ceva dar nu prea stiu ce inseamna!!!!!!!! of.gif

Link spre comentariu
Distribuie pe alte site-uri

Multumesc pt. reply,

 

Am sa incep cu portul paralel. Dar nu am inteles ce program iti trebuie pentru scrierea programelor in memoria CPLD-urilor sau FPGA-urilor. De exemplu, la AVR ne trebuie AVRStudio, la CPLD-uri sau FPGA-uri ce ne trebuie? Exista niste compilatoare pentru Basic, C sau Pascal? Nu as vrea sa incep totusi cu un limbaj de ansamblare.

 

A..... si inca ceva. Ce este este ala: bootloader. Am auzit la PIC despre asa ceva dar nu prea stiu ce inseamna!!!!!!!! of.gif

 

 

PLD-urile sunt hardware (sunt circuite electronice) nu se programeaza in Pascal, C, sau Basic ci se progreameaza in VHDL (sau Verilog) care sunt limbaje HDL (hardware description language)

pentru a le programa ai nevoie de tool-uri (software cu care compilezi codul VHDL sau verilog si-l transformi intr-un fisier binar pe care-l incarci in PLD)

toolurile sunt free, dar invatatul trebuie sa-l faci tu.

Dupa intrebarile pe care le pui cred ca inca esti foarte departe in a intelege cum functioneaza tot procesul asta.

 

bootloader - este un progarm care incarca sitemul de operare (sau software-ul principal) dintr-o memorie nonvolatila in ram (sau in alta memorie non volatila) si-l ruleaza.

In lumea microcontrolerelor e adesea folosit pentru a incarca noul software (cod executabil) in microcontroller pe una din interfetele standard (port serial de obicei) fara a mai fi necesar cablul de programare al microcontrollerului.

RR

 

De exemplu codul VHDL pentru un numarator binar de 4 biti cu reset asincron arata asa:

 

signal count : std_logic_vector(3 downto 0); 

process(clk, reset)
begin
  if (reset='1') then
  counter <= "0000";
  else
  if clk'event and clk='1' then
	   count <= count +1;
 end if;
 end if;
end process;

Editat de roadrunner
Link spre comentariu
Distribuie pe alte site-uri

Creează un cont sau autentifică-te pentru a adăuga comentariu

Trebuie să fi un membru pentru a putea lăsa un comentariu.

Creează un cont

Înregistrează-te pentru un nou cont în comunitatea nostră. Este simplu!

Înregistrează un nou cont

Autentificare

Ai deja un cont? Autentifică-te aici.

Autentifică-te acum
  • Navigare recentă   0 membri

    • Nici un utilizator înregistrat nu vede această pagină.
×
×
  • Creează nouă...

Informații Importante

Folosim cookie-uri și tehnologii asemănătoare pentru a-ți îmbunătăți experiența pe acest website, pentru a-ți oferi conținut și reclame personalizate și pentru a analiza traficul și audiența website-ului. Înainte de a continua navigarea pe www.tehnium-azi.ro te rugăm să fii de acord cu: Termeni de Utilizare.

ATENTIE !!! Functionarea Tehnium Azi depinde de afisarea de reclame.

Pentru a putea accesa in continuoare site-ul web www.tehnium-azi.ro, va rugam sa dezactivati extensia ad block din browser-ul web al vostru. Dupa ce ati dezactivat extensia ad block din browser dati clic pe butonul de mai jos.

Multumim.

Apasa acest buton dupa dezactivarea extensiei Adblock