Inhoudsopgave:

Ghetto Programmable Logic (CPLD) ontwikkelingssysteem - Ajarnpa
Ghetto Programmable Logic (CPLD) ontwikkelingssysteem - Ajarnpa

Video: Ghetto Programmable Logic (CPLD) ontwikkelingssysteem - Ajarnpa

Video: Ghetto Programmable Logic (CPLD) ontwikkelingssysteem - Ajarnpa
Video: Programmable Logic II: Program a CPLD from start to finish. 2024, Juli-
Anonim
Ghetto Programmable Logic (CPLD) ontwikkelingssysteem
Ghetto Programmable Logic (CPLD) ontwikkelingssysteem

De afgelopen maanden heb ik genoten van het Ghetto Development System voor de AVR-processors. In feite is deze tool van bijna nul dollar zo fascinerend en nuttig gebleken dat ik me afvroeg of het mogelijk was om het concept ook uit te breiden naar FPGA/CPLD-ontwikkeling. (FPGA: Field Programmable Gate Array. CPLD: Complex Programmable Logic Device.) Dus ik deed wat op het web en kwam met een ontwikkelsysteem voor Atmel CPLD's. Vergelijking met Altera-apparaten laat zien dat hun pinout hetzelfde is (binnen de beperkingen die ik hieronder beschrijf), dus ze zullen ook werken. Door het ontwikkelbord en de interfacekabel te bouwen die ik zal presenteren, en vervolgens de tools te downloaden, kunt u uw eigen CPLD-toepassingen ontwikkelen. Houd rekening met de volgende beperkingen en beperkingen. Ik heb geprobeerd om capaciteit en eenvoud in evenwicht te brengen, zodat u iets kunt bouwen waar u van kunt genieten en waarvan u kunt leren. Alleen 5V-apparaten. Het systeem uitbreiden om extra spanningen te dekken (3,3 V, 2,5 V, 1,8 V worden ondersteund door Atmel-apparaten in dezelfde familie) is niet moeilijk, maar het bemoeilijkt zowel het ontwikkelbord als de programmeerkabel. Laten we het voor nu overslaan. Merk op dat u een 5V-voeding aan het bord moet leveren. Alleen 44-pins PLCC. Concreet heb ik de Atmel ATF1504AS geprogrammeerd. Het Ghetto CPLD-concept kan eenvoudig worden uitgebreid naar andere Atmel-apparaten, maar dit apparaat leek een goed compromis tussen prijs, gebruiksgemak en mogelijkheden. Het concept moet zich ook uitbreiden naar andere apparaten zoals die van Altera, Xilinx, Actel, enz. In feite zullen de Max7000-familie EPM7032 en EPM7064 in dezelfde socket werken zolang u de 44-pins PLCC-versies gebruikt. Tot nu toe heb ik alleen de Atmel-programmeerkabel gebruikt, maar de Altera Byte-Blaster wordt ondersteund door de Atmel-software en zou ook prima moeten werken. Het is eigenlijk een iets eenvoudiger ontwerp dan de Atmel-kabel. (Ik heb de Atmel-versie gebouwd en het werkt, dus ik heb de Altera-versie niet geprobeerd.) SparkFun biedt een $ 15-versie van de Altera-kabel. Aangezien dit voor zowel Atmel als Altera werkt, raad ik het aan. Als je gaat ontwikkelen met Altera-onderdelen, wil je ook de Altera-software hebben. Ik heb dit niet echt geprobeerd, maar ik kan geen reden bedenken dat het niet zou werken. De snelheid is beperkt. Aangezien het Ghetto CPLD-ontwikkelingssysteem is gebouwd met handbedrading en geen grondvlak, verwacht geen betrouwbare werking bij snelheden van meer dan een paar megahertz. Zelfs dat is niet gegarandeerd, uw kilometerstand kan variëren! Als u prototypehardware bouwt met een grondvlak, kan uw CPLD natuurlijk prima werken bij hogere snelheden. Verwacht alleen niet dat het snel zal worden gemonteerd in het Ghetto Development System.

Stap 1: Ga onderdelen bestellen

Ga onderdelen bestellen
Ga onderdelen bestellen

Je hebt een 44-pins plcc-socket nodig, enkele ontkoppelingsdoppen, enkele niet-geprogrammeerde CPLD's, sockets voor breadboard-verbindingen, een pull-up-weerstand en misschien een perf-bord om het op te bouwen. Als u dit in uw junkbox heeft, kunt u een paar dollar besparen. Voor uw gemak zijn hier de Digikey-onderdeelnummers: CONN PLCC SOCKET 44POS TIN PN: 1-822473-4-ND SOCKET IC OPEN FRAME 14POS.3" PN: 3M5462-ND Aantal: 2SOCKET IC OPEN FRAME 18POS.3" PN: 3M5464-ND Aantal: 2CAP ELECT 10UF 50V SU BI-POLAR PN: P1280-ND Aantal: 1, C1CAP CER.10UF 50V 20% DISC RAD PN: 478 -4275-1-ND Aantal: 4, C2-C5RES METAALFILM 5.10K OHM 1/4W 1% PN: P5.10KCACT-ND PC BOARD FR4 1-ZIJDE PPH 4.0X4.0 PN: V2010-ND IC CPLD 64 MACROCELL 10NS 44PLCC PN: ATF1504AS-10JC44-ND Een paar onderdelen kunnen minimale hoeveelheden hebben, maar zouden nog steeds redelijk goedkoop moeten zijn. Als u enkele knipperlichten wilt bouwen (stap 8) of een set schakelaars wilt maken (stap 9) wilt u misschien bestellen deze ook. Houd er rekening mee dat Digikey minimaal $ 25 heeft om administratiekosten te vermijden, dus misschien wilt u een paar extra ongeprogrammeerde CPLD's of een AVR-processor of twee voor de lol. Ik raad u aan de Altera-programmeerkabel van SparkFun te kopen. Hier zijn de onderdeelnummers. Pak ook de kabel en connector. (Anders bestelt u onderdelen voor de kabel bij Digikey als u er zelf een bouwt.) Altera FPGA-compatibele programmer PN: PGM-087052x5-pins IDC-lintkabel PN: PRT-085352x5-pins omhulde header PN: PRT-08506

Stap 2: Software downloaden en installeren

Software downloaden en installeren
Software downloaden en installeren

Ik gebruik momenteel de Atmel Prochip Designer 5.0 gereedschapsketting. Deze tool vereist dat u zich registreert bij Atmel en hun officiële aanvraagformulier invult. Ik vertelde hen dat ik een ontwerpingenieur was, momenteel werkloos, en mijn primaire doel was om hun apparaten en VHDL te leren kennen (allemaal waar, tussen haakjes). Zij keurden de vergunningaanvraag goed. Het enige nadeel is dat de licentie maar 6 maanden geldig is. Ik hoop een toolketen in het publieke domein te vinden tegen de tijd dat deze verloopt. Altera heeft ook een gereedschapsketting die ik kan bekijken. Om het even welke suggesties zullen worden gewaardeerd. Zie opmerkingen en links in de laatste stap. De Atmel Prochip Designer 5.0 is hier. Als je het krijgt, zorg er dan voor dat je ook het Service Pack 1 ervoor krijgt.

Stap 3: Programmeerkabel maken

Programmeerkabel maken
Programmeerkabel maken

De eenvoudigste benadering hier is om de Altera Byte-Blaster op dezelfde manier te kopen bij Sparkfun (zie stap 1). Als $ 15 meer is dan je wilt uitgeven, dan kun je het SparkFun Altera Cable-schema gebruiken of het Atmel Cable-schema gebruiken en er zelf een maken. (Als er veel interesse is om de kabel te scratchen, kan ik enkele suggesties doen, maar de Sparkfun-kit lijkt mij het juiste antwoord.)

Stap 4: Programmer Cradle maken

Programmeursleeg maken
Programmeursleeg maken
Programmer Cradle maken
Programmer Cradle maken
Programmeursleeg maken
Programmeursleeg maken

Kijk eens naar de Atmel-programmeur. Dit is zeer flexibel en is een geweldige optie als je het geld hebt en van plan bent veel CPLD-ontwikkeling te doen. Altera biedt iets soortgelijks, geloof ik. Maar ik koos voor een goedkopere aanpak - daar gaat het om! De foto's tonen voor- en achteraanzichten van de wieg die ik heb gebouwd. Let op de DIP-sockets die worden gebruikt als breadboard-connectoren. Alle pinnen aan één kant van elke connector zijn verbonden met aarde; pinnen aan de andere kant verbinden met signaalpinnen op de CPLD. Ik heb ook een paar stroomaansluitingen meegeleverd; zet deze in waar ze passen. De diagrammen zijn een soort picturale schema's; alleen de extra stroomaansluitingen worden niet getoond. Kijk naar de foto's voor ideeën hierover.

Stap 5: De wieg bouwen - deel 1

De wieg bouwen - Deel 1
De wieg bouwen - Deel 1
De wieg bouwen - Deel 1
De wieg bouwen - Deel 1

Begin met het bouwen van de wieg door de stopcontacten op de plaatsen te plaatsen waar u ze wilt hebben. Laat een rij of twee vrij zodat er ruimte is voor de ontkoppelingskappen. Dit maakt het ook gemakkelijker om verbinding te maken met de CPLD-signaalpinnen. Veranker de sockets met een beetje soldeer of epoxy, afhankelijk van het type perf-board dat u gebruikt. Laat wat extra ruimte aan de bovenkant (boven pin 1 van de CPLD-aansluiting) voor de JTAG-connector en de stroomconnector. Raadpleeg de foto's van degene die ik heb gebouwd. Leid een blote draad (20 gauge of zo) rond de buitenkant van de stopcontacten voor een grondbus. Leid ook de stroombus. (De rode draad op de foto's.) Raadpleeg de foto's voor wat hulp, maar je board zal er waarschijnlijk een beetje anders uitzien - en dat is prima. Soldeer de buitenste pinnen van de sockets aan de grondbus. Dit zal helpen de busdraad te verankeren.

Stap 6: De wieg bouwen - deel 2

De wieg bouwen - deel 2
De wieg bouwen - deel 2
De wieg bouwen - deel 2
De wieg bouwen - deel 2

Installeer de ontkoppelingsdoppen en sluit ze aan op de grond- en voedingspinnen aan elke kant van de CPLD-aansluiting. Ik stel voor om de draden omhoog en over de buitenste rijen pinnen te leiden om de binnenste rijen te bereiken. Raadpleeg de diagrammen met pinnummers om de juiste pins te krijgen - de pin-out van de CPLD-socket is verre van duidelijk. Laat voldoende ruimte over om verbinding te maken met eventuele pinnen waar u draden over voert. Zodra de kapverbindingen zijn gemaakt, sluit u de voedings- en aardingsbus aan. Alle rode pinnen op de diagrammen zijn Vcc en moeten worden aangesloten. De zwarte pinnen zijn geaard en moeten ook worden aangesloten. Nogmaals, het in de lucht leiden is een goede aanpak. Kijk naar de foto's voor ideeën.

Stap 7: De wieg bouwen - Conclusie

De wieg bouwen - Conclusie
De wieg bouwen - Conclusie
De wieg bouwen - Conclusie
De wieg bouwen - Conclusie
De wieg bouwen - Conclusie
De wieg bouwen - Conclusie

Leid de JTAG-verbindingen naar de juiste pinnen. Bekijk uw programmeerkabel om er zeker van te zijn dat de connector correct is georiënteerd. Vergeet de pull-up op de TDO-pin niet. Dit wordt alleen op de afbeelding getoond en gaat tussen de TDO-pin en Vcc. De laatste stap is om elke I/O-pin van de CPLD aan te sluiten op een pin op de sockets. Gebruik de nummers in de schema's voor de aansluitingen. Dit duurt het langst! Als u mijn nummeringsschema volgt, kunt u het Top View-diagram als richtlijn gebruiken bij het aansluiten van uw circuits. Je hoeft deze in eerste instantie niet allemaal aan te sluiten, je kunt wachten tot je ze nodig hebt voor de circuits die je ontwerpt. Controleer je werk goed. Zorg ervoor dat stroom en aarde niet worden kortgesloten!

Stap 8: Blinkenlights maken (TTL-versie)

Maak Blinkenlights (TTL-versie)
Maak Blinkenlights (TTL-versie)

Je wilt natuurlijk dat je circuits werken. Dus je wilt wat knipperlichten (beroemd gemaakt door The Real Elliot). Het enige nadeel is dat CPLD's niet de krachtige uitgangen hebben die de AVR-processors hebben. Gebruik LED's die geschikt zijn voor 10ma en gebruik 1KOhm-serieweerstanden. Deze geven u duidelijke uitgangssignalen zonder de CPLD-uitgangen te belasten.

Stap 9: Maak schakelaars

Wissels maken
Wissels maken
Wissels maken
Wissels maken

Om je circuits van prikkels te voorzien, heb je wat schakelaars nodig. Je hebt hier enkele opties, maar de vereisten zijn anders dan voor AVR-processors. De CPLD-uitgangen hebben niet de ingebouwde pull-ups en het is niet zo eenvoudig om softwarematig te debouncen. (Het is mogelijk, maar het kost middelen die u waarschijnlijk in uw circuits wilt gebruiken.) De getoonde DIP-schakelaars bieden verschillende schakelaars in een handig pakket, maar moeten worden uitgetrokken. Ik heb 1K pull-ups gebruikt. Drukknoppen kunnen worden gemaakt met behulp van het circuit dat Atmel aanbeveelt voor hun demobord. Schema's staan op pagina 36 of zo. Een andere optie is om een AVR-processor aan te sluiten om prikkels te geven - en zelfs om reacties te controleren. Maar dat is een oefening die aan de student wordt overgelaten.

Stap 10: Maak je eerste circuit

Creëer je eerste circuit
Creëer je eerste circuit
Creëer je eerste circuit
Creëer je eerste circuit

Tegen die tijd zou u de software moeten hebben verkregen en geïnstalleerd. Volg de grondige, gedetailleerde zelfstudie om uw eerste eenvoudige CPLD-circuit te maken (twee-ingangen EN-poort; veel eenvoudiger wordt niet). Zorg ervoor dat u het juiste apparaat selecteert (44-pins PLCC, 5V, 1504AS [details]) en kies I/O-pinnummers die beschikbaar zijn (ik gebruikte 14 en 16 als invoer; 28 als uitvoer). Deze details wijken enigszins af van de tutorial, maar zouden u geen problemen moeten opleveren.

Stap 11: Programmeer uw eerste CPLD

Programmeer uw eerste CPLD
Programmeer uw eerste CPLD
Programmeer uw eerste CPLD
Programmeer uw eerste CPLD

Sluit uw programmeerkabel aan op de parallelle poort van uw pc, sluit deze aan op uw Programmer Cradle, sluit 5 Volt aan op de Power-connector en volg de tutorial om daadwerkelijk uw allereerste CPLD te programmeren. Selecteer de juiste kabelversie. Merk op dat de Altera Byte-Blaster een van de opties is.

Stap 12: Test uw geprogrammeerde onderdeel

Test uw geprogrammeerde onderdeel!
Test uw geprogrammeerde onderdeel!
Test uw geprogrammeerde onderdeel!
Test uw geprogrammeerde onderdeel!

Koppel uw programmeerkabel los van de houder. Sluit de schakelaars en knipperlichten aan op de juiste pinnen, schakel de stroom in en probeer het uit. Omdat je begint met een eenvoudig circuit, is testen geen grote uitdaging. Als het werkt, ben je aan de slag! Het bovenaanzicht diagram zal u begeleiden bij het aansluiten van uw schakelaars en knipperlichten voor het testen.

Stap 13: Het einde en enkele webbronnen

Het einde en enkele webbronnen
Het einde en enkele webbronnen

Het is niet de bedoeling van deze tutorial om u te leren hoe u VHDL gebruikt. (Ik begin net te leren, daarom heb ik de programmeur gemaakt, weet je nog?) Dat gezegd hebbende, ik heb verschillende zeer nuttige tutorials en enkele nuttige bronnen gevonden waar ik je naar kan wijzen. Feedback en andere suggesties worden zeer op prijs gesteld. Merk op dat je ook het Ghetto CPLD-ontwikkelingssysteem kunt gebruiken om Verilog en andere CPLD-programmeertechnieken te leren, de hardware maakt het niet uit. VHDL-bronnen op het web:Basis en enkele links hier en hier. Links naar gratis gereedschap. Tutorials die ik leuk vind, zijn hier en hier, maar je zult er nog veel meer vinden. Tot slot (voorlopig) wil je de discussiegroep eens bekijken. Geniet, leer veel en deel wat je weet.

Aanbevolen: