Innehållsförteckning:

Ghetto Programmable Logic (CPLD) utvecklingssystem: 13 steg
Ghetto Programmable Logic (CPLD) utvecklingssystem: 13 steg

Video: Ghetto Programmable Logic (CPLD) utvecklingssystem: 13 steg

Video: Ghetto Programmable Logic (CPLD) utvecklingssystem: 13 steg
Video: Programmable Logic II: Program a CPLD from start to finish. 2024, Juli
Anonim
Ghetto Programmable Logic (CPLD) utvecklingssystem
Ghetto Programmable Logic (CPLD) utvecklingssystem

Under de senaste månaderna har jag njutit av Ghetto Development System för AVR -processorerna. Faktum är att detta verktyg för nästan noll dollar har visat sig vara så fascinerande och användbart att det fick mig att undra om det var möjligt att utvidga konceptet till FPGA/CPLD -utveckling också. (FPGA: Field Programmable Gate Array. CPLD: Complex Programmable Logic Device.) Så jag grävde lite på webben och kom med ett utvecklingssystem för Atmel CPLD. Jämförelse med Altera -enheter visar att deras pinout är densamma (inom de begränsningar som jag beskriver nedan), så de fungerar också. Genom att bygga utvecklingskortet och gränssnittskabeln ska jag presentera och sedan ladda ner verktygen kan du utveckla dina egna CPLD -applikationer. Observera följande begränsningar och begränsningar. Jag har försökt balansera förmåga och enkelhet så att du kan bygga något som du kommer att njuta av och bara lära dig av. 5V -enheter. Att utvidga systemet till att täcka ytterligare spänningar (3,3V, 2,5V, 1,8V stöds av Atmel -enheter i samma familj) är inte svårt, men det komplicerar både utvecklingskortet och programmeringskabeln. Låt oss hoppa över det för nu. Observera att du endast måste tillhandahålla en 5V -strömförsörjning till kortet. 44 -stifts PLCC. Specifikt har jag programmerat Atmel ATF1504AS. Ghetto CPLD -konceptet kan enkelt utökas till andra Atmel -enheter, men den här enheten verkade som en bra kompromiss mellan pris, användarvänlighet och kapacitet. Konceptet bör också sträcka sig till andra enheter som till exempel Altera, Xilinx, Actel, etc. Faktum är att Max7000 -familjen EPM7032 och EPM7064 fungerar i samma uttag så länge du använder de 44 -stifts PLCC -versionerna. Hittills har jag bara använt Atmel-programmeringskabeln, men Altera Byte-Blaster stöds av Atmel-programvaran och borde också fungera bra. Det är faktiskt lite enklare design än Atmel -kabeln. (Jag byggde Atmel -versionen och den fungerar, så jag har inte provat Altera -versionen.) SparkFun erbjuder en $ 15 -version av Altera -kabeln. Eftersom detta kommer att fungera för både Atmel och Altera, rekommenderar jag det. Om du ska utveckla med Altera -delar vill du också få Altera -programvaran. Jag har faktiskt inte provat det här, men det finns ingen anledning att tänka på att det inte skulle fungera. Hastigheten är begränsad. Eftersom Ghetto CPLD Development System är byggt med handledningar och inget markplan, förvänta dig inte tillförlitlig drift vid hastigheter över några megahertz. Även det är inte garanterat att din körsträcka kan variera! Naturligtvis, om du bygger prototypmaskinvara som har ett markplan kan din CPLD fungera bra vid högre hastigheter. Förvänta dig bara inte att det går snabbt monterat i Ghetto Development System.

Steg 1: Beställ delar

Gå Beställ delar
Gå Beställ delar

Du behöver ett 44-stifts plcc-uttag, några avkopplingslock, några oprogrammerade CPLD, uttag för brödbrädanslutningar, ett pull-up-motstånd och kanske någon perf-bräda att bygga det på. Om du har något av detta i din skräpbox kan du spara några dollar. För din bekvämlighet finns här Digikey-artikelnummer: CONN PLCC SOCKET 44POS TIN PN: 1-822473-4-ND SOCKET IC OPEN FRAME 14POS.3 "PN: 3M5462-ND Antal: 2SOCKET IC OPEN FRAME 18POS.3 "PN: 3M5464-ND Antal: 2CAP ELECT 10UF 50V SU BI-POLAR PN: P1280-ND Antal: 1, C1CAP CER.10UF 50V 20% DISC RAD PN: 478 -4275-1-ND Antal: 4, C2-C5RES METALFILM 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 Några delar kan ha minimikvantiteter, men bör ändå vara ganska billiga. dessa också. Tänk på att Digikey har minst $ 25 för att undvika hanteringsavgifter, så du kanske vill få ett par extra oprogrammerade CPLD eller en AVR -processor eller två bara för skojs skull. Jag rekommenderar att du köper Altera -programmeringskabeln från SparkFun. Här är artikelnumren. Skaffa kabeln och kontakten också. (Annars kan du beställa delar till kabeln från Digikey om du bygger din egen.) Altera FPGA-kompatibel programmerare PN: PGM-087052x5 Pin IDC Ribbon Cable PN: PRT-085352x5 Pin Shrouded Header PN: PRT-08506

Steg 2: Hämta och installera programvara

Hämta och installera programvara
Hämta och installera programvara

Jag använder för närvarande verktygskedjan Atmel Prochip Designer 5.0. Detta verktyg kräver att du registrerar dig hos Atmel och fyller i deras officiella förfrågningsformulär. Jag berättade för dem att jag var designingenjör, för närvarande arbetslös, och mitt främsta syfte var att lära sig deras enheter och VHDL (allt sant, BTW). De godkände licensbegäran. Den enda fångsten är att licensen är bra i endast 6 månader. Jag hoppas kunna hitta en verktygskedja för offentlig egendom när den löper ut. Altera har också en verktygskedja som jag kan kolla in. Eventuella förslag kommer att uppskattas. Se kommentarer och länkar i det sista steget. Atmel Prochip Designer 5.0 är här. Om du får det, se till att du också får Service Pack 1 för det.

Steg 3: Gör programmeringskabel

Gör programmeringskabel
Gör programmeringskabel

Det enklaste sättet här är att köpa Altera Byte-Blaster-arbetet lika från Sparkfun (se steg 1). Om $ 15 är mer än du vill spendera, kan du använda SparkFun Altera-kabelschemat eller använda Atmel Cable-schemat och repor. (Om det finns ett stort intresse för att bygga kabeln, kan jag komma med några förslag, men Sparkfun-kit verkar vara det rätta svaret för mig.)

Steg 4: Gör programmeraren Cradle

Gör programmeraren vagga
Gör programmeraren vagga
Gör programmeraren vagga
Gör programmeraren vagga
Gör programmeraren vagga
Gör programmeraren vagga

Ta en titt på Atmel -programmeraren. Detta är mycket flexibelt och är ett bra alternativ om du har pengar och planerar att göra mycket CPLD -utveckling. Altera erbjuder något liknande, tror jag. Men jag gick med ett billigare tillvägagångssätt - det är vad det här handlar om! Bilderna visar framsidan och baksidan av vaggan jag byggde. Observera DIP -uttagen som används som brödbräda. Alla stift på ena sidan av varje kontakt är anslutna till jord; stiften på andra sidan ansluts till signalstift på CPLD. Jag inkluderade också några strömanslutningar; sätt in dessa där de passar. Diagrammen är typ av bildscheman; bara de extra strömanslutningarna visas inte. Titta på bilderna för idéer om dessa.

Steg 5: Bygga vaggan - Del 1

Bygga vaggan - Del 1
Bygga vaggan - Del 1
Bygga vaggan - Del 1
Bygga vaggan - Del 1

Börja bygga vaggan genom att sätta i uttagen på de platser där du vill ha dem. Tillåt en ledig rad eller två så att det blir plats för avkopplingskåporna. Detta gör det också lättare att ansluta till CPLD -signalstiften. Förankra uttagen med lite löd eller epoxi beroende på vilken typ av perf -kort du använder. Ge lite extra utrymme överst (ovanför stift 1 i CPLD -uttaget) för JTAG -kontakten och strömkontakten. Se bilderna på den jag byggde. Dra en bar tråd (20 gauge eller så) runt utsidan av uttagen för en markbuss. Dra även strömbussen. (Den röda tråden på bilderna.) Se bilderna för lite vägledning, men din bräda kommer förmodligen att vara lite annorlunda - och det är helt ok. Löd uttagen på uttagen till markbussen. Detta hjälper till att förankra busstråden.

Steg 6: Bygga vaggan - Del 2

Bygga vaggan - Del 2
Bygga vaggan - Del 2
Att bygga vaggan - Del 2
Att bygga vaggan - Del 2

Installera frikopplingskåporna och anslut dem till marken och strömstiften på varje sida av CPLD -uttaget. Jag föreslår att kablarna dras upp och över de yttre stiften för att nå de inre raderna. Se stiftnummerscheman för att få rätt stift - uttaget på CPLD -uttaget är långt ifrån uppenbart. Lämna tillräckligt med utrymme för att möjliggöra anslutning till alla stift som du leder ledningarna över. När lockanslutningarna är gjorda ansluter du ström- och jordbussen. Alla de röda stiften på diagrammen är Vcc och bör anslutas. De svarta stiften är slipade och bör också anslutas. Återigen är det ett bra tillvägagångssätt att dirigera det i luften. Titta på bilderna för idéer.

Steg 7: Bygga vaggan - Slutsats

Bygga vaggan - Slutsats
Bygga vaggan - Slutsats
Bygga vaggan - Slutsats
Bygga vaggan - Slutsats
Bygga vaggan - Slutsats
Bygga vaggan - Slutsats

Dra JTAG -anslutningarna till rätt stift. Ta en titt på din programmeringskabel för att vara säker på att kontakten är rätt orienterad. Glöm inte uppdragningen på TDO-stiftet. Detta visas bara på bilden och går mellan TDO -stiftet och Vcc. Det sista steget är att ansluta varje I/O -stift på CPLD till en stift på uttagen. Använd siffrorna i diagrammen för anslutningarna. Detta tar längst tid! Om du följer mitt nummerschema kan du använda Top View -diagrammet som en guide när du kopplar ihop dina kretsar. Du behöver verkligen inte ansluta alla dessa till en början. Du kan vänta tills du behöver dem för de kretsar du designar. Kontrollera ditt arbete noggrant. Se till att ström och mark inte är kortslutna!

Steg 8: Gör Blinkenlights (TTL -version)

Make Blinkenlights (TTL Version)
Make Blinkenlights (TTL Version)

Du vill naturligtvis se dina kretsar. Så du vill ha några blinkenlights (känd av The Real Elliot). Den enda fångsten är att CPLD: er inte har de biffiga utgångarna som AVR -processorerna har. Använd lysdioder klassade för 10ma och använd 1KOhm -seriens motstånd. Dessa ger dig tydliga utsignaler utan att anstränga CPLD -utgångarna.

Steg 9: Gör omkopplare

Gör omkopplare
Gör omkopplare
Gör omkopplare
Gör omkopplare

För att ge stimuli för dina kretsar behöver du några switchar. Du har några alternativ här, men kraven är annorlunda än för AVR -processorer. CPLD-utgångarna har inte de inbyggda pull-ups och det är inte så lätt att göra debouncing i programvara. (Det är möjligt, men kräver resurser som du förmodligen vill använda i dina kretsar.) DIP -switcharna som visas ger flera switchar i ett bekvämt paket, men måste dras upp. Jag använde 1K pull-up. Push-knappar kan göras med hjälp av kretsen Atmel rekommenderar för deras demokort. Scheman finns på sidan 36 eller så. Ett annat alternativ är att ansluta en AVR -processor för att ge stimuli - och till och med kontrollera svaren. Men det är en övning som är kvar åt eleven.

Steg 10: Skapa din första krets

Skapa din första krets
Skapa din första krets
Skapa din första krets
Skapa din första krets

Vid den här tiden borde du ha fått och installerat programvaran. Följ den noggranna, detaljerade handledningen för att skapa din första enkla CPLD-krets (två-ingång OCH grind; blir inte mycket enklare). Var noga med att välja rätt enhet (44 -stifts PLCC, 5V, 1504AS [detaljer]) och välj I/O -stiftnummer som är tillgängliga (jag använde 14 och 16 som ingångar, 28 som utgång). Dessa detaljer skiljer sig något från handledningen, men bör inte ge dig några problem.

Steg 11: Programmera din första CPLD

Programmera din första CPLD
Programmera din första CPLD
Programmera din första CPLD
Programmera din första CPLD

Anslut din programmeringskabel till parallellporten på din dator, anslut den till din programmeringshållare, anslut 5 volt till strömkontakten och följ handledningen för att faktiskt programmera din allra första CPLD. Välj rätt version av kabeln. Observera att Altera Byte-Blaster är ett av alternativen.

Steg 12: Testa din programmerade del

Testa din programmerade del!
Testa din programmerade del!
Testa din programmerade del!
Testa din programmerade del!

Koppla bort programmeringskabeln från hållaren. Anslut omkopplarna och blinklamporna till rätt stift, slå på strömmen och prova. Eftersom du börjar med en enkel krets är testning inte en stor utmaning. Om det fungerar är du igång! Diagrammet ovanifrån hjälper dig att ansluta dina switchar och blinkers för testning.

Steg 13: Slutet och några webbresurser

Slutet och några webbresurser
Slutet och några webbresurser

Det är inte syftet med denna handledning att lära dig hur du använder VHDL. (Jag har precis börjat lära mig att det är därför jag skapade programmeraren, kommer du ihåg?) Med det sagt har jag hittat flera mycket hjälpsamma självstudier och några användbara resurser som jag kan peka dig mot. Feedback och andra förslag uppskattas mycket. Observera att du också kan använda Ghetto CPLD Development System för att lära dig Verilog och andra CPLD -programmeringstekniker som hårdvaran inte bryr sig om. VHDL -resurser på webben: Grunderna och några länkar här och här. Länkar till gratis verktyg. Självstudier jag gillar finns här och här, men du hittar många andra. Slutligen (för nu) vill du kolla in diskussionsgruppen. Njut, lär dig mycket och dela med dig av det du vet.

Rekommenderad: