Sommario:

Sistema di sviluppo Ghetto Programmable Logic (CPLD): 13 passaggi
Sistema di sviluppo Ghetto Programmable Logic (CPLD): 13 passaggi

Video: Sistema di sviluppo Ghetto Programmable Logic (CPLD): 13 passaggi

Video: Sistema di sviluppo Ghetto Programmable Logic (CPLD): 13 passaggi
Video: Architecture Kata #1 - Разбор с экспертом [Как работает настоящий Solution Architect] #ityoutubersru 2024, Novembre
Anonim
Sistema di sviluppo Ghetto Programmable Logic (CPLD)
Sistema di sviluppo Ghetto Programmable Logic (CPLD)

Negli ultimi mesi mi sono divertito con il Ghetto Development System per i processori AVR. In effetti, questo strumento da quasi zero dollari si è dimostrato così affascinante e utile che mi sono chiesto se fosse possibile estendere il concetto anche allo sviluppo di FPGA/CPLD. (FPGA: Field Programmable Gate Array. CPLD: Complex Programmable Logic Device.) Così ho fatto un po' di ricerche sul web e sono arrivato a un sistema di sviluppo per Atmel CPLD. Il confronto con i dispositivi Altera mostra che il loro pinout è lo stesso (entro le restrizioni che dettaglio di seguito), quindi funzioneranno anche. Costruendo la scheda di sviluppo e il cavo di interfaccia che presenterò, quindi scaricando gli strumenti, puoi sviluppare le tue applicazioni CPLD. Si prega di notare le seguenti limitazioni e restrizioni. Ho cercato di bilanciare capacità e semplicità in modo da poter costruire qualcosa che ti piacerà e imparerai solo sui dispositivi 5V. Estendere il sistema per coprire tensioni aggiuntive (3,3V, 2,5V, 1,8V sono supportati dai dispositivi Atmel della stessa famiglia) non è difficile, ma complica sia la scheda di sviluppo che il cavo di programmazione. Lasciamo perdere per ora. Si noti che è necessario fornire un'alimentazione di 5 V alla scheda. Solo PLCC a 44 pin. Nello specifico, ho programmato l'Atmel ATF1504AS. Il concetto Ghetto CPLD può essere facilmente esteso ad altri dispositivi Atmel, ma questo dispositivo sembrava un buon compromesso tra prezzo, facilità d'uso e capacità. Il concetto dovrebbe estendersi anche ad altri dispositivi come quelli di Altera, Xilinx, Actel, ecc. Infatti, la famiglia Max7000 EPM7032 e EPM7064 funzioneranno nello stesso socket purché si utilizzino le versioni PLCC a 44 pin. Finora ho usato solo il cavo di programmazione Atmel, ma l'Altera Byte-Blaster è supportato dal software Atmel e dovrebbe funzionare anche bene. In realtà è un design un po' più semplice rispetto al cavo Atmel. (Ho creato la versione Atmel e funziona, quindi non ho provato la versione Altera.) SparkFun offre una versione da $ 15 del cavo Altera. Dato che funzionerà sia per Atmel che per Altera, lo consiglio. Se hai intenzione di sviluppare con parti Altera, vorrai ottenere anche il software Altera. In realtà non l'ho provato, ma non c'è motivo per cui posso pensare che non funzionerebbe. La velocità è limitata. Dal momento che il Ghetto CPLD Development System è costruito con cablaggio manuale e nessun piano di terra, non aspettarti un funzionamento affidabile a velocità superiori a pochi megahertz. Anche se non è garantito che il tuo chilometraggio possa variare! Ovviamente, se costruisci un prototipo di hardware che ha un piano di terra, il tuo CPLD potrebbe funzionare bene a velocità più elevate. Non aspettarti che venga montato velocemente nel Ghetto Development System.

Passaggio 1: vai a ordinare le parti

Vai a ordinare le parti
Vai a ordinare le parti

Avrai bisogno di una presa plcc a 44 pin, alcuni cappucci di disaccoppiamento, alcuni CPLD non programmati, prese per connessioni breadboard, un resistore di pull-up e forse una scheda perf su cui costruirlo. Se hai qualcosa di tutto questo nella tua spazzatura puoi risparmiare qualche dollaro. Per tua comodità, ecco i numeri di parte Digikey: CONN PLCC SOCKET 44POS TIN PN: 1-822473-4-ND SOCKET IC OPEN FRAME 14POS.3" PN: 3M5462-ND Qtà: 2SOCKET IC OPEN FRAME 18POS.3" PN: 3M5464-ND Qtà: 2CAP ELECT 10UF 50V SU BI-POLAR PN: P1280-ND Qtà: 1, C1CAP CER.10UF 50V 20% DISC RAD PN: 478 -4275-1-ND Qtà: 4, C2-C5RES PELLICOLA METALLICA 5.10K OHM 1/4W 1% PN: P5.10KCACT-ND SCHEDA PC FR4 1 LATO PPH 4.0X4.0 PN: V2010-ND IC CPLD 64 MACROCELL 10NS 44PLCC PN: ATF1504AS-10JC44-ND Alcune parti possono avere quantità minime, ma dovrebbero comunque essere abbastanza economiche. Se vuoi costruire dei lampeggianti (passo 8) o fare un set di interruttori (passo 9) potresti voler ordinare anche questi. Tieni presente che Digikey ha un minimo di $ 25 per evitare un costo di gestione, quindi potresti voler ottenere un paio di CPLD non programmati extra o un processore AVR o due solo per divertimento. Ti consiglio di acquistare il cavo di programmazione Altera da SparkFun. Ecco i codici articolo. Prendi anche il cavo e il connettore. (Altrimenti, ordina le parti per il cavo da Digikey se stai costruendo il tuo.) Programmatore compatibile con FPGA Altera PN: PGM-087052x5 pin IDC cavo a nastro PN: PRT-085352x5 pin schermato Header PN: PRT-08506

Passaggio 2: scarica e installa il software

Ottieni e installa il software
Ottieni e installa il software

Attualmente sto utilizzando la catena di strumenti Atmel Prochip Designer 5.0. Questo strumento richiede la registrazione ad Atmel e la compilazione del modulo di richiesta ufficiale. Ho detto loro che ero un ingegnere progettista, attualmente disoccupato, e il mio scopo principale era imparare i loro dispositivi e VHDL (tutto vero, BTW). Hanno approvato la richiesta di licenza. L'unico problema è che la licenza è valida solo per 6 mesi. Spero di trovare una catena di strumenti di dominio pubblico prima della scadenza. Altera ha anche una catena di attrezzi che potrei controllare. Ogni suggerimento sarà apprezzato. Vedere commenti e collegamenti nell'ultimo passaggio. L'Atmel Prochip Designer 5.0 è qui. Se lo ricevi, assicurati di procurarti anche il Service Pack 1.

Passaggio 3: creare un cavo di programmazione

Crea cavo di programmazione
Crea cavo di programmazione

L'approccio più semplice qui è acquistare Altera Byte-Blaster allo stesso modo da Sparkfun (vedi passaggio 1). Se $ 15 è più di quanto ti interessa spendere, puoi utilizzare lo schema SparkFun Altera Cable o utilizzare lo schema Atmel Cable e uno scratch-build. (Se c'è molto interesse nello scratch-building del cavo, posso offrire alcuni suggerimenti, ma il kit Sparkfun mi sembra la risposta giusta.)

Passaggio 4: crea la base del programmatore

Fai la culla del programmatore
Fai la culla del programmatore
Fai la culla del programmatore
Fai la culla del programmatore
Fai la culla del programmatore
Fai la culla del programmatore

Dai un'occhiata al programmatore Atmel. Questo è molto flessibile ed è un'ottima opzione se hai i soldi e hai intenzione di fare un sacco di sviluppo CPLD. Altera offre qualcosa di simile, credo. Ma ho optato per un approccio più economico: ecco di cosa si tratta! Le immagini mostrano le viste anteriore e posteriore della culla che ho costruito. Notare le prese DIP utilizzate come connettori per breadboard. Tutti i pin su un lato di ciascun connettore sono collegati a terra; i pin sull'altro lato si collegano ai pin di segnale sul CPLD. Ho incluso anche alcune connessioni di alimentazione; metti questi dove si adattano. I diagrammi sono una sorta di schema pittorico; solo le connessioni di alimentazione extra non vengono mostrate. Guarda le immagini per idee su questi.

Passaggio 5: costruire la culla - Parte 1

Costruire la culla - Parte 1
Costruire la culla - Parte 1
Costruire la culla - Parte 1
Costruire la culla - Parte 1

Inizia a costruire la culla inserendo le prese nelle posizioni in cui le desideri. Lascia una o due file libere in modo che ci sia spazio per i cappucci di disaccoppiamento. Ciò semplifica anche il collegamento ai pin del segnale CPLD. Fissa le prese con un po' di saldatura o resina epossidica a seconda del tipo di scheda perf che usi. Lasciare un po' di spazio in più in alto (sopra il pin 1 della presa CPLD) per il connettore JTAG e il connettore di alimentazione. Fare riferimento alle immagini di quello che ho costruito. Instradare un filo nudo (calibro 20 o giù di lì) attorno all'esterno delle prese per un bus di terra. Instradare anche il bus di alimentazione. (Il filo rosso nelle immagini.) Fai riferimento alle immagini per alcune indicazioni, ma la tua scheda sarà probabilmente leggermente diversa - e va bene. Salda i pin esterni delle prese al bus di terra. Ciò contribuirà ad ancorare il cavo del bus.

Passaggio 6: costruire la culla - Parte 2

Costruire la culla - Parte 2
Costruire la culla - Parte 2
Costruire la culla - Parte 2
Costruire la culla - Parte 2

Installare i cappucci di disaccoppiamento e collegarli ai pin di terra e di alimentazione su ciascun lato della presa CPLD. Suggerisco di instradare i fili su e sopra le file esterne di pin per raggiungere le file interne. Fare riferimento ai diagrammi dei numeri di pin per ottenere i pin corretti: il pin-out della presa CPLD è tutt'altro che ovvio. Lasciare spazio sufficiente per consentire la connessione a tutti i pin su cui si passano i cavi. Una volta eseguiti i collegamenti del cappuccio, collegare il bus di alimentazione e terra. Tutti i pin rossi sugli schemi sono Vcc e vanno collegati. I pin neri sono a terra e dovrebbero essere collegati anche loro. Ancora una volta, instradarlo in aria è un buon approccio. Guarda le immagini per le idee.

Passaggio 7: costruire la culla - Conclusione

Costruire la culla - Conclusione
Costruire la culla - Conclusione
Costruire la culla - Conclusione
Costruire la culla - Conclusione
Costruire la culla - Conclusione
Costruire la culla - Conclusione

Instradare le connessioni JTAG ai pin corretti. Dai un'occhiata al tuo cavo di programmazione per assicurarti che il connettore sia orientato correttamente. Non dimenticare il pull-up sul pin TDO. Questo è mostrato solo nell'immagine e va tra il pin TDO e Vcc. L'ultimo passaggio consiste nel collegare ciascun pin I/O del CPLD a un pin sulle prese. Utilizzare i numeri negli schemi per i collegamenti. Questo richiede il tempo più lungo! Se segui il mio schema di numerazione, puoi usare il diagramma della vista dall'alto come guida quando colleghi i tuoi circuiti. Non devi davvero collegare tutti questi inizialmente, puoi aspettare fino a quando non ne avrai bisogno per i circuiti che progetti. Controlla attentamente il tuo lavoro. Assicurati che alimentazione e massa non siano in cortocircuito!

Passaggio 8: crea Blinkenlights (versione TTL)

Crea Blinkenlights (versione TTL)
Crea Blinkenlights (versione TTL)

Ovviamente vorrai vedere i tuoi circuiti funzionare. Quindi vorrai dei lampeggianti (reso famoso da The Real Elliot). L'unico problema è che i CPLD non hanno gli output robusti dei processori AVR. Utilizzare LED classificati per 10 mA e utilizzare resistori serie 1KOhm. Questi ti daranno segnali di uscita chiari senza sforzare le uscite CPLD.

Passaggio 9: crea interruttori

Fai interruttori
Fai interruttori
Fai interruttori
Fai interruttori

Per fornire stimoli ai tuoi circuiti, avrai bisogno di alcuni interruttori. Hai alcune opzioni qui, ma i requisiti sono diversi rispetto ai processori AVR. Le uscite CPLD non hanno i pull-up integrati e non è così facile eseguire l'antirimbalzo nel software. (È possibile, ma richiede risorse che probabilmente vorrai utilizzare nei tuoi circuiti.) Gli interruttori DIP mostrati forniscono diversi interruttori in un pacchetto conveniente, ma devono essere tirati su. Ho usato pull-up da 1K. I pulsanti possono essere realizzati utilizzando il circuito consigliato da Atmel per la loro scheda demo. Gli schemi sono a pagina 36 o giù di lì. Un'altra opzione è collegare un processore AVR per fornire stimoli e persino controllare le risposte. Ma questo è un esercizio lasciato allo studente.

Passaggio 10: crea il tuo primo circuito

Crea il tuo primo circuito
Crea il tuo primo circuito
Crea il tuo primo circuito
Crea il tuo primo circuito

A questo punto dovresti aver ottenuto e installato il software. Segui il tutorial completo e dettagliato per creare il tuo primo circuito CPLD semplice (porta AND a due ingressi; non diventa molto più semplice). Assicurati di selezionare il dispositivo corretto (44 Pin PLCC, 5V, 1504AS [dettagli]) e scegli i numeri di pin I/O disponibili (ho usato 14 e 16 come input; 28 come output). Questi dettagli differiscono leggermente dal tutorial, ma non dovrebbero darti alcun problema.

Passaggio 11: programma il tuo primo CPLD

Programma il tuo primo CPLD
Programma il tuo primo CPLD
Programma il tuo primo CPLD
Programma il tuo primo CPLD

Collega il cavo di programmazione alla porta parallela del tuo PC, collegalo alla base del programmatore, collega 5 Volt al connettore di alimentazione e segui il tutorial per programmare effettivamente il tuo primissimo CPLD. Seleziona la versione corretta del cavo. Nota che Altera Byte-Blaster è una delle opzioni.

Passaggio 12: testare la parte programmata

Metti alla prova la tua parte programmata!
Metti alla prova la tua parte programmata!
Metti alla prova la tua parte programmata!
Metti alla prova la tua parte programmata!

Scollegare il cavo di programmazione dalla base. Collega gli interruttori e le luci lampeggianti ai pin corretti, accendi l'alimentazione e provalo. Dato che inizi con un circuito semplice, i test non sono una grande sfida. Se funziona, sei fuori e corri! Il diagramma della vista dall'alto ti guiderà nel collegare gli interruttori e le luci lampeggianti per i test.

Passaggio 13: la fine e alcune risorse Web

La fine e alcune risorse web
La fine e alcune risorse web

Non è lo scopo di questo tutorial insegnarti come usare VHDL. (Sto appena iniziando a imparare che è per questo che ho creato il programmatore, ricordi?) Detto questo, ho trovato diversi tutorial molto utili e alcune risorse utili che posso indicarti. Feedback e altri suggerimenti sono molto apprezzati. Nota che puoi anche usare il Ghetto CPLD Development System per imparare Verilog e altre tecniche di programmazione CPLD a cui l'hardware non interessa. Risorse VHDL sul Web: Nozioni di base e alcuni link qui e qui. strumenti gratuiti. I tutorial che mi piacciono sono qui e qui, ma ne troverai molti altri. Infine (per ora), ti consigliamo di dare un'occhiata al gruppo di discussione. Divertiti, impara molto e condividi ciò che sai.

Consigliato: