Inhaltsverzeichnis:

Entwicklungssystem für programmierbare Ghetto-Logik (CPLD) - Gunook
Entwicklungssystem für programmierbare Ghetto-Logik (CPLD) - Gunook

Video: Entwicklungssystem für programmierbare Ghetto-Logik (CPLD) - Gunook

Video: Entwicklungssystem für programmierbare Ghetto-Logik (CPLD) - Gunook
Video: MEB10 REDS - 03 FPGA-Entwicklungssystem Digilent Nexys4 DDR 2024, November
Anonim
Ghetto Programmable Logic (CPLD) Entwicklungssystem
Ghetto Programmable Logic (CPLD) Entwicklungssystem

In den letzten Monaten genieße ich das Ghetto Development System für die AVR-Prozessoren. Tatsächlich hat sich dieses fast Null-Dollar-Tool als so faszinierend und nützlich erwiesen, dass ich mich fragte, ob es möglich wäre, das Konzept auch auf die FPGA/CPLD-Entwicklung auszuweiten. (FPGA: Field Programmable Gate Array. CPLD: Complex Programmable Logic Device.) Also habe ich ein wenig im Web gestöbert und ein Entwicklungssystem für Atmel CPLDs entwickelt. Der Vergleich mit Altera-Geräten zeigt, dass ihre Pinbelegung gleich ist (innerhalb der Einschränkungen, die ich unten beschreibe), sodass sie auch funktionieren. Indem Sie die Entwicklungsplatine und das Schnittstellenkabel bauen, die ich Ihnen vorstelle, und dann die Tools herunterladen, können Sie Ihre eigenen CPLD-Anwendungen entwickeln. Bitte beachten Sie die folgenden Einschränkungen und Einschränkungen. Ich habe versucht, Funktionalität und Einfachheit in Einklang zu bringen, damit Sie etwas bauen können, das Ihnen Spaß macht und nur von 5-V-Geräten lernt. Die Erweiterung des Systems auf zusätzliche Spannungen (3,3 V, 2,5 V, 1,8 V werden von Atmel-Geräten derselben Familie unterstützt) ist nicht schwierig, verkompliziert jedoch sowohl das Entwicklungsboard als auch das Programmierkabel. Lassen Sie es uns jetzt überspringen. Beachten Sie, dass Sie die Platine nur mit einer 5V-Versorgung versorgen müssen. 44-Pin-PLCC. Konkret habe ich den Atmel ATF1504AS programmiert. Das Ghetto CPLD-Konzept kann leicht auf andere Atmel-Geräte ausgeweitet werden, aber dieses Gerät schien ein guter Kompromiss zwischen Preis, Benutzerfreundlichkeit und Leistungsfähigkeit zu sein. Das Konzept sollte sich auch auf andere Geräte wie die von Altera, Xilinx, Actel usw. erstrecken. Tatsächlich funktionieren die EPM7032 und EPM7064 der Max7000-Familie im selben Sockel, solange Sie die 44-Pin-PLCC-Versionen verwenden. Bisher habe ich nur das Atmel-Programmierkabel verwendet, aber der Altera Byte-Blaster wird von der Atmel-Software unterstützt und sollte auch gut funktionieren. Es ist tatsächlich ein wenig einfacheres Design als das Atmel-Kabel. (Ich habe die Atmel-Version gebaut und sie funktioniert, also habe ich die Altera-Version nicht ausprobiert.) SparkFun bietet eine 15-Dollar-Version des Altera-Kabels an. Da dies sowohl für Atmel als auch für Altera funktioniert, empfehle ich es. Wenn Sie mit Altera-Teilen entwickeln möchten, sollten Sie sich auch die Altera-Software zulegen. Ich habe das nicht wirklich ausprobiert, aber es gibt keinen Grund, warum ich mir vorstellen kann, dass es nicht funktionieren würde. Die Geschwindigkeit ist begrenzt. Da das Ghetto CPLD Development System mit Handverdrahtung und ohne Groundplane gebaut ist, erwarten Sie keinen zuverlässigen Betrieb bei Geschwindigkeiten über ein paar Megahertz. Auch das ist nicht garantiert, dass Ihr Kilometerstand variieren kann! Natürlich kann Ihr CPLD bei höheren Geschwindigkeiten problemlos funktionieren, wenn Sie Prototyp-Hardware bauen, die über eine Masseebene verfügt. Erwarten Sie nur nicht, dass es im Ghetto-Entwicklungssystem schnell montiert wird.

Schritt 1: Teile bestellen

Los Teile bestellen
Los Teile bestellen

Sie benötigen einen 44-poligen SPS-Sockel, einige Entkopplungskappen, einige unprogrammierte CPLDs, Sockel für Steckbrettverbindungen, einen Pull-up-Widerstand und vielleicht ein Perfboard, um darauf aufzubauen. Wenn Sie etwas davon in Ihrer Junk-Box haben, können Sie ein paar Dollar sparen. Für Ihre Bequemlichkeit sind hier Digikey-Teilenummern: CONN PLCC SOCKET 44POS TIN PN: 1-822473-4-ND SOCKET IC OFFEN FRAME 14POS.3" PN: 3M5462-ND Menge: 2SOCKET IC OPEN FRAME 18POS.3" PN: 3M5464-ND Menge: 2CAP ELECT 10UF 50V SU BI-POLAR PN: P1280-ND Menge: 1, C1CAP CER.10UF 50V 20% DISC RAD PN: 478 -4275-1-ND Menge: 4, C2-C5RES METALLFOLIE 5.10K OHM 1/4W 1% PN: P5.10KCACT-ND PC BOARD FR4 1-SEITIG PPH 4.0X4.0 PN: V2010-ND IC CPLD 64 MACROCELL 10NS 44PLCC PN: ATF1504AS-10JC44-ND Einige Teile haben möglicherweise Mindestmengen, sollten aber immer noch ziemlich günstig sein diese auch. Denken Sie daran, dass Digikey ein Minimum von 25 US-Dollar hat, um Bearbeitungsgebühren zu vermeiden. Daher möchten Sie vielleicht ein paar zusätzliche unprogrammierte CPLDs oder einen oder zwei AVR-Prozessoren nur zum Spaß kaufen. Ich empfehle Ihnen, das Altera-Programmierkabel von SparkFun zu kaufen. Hier die Teilenummern. Besorge dir auch das Kabel und den Stecker. (Andernfalls bestellen Sie Teile für das Kabel von Digikey, wenn Sie Ihr eigenes Kabel bauen.)Altera FPGA-kompatibler Programmierer PN: PGM-087052x5-Pin-IDC-Flachbandkabel PN: PRT-085352x5-Pin-ummantelte Stiftleiste PN: PRT-08506

Schritt 2: Software herunterladen und installieren

Software herunterladen und installieren
Software herunterladen und installieren

Ich verwende derzeit die Atmel Prochip Designer 5.0-Toolkette. Dieses Tool erfordert, dass Sie sich bei Atmel registrieren und das offizielle Anfrageformular ausfüllen. Ich sagte ihnen, ich sei Konstrukteur, derzeit arbeitslos, und mein Hauptzweck sei es, ihre Geräte und VHDL zu lernen (alles stimmt übrigens). Sie genehmigten den Lizenzantrag. Der einzige Haken ist, dass die Lizenz nur 6 Monate gültig ist. Ich hoffe, bis zum Ablauf eine Public Domain-Toolkette zu finden. Altera hat auch eine Werkzeugkette, die ich mir ansehen kann. Alle Vorschläge werden geschätzt. Siehe Kommentare und Links im letzten Schritt. Der Atmel Prochip Designer 5.0 ist da. Wenn Sie es erhalten, stellen Sie sicher, dass Sie auch das Service Pack 1 dafür erhalten.

Schritt 3: Programmierkabel herstellen

Programmierkabel herstellen
Programmierkabel herstellen

Am einfachsten ist es hier, den Altera Byte-Blaster work-alike von Sparkfun zu kaufen (siehe Schritt 1). Wenn 15 US-Dollar mehr sind, als Sie ausgeben möchten, können Sie den SparkFun Altera Cable-Schema verwenden oder den Atmel Cable-Schema verwenden und einen Scratch-Build verwenden. (Wenn großes Interesse daran besteht, das Kabel selbst zu bauen, kann ich einige Vorschläge machen, aber das Sparkfun-Kit scheint mir die richtige Antwort zu sein.)

Schritt 4: Programmierer Cradle erstellen

Programmierstation machen
Programmierstation machen
Programmierstation machen
Programmierstation machen
Programmierstation machen
Programmierstation machen

Schauen Sie sich den Atmel-Programmierer an. Dies ist sehr flexibel und eine großartige Option, wenn Sie das Geld haben und viel CPLD-Entwicklung planen. Altera bietet etwas Ähnliches, glaube ich. Aber ich habe einen billigeren Ansatz gewählt - darum geht es! Die Bilder zeigen Vorder- und Rückansichten der von mir gebauten Wiege. Beachten Sie die DIP-Buchsen, die als Steckbrettanschlüsse verwendet werden. Alle Pins auf einer Seite jedes Steckers sind mit Masse verbunden; Pins auf der anderen Seite werden mit Signalpins am CPLD verbunden. Ich habe auch ein paar Stromanschlüsse mitgeliefert; setzen Sie diese dort ein, wo sie passen. Die Diagramme sind eine Art Bildschema; nur die zusätzlichen Stromanschlüsse werden nicht angezeigt. Schauen Sie sich die Bilder an, um Ideen dazu zu erhalten.

Schritt 5: Aufbau der Wiege - Teil 1

Die Wiege bauen - Teil 1
Die Wiege bauen - Teil 1
Die Wiege bauen - Teil 1
Die Wiege bauen - Teil 1

Beginnen Sie mit dem Bau der Halterung, indem Sie die Steckdosen an den gewünschten Stellen einsetzen. Lassen Sie eine oder zwei freie Reihen, damit Platz für die Entkopplungskappen bleibt. Dies erleichtert auch den Anschluss an die CPLD-Signalpins. Verankern Sie die Buchsen je nach Art des verwendeten Perfboards mit etwas Lötmittel oder Epoxid. Lassen Sie oben (über Pin 1 der CPLD-Buchse) etwas mehr Platz für den JTAG-Anschluss und den Stromanschluss. Siehe die Bilder von dem, den ich gebaut habe. Führen Sie einen blanken Draht (20 Gauge oder so) um die Außenseite der Buchsen für einen Erdungsbus herum. Verlegen Sie auch den Energiebus. (Der rote Draht in den Bildern.) Beziehen Sie sich auf die Bilder, um eine Anleitung zu erhalten, aber Ihr Board wird wahrscheinlich ein wenig anders sein - und das ist in Ordnung. Löten Sie die äußeren Pins der Buchsen an den Massebus. Dies hilft, das Buskabel zu verankern.

Schritt 6: Aufbau der Wiege - Teil 2

Die Wiege bauen - Teil 2
Die Wiege bauen - Teil 2
Die Wiege bauen - Teil 2
Die Wiege bauen - Teil 2

Bringen Sie die Entkopplungskappen an und verbinden Sie sie mit den Erdungs- und Stromstiften auf jeder Seite der CPLD-Buchse. Ich schlage vor, die Drähte nach oben und über die äußeren Stiftreihen zu führen, um die inneren Reihen zu erreichen. Beziehen Sie sich auf die Pinnummerndiagramme, um die richtigen Pins zu erhalten - die Pinbelegung der CPLD-Buchse ist alles andere als offensichtlich. Lassen Sie genügend Platz, um eine Verbindung zu allen Pins zu ermöglichen, über die Sie Drähte führen. Sobald die Kappenverbindungen hergestellt sind, schließen Sie die Strom- und Erdungsschiene an. Alle roten Pins in den Diagrammen sind Vcc und sollten angeschlossen werden. Die schwarzen Pins sind geerdet und sollten auch angeschlossen werden. Auch hier ist es ein guter Ansatz, es in die Luft zu leiten. Schauen Sie sich die Bilder an, um Ideen zu erhalten.

Schritt 7: Aufbau der Wiege - Fazit

Die Wiege bauen - Fazit
Die Wiege bauen - Fazit
Die Wiege bauen - Fazit
Die Wiege bauen - Fazit
Die Wiege bauen - Fazit
Die Wiege bauen - Fazit

Verlegen Sie die JTAG-Verbindungen zu den richtigen Pins. Sehen Sie sich Ihr Programmierkabel an, um sicherzustellen, dass der Stecker richtig ausgerichtet ist. Vergessen Sie nicht den Pull-Up am TDO-Pin. Dies ist nur im Bild gezeigt und geht zwischen dem TDO-Pin und Vcc. Der letzte Schritt besteht darin, jeden I / O-Pin des CPLD mit einem Pin an den Buchsen zu verbinden. Verwenden Sie die Nummern in den Diagrammen für die Anschlüsse. Das dauert am längsten! Wenn Sie meinem Nummerierungsschema folgen, können Sie das Diagramm von oben als Richtlinie beim Anschließen Ihrer Stromkreise verwenden. Sie müssen nicht alle diese anfangs anschließen, sondern können warten, bis Sie sie für die von Ihnen entworfenen Schaltungen benötigen. Überprüfen Sie Ihre Arbeit sorgfältig. Stellen Sie sicher, dass Strom und Masse nicht kurzgeschlossen sind!

Schritt 8: Machen Sie Blinkenlights (TTL-Version)

Machen Sie Blinkenlights (TTL-Version)
Machen Sie Blinkenlights (TTL-Version)

Sie wollen natürlich sehen, wie Ihre Schaltungen funktionieren. Sie werden also ein paar Blinkenlights wollen (berühmt durch The Real Elliot). Der einzige Haken ist, dass CPLDs nicht die bulligen Ausgänge haben, die die AVR-Prozessoren haben. Verwenden Sie LEDs mit einer Nennleistung von 10 mA und verwenden Sie 1KOhm-Reihenwiderstände. Dadurch erhalten Sie klare Ausgangssignale, ohne die CPLD-Ausgänge zu belasten.

Schritt 9: Schalter herstellen

Schalter herstellen
Schalter herstellen
Schalter herstellen
Schalter herstellen

Um Ihre Schaltkreise zu stimulieren, benötigen Sie einige Schalter. Sie haben hier einige Möglichkeiten, aber die Anforderungen sind andere als bei AVR-Prozessoren. Die CPLD-Ausgänge haben nicht die eingebauten Pull-Ups und es ist nicht so einfach, das Entprellen in der Software durchzuführen. (Es ist möglich, erfordert aber Ressourcen, die Sie wahrscheinlich in Ihren Schaltkreisen verwenden möchten.) Die gezeigten DIP-Schalter bieten mehrere Schalter in einem praktischen Paket, müssen jedoch hochgezogen werden. Ich habe 1K-Klimmzüge verwendet. Pushbuttons können mit der Schaltung hergestellt werden, die Atmel für ihr Demoboard empfiehlt. Schemata finden Sie auf Seite 36 oder so. Eine andere Möglichkeit besteht darin, einen AVR-Prozessor anzuschließen, um Stimuli bereitzustellen - und sogar Antworten zu überprüfen. Aber das ist eine Übung, die dem Schüler überlassen wird.

Schritt 10: Erstellen Sie Ihre erste Schaltung

Erstellen Sie Ihre erste Schaltung
Erstellen Sie Ihre erste Schaltung
Erstellen Sie Ihre erste Schaltung
Erstellen Sie Ihre erste Schaltung

Zu diesem Zeitpunkt sollten Sie die Software bezogen und installiert haben. Folgen Sie dem ausführlichen Tutorial, um Ihre erste einfache CPLD-Schaltung zu erstellen (UND-Gatter mit zwei Eingängen; einfacher geht es nicht). Stellen Sie sicher, dass Sie das richtige Gerät auswählen (44 Pin PLCC, 5V, 1504AS [Details]) und die verfügbaren E/A-Pinnummern auswählen (ich habe 14 und 16 als Eingänge verwendet; 28 als Ausgang). Diese Details weichen leicht vom Tutorial ab, sollten Ihnen aber keine Probleme bereiten.

Schritt 11: Programmieren Sie Ihr erstes CPLD

Programmieren Sie Ihr erstes CPLD
Programmieren Sie Ihr erstes CPLD
Programmieren Sie Ihr erstes CPLD
Programmieren Sie Ihr erstes CPLD

Schließen Sie Ihr Programmierkabel an den Parallelport Ihres PCs an, schließen Sie es an Ihre Programmierstation an, schließen Sie 5 Volt an den Stromanschluss an und folgen Sie dem Tutorial, um Ihr allererstes CPLD zu programmieren. Wählen Sie die richtige Kabelversion aus. Beachten Sie, dass der Altera Byte-Blaster eine der Optionen ist.

Schritt 12: Testen Sie Ihr programmiertes Teil

Testen Sie Ihr programmiertes Teil!
Testen Sie Ihr programmiertes Teil!
Testen Sie Ihr programmiertes Teil!
Testen Sie Ihr programmiertes Teil!

Trennen Sie Ihr Programmierkabel von der Ladestation. Stecken Sie die Schalter und Blinklichter in die richtigen Pins, schalten Sie das Gerät ein und probieren Sie es aus. Da Sie mit einer einfachen Schaltung beginnen, ist das Testen keine große Herausforderung. Wenn es funktioniert, können Sie loslegen! Das Diagramm in der Draufsicht führt Sie beim Anschließen Ihrer Schalter und Blinklichter zum Testen.

Schritt 13: Das Ende und einige Webressourcen

Das Ende und einige Webressourcen
Das Ende und einige Webressourcen

Es ist nicht der Zweck dieses Tutorials, Ihnen die Verwendung von VHDL beizubringen. (Ich fange gerade erst an zu lernen, deshalb habe ich den Programmierer entwickelt, erinnern Sie sich?) Trotzdem habe ich einige sehr hilfreiche Tutorials und einige nützliche Ressourcen gefunden, auf die ich Sie hinweisen kann. Feedback und andere Vorschläge sind sehr willkommen. Beachten Sie, dass Sie das Ghetto CPLD-Entwicklungssystem auch verwenden können, um Verilog und andere CPLD-Programmiertechniken zu erlernen, die der Hardware egal sind. VHDL-Ressourcen im Web:Grundlagen und einige Links hier und hier. Links zu kostenlose Werkzeuge. Tutorials, die mir gefallen, gibt es hier und hier, aber Sie werden viele andere finden. Schließlich (vorerst) möchten Sie sich die Diskussionsgruppe ansehen. Genießen Sie, lernen Sie viel und teilen Sie Ihr Wissen.

Empfohlen: