Innholdsfortegnelse:

Ghetto Programmable Logic (CPLD) utviklingssystem: 13 trinn
Ghetto Programmable Logic (CPLD) utviklingssystem: 13 trinn

Video: Ghetto Programmable Logic (CPLD) utviklingssystem: 13 trinn

Video: Ghetto Programmable Logic (CPLD) utviklingssystem: 13 trinn
Video: Programmable Logic II: Program a CPLD from start to finish. 2024, November
Anonim
Ghetto Programmable Logic (CPLD) utviklingssystem
Ghetto Programmable Logic (CPLD) utviklingssystem

De siste månedene har jeg gledet meg over Ghetto Development System for AVR -prosessorene. Faktisk har dette nesten null dollar -verktøyet vist seg så fascinerende og nyttig at det fikk meg til å lure på om det var mulig å utvide konseptet til FPGA/CPLD -utvikling også. (FPGA: Field Programmable Gate Array. CPLD: Complex Programmable Logic Device.) Så jeg gravde litt på nettet og kom med et utviklingssystem for Atmel CPLD. Sammenligning med Altera -enheter viser at pinout er det samme (innenfor begrensningene jeg beskriver nedenfor), så de fungerer også. Ved å bygge utviklingsbordet og grensesnittkabelen skal jeg presentere, og deretter laste ned verktøyene, kan du utvikle dine egne CPLD -applikasjoner. Vær oppmerksom på følgende begrensninger og begrensninger. Jeg har prøvd å balansere evne og enkelhet, slik at du kan bygge noe du vil like og lære av bare 5V -enheter. Å utvide systemet til å dekke ekstra spenninger (3,3V, 2,5V, 1,8V støttes av Atmel -enheter i samme familie) er ikke vanskelig, men det kompliserer både utviklingskortet og programmeringskabelen. La oss hoppe over det for nå. Vær oppmerksom på at du bare må levere en 5V forsyning til kortet. 44 -pins PLCC. Spesielt har jeg programmert Atmel ATF1504AS. Ghetto CPLD -konseptet kan enkelt utvides til andre Atmel -enheter, men denne enheten virket som et godt kompromiss mellom pris, brukervennlighet og evne. Konseptet bør også omfatte andre enheter, for eksempel de fra Altera, Xilinx, Actel, etc. Faktisk vil Max7000 -familien EPM7032 og EPM7064 fungere i samme stikkontakt så lenge du bruker 44 -pinners PLCC -versjoner. Så langt har jeg bare brukt Atmel-programmeringskabelen, men Altera Byte-Blaster støttes av Atmel-programvaren og burde også fungere fint. Det er faktisk litt enklere design enn Atmel -kabelen. (Jeg bygde Atmel -versjonen, og den fungerer, så jeg har ikke prøvd Altera -versjonen.) SparkFun tilbyr en $ 15 -versjon av Altera -kabelen. Siden dette vil fungere for både Atmel og Altera, anbefaler jeg det. Hvis du skal utvikle deg med Altera -deler, vil du også få Altera -programvaren. Jeg har faktisk ikke prøvd dette, men det er ingen grunn til at jeg kan tenke på at det ikke ville fungere. Hastigheten er begrenset. Siden Ghetto CPLD Development System er bygget med håndledninger og ingen bakkeplan, ikke forvent pålitelig drift ved hastigheter over noen få megahertz. Selv det er ikke garantert at kjørelengden din kan variere! Selvfølgelig, hvis du bygger prototypemaskinvare som har et bakkeplan, kan CPLD -en din fungere helt fint ved høyere hastigheter. Bare ikke forvent at den skal gå raskt montert i Ghetto Development System.

Trinn 1: Gå til Bestill deler

Gå Bestill deler
Gå Bestill deler

Du trenger en 44-pinners plcc-kontakt, noen frakoblingshett, noen uprogrammerte CPLD-er, stikkontakter for tilkoblinger til brødbrett, en opptrekkmotstand og kanskje noe perf-bord for å bygge den på. Hvis du har noe av dette i søppelboksen din, kan du spare noen få penger. For enkelhets skyld er her Digikey-delenumre: CONN PLCC SOCKET 44POS TIN PN: 1-822473-4-ND SOCKET IC OPEN FRAME 14POS.3 "PN: 3M5462-ND Antall: 2SOCKET IC OPEN FRAME 18POS.3 "PN: 3M5464-ND Antall: 2CAP ELECT 10UF 50V SU BI-POLAR PN: P1280-ND Antall: 1, C1CAP CER.10UF 50V 20% DISC RAD PN: 478 -4275-1-ND Antall: 4, C2-C5RES METAL FILM 5.10K OHM 1/4W 1% PN: P5.10KCACT-ND PC BOARD FR4 1-SIDE PPH 4.0X4.0 PN: V2010-ND IC CPLD 64 MACROCELL 10NS 44PLCC PN: ATF1504AS-10JC44-ND Noen deler kan ha minimale mengder, men bør fortsatt være ganske billige. Hvis du vil bygge noen blinklys (trinn 8) eller lage et sett med brytere (trinn 9), kan det være lurt å bestille disse også. Husk at Digikey har et minimum på 25 dollar for å unngå håndteringsgebyr, så du vil kanskje få et par ekstra programmerte CPLDer eller en AVR -prosessor eller to for moro skyld. Jeg anbefaler at du kjøper Altera -programmeringskabelen fra SparkFun. Her er delenumrene. Få kabelen og kontakten også. (Ellers kan du bestille deler til kabelen fra Digikey hvis du bygger din egen.) Altera FPGA-kompatibel programmerer PN: PGM-087052x5 Pin IDC-båndkabel PN: PRT-085352x5 Pin Shrouded Header PN: PRT-08506

Trinn 2: Få og installer programvare

Få og installer programvare
Få og installer programvare

Jeg bruker for øyeblikket Atmel Prochip Designer 5.0 -verktøykjeden. Dette verktøyet krever at du registrerer deg hos Atmel og fyller ut det offisielle forespørselsskjemaet. Jeg fortalte dem at jeg var designingeniør, for tiden arbeidsledig, og hovedformålet mitt var å lære enhetene deres og VHDL (alt sant, BTW). De godkjente lisensforespørselen. Den eneste fangsten er at lisensen er god i bare 6 måneder. Jeg håper å finne en verktøykjede for offentlig eiendom når den utløper. Altera har også en verktøykjede jeg kan sjekke ut. Eventuelle forslag vil bli verdsatt. Se kommentarer og lenker i det siste trinnet. Atmel Prochip Designer 5.0 er her. Hvis du får det, må du også få Service Pack 1 for det.

Trinn 3: Lag programmeringskabel

Lag programmeringskabel
Lag programmeringskabel

Den enkleste tilnærmingen her er å kjøpe Altera Byte-Blaster work-alike fra Sparkfun (se trinn 1). Hvis $ 15 er mer enn du har lyst til å bruke, kan du bruke SparkFun Altera-kabelskjemaet eller bruke Atmel Cable-skjematisk og skrape-bygge. (Hvis det er stor interesse for å skrape kabelen, kan jeg komme med noen forslag, men Sparkfun-settet virker som det riktige svaret for meg.)

Trinn 4: Lag programmeringsholder

Lag programmeringsholder
Lag programmeringsholder
Lag programmeringsholder
Lag programmeringsholder
Lag programmeringsholder
Lag programmeringsholder

Ta en titt på Atmel -programmereren. Dette er veldig fleksibelt og er et flott alternativ hvis du har penger og planlegger å gjøre mye CPLD -utvikling. Altera tilbyr noe lignende, tror jeg. Men jeg gikk med en billigere tilnærming - det er det dette handler om! Bildene viser forfra og bakfra av vuggen jeg bygde. Legg merke til DIP -kontaktene som brukes som brødbrettkontakter. Alle pinner på den ene siden av hver kontakt er koblet til jord; pinner på den andre siden kobles til signalpinner på CPLD. Jeg inkluderte også noen få strømtilkoblinger; legg disse inn der de passer. Diagrammene er slags billedlige diagrammer; bare de ekstra strømtilkoblingene vises ikke. Se på bildene for ideer om disse.

Trinn 5: Bygg vuggen - Del 1

Building the Cradle - Del 1
Building the Cradle - Del 1
Building the Cradle - Del 1
Building the Cradle - Del 1

Begynn å bygge vuggen ved å sette inn stikkontaktene på stedene du vil ha dem. Tillat en ledig rad eller to, slik at det blir plass til frakoblingskapslene. Dette gjør det også lettere å koble til CPLD -signalpinnene. Fest festene med litt loddetinn eller epoksy avhengig av hvilken type perf -bord du bruker. Gi litt ekstra plass øverst (over pinne 1 i CPLD -kontakten) for JTAG -kontakten og strømkontakten. Se bildene av den jeg bygde. Kjør en ledning (20 gauge eller så) rundt utsiden av stikkontaktene for en jordbuss. Kjør også strømbussen. (Den røde ledningen på bildene.) Se bildene for å få litt veiledning, men brettet ditt vil sannsynligvis være litt annerledes - og det er helt fint. Solde utvendige pinner på kontaktene til jordbussen. Dette vil bidra til å forankre busstråden.

Trinn 6: Bygg vuggen - Del 2

Building the Cradle - Del 2
Building the Cradle - Del 2
Building the Cradle - Del 2
Building the Cradle - Del 2

Monter frakoblingskapslene og koble dem til bakken og strømnålene på hver side av CPLD -kontakten. Jeg foreslår å føre ledningene opp og over de ytre pinnene for å nå de indre radene. Se pin -talldiagrammene for å få de riktige pinnene - pin -out av CPLD -kontakten er langt fra åpenbar. La det være nok plass til å koble til alle pinner du sender ledningene over. Når lokketilkoblingene er utført, kobler du til strøm- og jordbussen. Alle de røde pinnene på diagrammene er Vcc og skal kobles til. De svarte pinnene er malt og bør også kobles til. Igjen, å rute den i luften er en god tilnærming. Se på bildene for ideer.

Trinn 7: Building the Cradle - Konklusjon

Building the Cradle - Konklusjon
Building the Cradle - Konklusjon
Building the Cradle - Konklusjon
Building the Cradle - Konklusjon
Building the Cradle - Konklusjon
Building the Cradle - Konklusjon

Før JTAG -tilkoblingene til riktige pinner. Ta en titt på programmeringskabelen for å være sikker på at kontakten er riktig orientert. Ikke glem pull-up på TDO-pinnen. Dette er bare vist på bildet og går mellom TDO -pinnen og Vcc. Det siste trinnet er å koble hver I/O -pinne på CPLD til en pinne på stikkontaktene. Bruk tallene i diagrammene for tilkoblingene. Dette tar lengst tid! Hvis du følger nummereringsskjemaet mitt, kan du bruke Top View -diagrammet som en veiledning når du kobler til kretsene dine. Du trenger virkelig ikke koble til alle disse i utgangspunktet, du kan vente til du trenger dem for kretsene du designer. Sjekk arbeidet ditt nøye. Sørg for at strøm og bakken ikke er kort!

Trinn 8: Lag Blinkenlights (TTL -versjon)

Lag blinklys (TTL -versjon)
Lag blinklys (TTL -versjon)

Du vil selvfølgelig se kretsene dine fungere. Så du vil ha noen blinkenlights (berømt av The Real Elliot). Den eneste fangsten er at CPLD -er ikke har de kraftige utgangene som AVR -prosessorene har. Bruk lysdioder som er klassifisert for 10ma og bruk motstander i 1KOhm -serien. Disse vil gi deg klare utgangssignaler uten å belaste CPLD -utgangene.

Trinn 9: Gjør bytter

Gjør brytere
Gjør brytere
Gjør brytere
Gjør brytere

For å gi stimuli til kretsene dine, trenger du noen brytere. Du har noen alternativer her, men kravene er annerledes enn for AVR -prosessorer. CPLD-utgangene har ikke de innebygde pull-ups, og det er ikke så lett å gjøre debouncing i programvare. (Det er mulig, men tar ressurser du sannsynligvis vil bruke i kretsene dine.) DIP -bryterne som vises gir flere brytere i en praktisk pakke, men må trekkes opp. Jeg brukte 1K pull-up. Push-knapper kan lages ved hjelp av kretsen Atmel anbefaler for deres demo-bord. Skjemaer er på side 36 eller så. Et annet alternativ er å koble til en AVR -prosessor for å gi stimuli - og til og med sjekke svar. Men det er en øvelse som er overlatt til eleven.

Trinn 10: Lag din første krets

Lag din første krets
Lag din første krets
Lag din første krets
Lag din første krets

På dette tidspunktet burde du ha skaffet deg og installert programvaren. Følg den grundige, detaljerte opplæringen for å lage din første enkle CPLD-krets (to-input OG gate; blir ikke mye enklere). Sørg for å velge riktig enhet (44 -pins PLCC, 5V, 1504AS [detaljer]) og velg I/O -pin -numre som er tilgjengelige (jeg brukte 14 og 16 som innganger; 28 som utgang). Disse detaljene avviker noe fra opplæringen, men bør ikke gi deg noen problemer.

Trinn 11: Programmer din første CPLD

Programmer din første CPLD
Programmer din første CPLD
Programmer din første CPLD
Programmer din første CPLD

Koble programmeringskabelen til parallellporten på PCen, koble den til programmeringsholderen, koble til 5 volt til strømkontakten og følg opplæringen for å faktisk programmere din aller første CPLD. Velg riktig kabelversjon. Vær oppmerksom på at Altera Byte-Blaster er et av alternativene.

Trinn 12: Test den programmerte delen

Test den programmerte delen din!
Test den programmerte delen din!
Test den programmerte delen din!
Test den programmerte delen din!

Koble programmeringskabelen fra holderen. Koble bryterne og blinklysene til de riktige pinnene, slå på strømmen og prøv den. Siden du starter med en enkel krets, er testing ikke en stor utfordring. Hvis det fungerer, er du i gang! Oversiktsdiagrammet viser deg hvordan du kobler brytere og blinklys for testing.

Trinn 13: Slutten og noen nettressurser

Slutten og noen nettressurser
Slutten og noen nettressurser

Det er ikke hensikten med denne opplæringen å lære deg hvordan du bruker VHDL. (Jeg har akkurat begynt å lære at det er derfor jeg opprettet programmereren, husker du?) Når det er sagt, har jeg funnet flere veldig nyttige opplæringsprogrammer og noen nyttige ressurser som jeg kan peke deg mot. Tilbakemeldinger og andre forslag blir satt stor pris på. Vær oppmerksom på at du også kan bruke Ghetto CPLD Development System til å lære Verilog og andre CPLD -programmeringsteknikker som maskinvaren ikke bryr seg om. VHDL -ressurser på nettet: Grunnleggende og noen lenker her og her. Lenker til gratis verktøy. Opplæringen jeg liker er her og her, men du finner mange andre. Til slutt (for nå) vil du sjekke ut diskusjonsgruppen. Nyt, lær mye og del det du vet.

Anbefalt: