E komplexe programméierbare Logikgerät (CPLD) ass e wesentlecht Stéck Hardware an Ärem Repertoire. Wéi den Numm et scho seet, kënnt Dir dës Chips programméieren, fir déi Logikfunktiounen ze liwweren, déi Dir braucht. Dëst kann den Ersatz vun veralteten Chips sinn, oder einfach eng Méiglechkeet fir ze léieren an verschidden Technologien auszeprobéieren. Wéi gëtt et e bessere Wee fir ze léieren, wéi CPLD ze benotzen an et auszeprobéieren?
Ech hunn e CPLD-Modul erstallt, fir en a vill Saachen unzeschléissen, dorënner och a Broutplatten ouni Läit, mee ech hunn e Feeler gemaach. Et schéngt, datt de verfügbare Steckplatz um Broutplatt ouni Läit 1,1 Zoll ass. Ech hunn d'Foussofdrock 1 Zoll breet gemaach, sou datt kee Plaz fir eng Rei Drot op béide Säiten ass. Äh.
Mee loosst mech zeréckkommen a méi iwwer dat weisen, wat ech maachen, ech wëll eng programméierbar Logik maachen, déi als Bausatz gebaut ka ginn, einfach doheem geléit ka ginn, an engem Circuit programméiert ka ginn a mat 3,3 oder 5 Volt funktionéiere kann.
Fir e liicht ze léiten Kit ze realiséieren, hunn ech eng al CPLD Komponent benotzt, déi och a 3,3V an 5V Versiounen verfügbar ass, a seng Programméierung onofhängeg vun der Stroumversuergung behält. D'Logik selwer ass en CPLD IC aus der Altera Max Serie, deen an zwou Versiounen verfügbar ass, gëeegent fir Leiterplatten mat 32 oder 64 Makrozellen. Makrozellen sinn déi grondleeënd logesch Bausteng, déi mat logeschen "Termen" programméiert ginn an dann duerch programméierbar Verbindungen mat anere Makrozellen verbonne sinn.
Wann een sech de Schema ukuckt, gesitt een, datt en net vill Inhalt huet: am Fong de CPLD, de Programméierungsschaltkrees am Circuit an den Oszillator, deen d'CPLD-Logik undreiwt.
Dësen Deel gëtt EPM7032 an EPM7064 genannt a benotzt e 44-Pin Plastik-Lead-Chip-Carrier (PLCC), heiansdo och J-Lead genannt wéinst der J-Form vum Lead. Dëse Pak kann an eng Duerchgangs-Lach-Steckdos agebaut oder direkt un d'PCB geléit ginn.
Enthält en integréierten Oszillator, sou datt de CPLD Operatiounen stateless ausféiere kann a séier Zähler eleng erstellen kann, ouni datt eng extern Auer gebraucht gëtt. Wann eng extern Auer verfügbar ass, kann d'Highspeed-Auer um Modul benotzt ginn, fir en Auer-Event op all steigender oder fallender Flank vun der externer Auer ze erstellen, an trotzdem d'CPLD/FPGA-Richtlinne respektéieren, dat heescht, Dir sollt wierklech dat internt globalt Auernetz benotzen amplaz vun "asynchronen" Undriff um Auerinput. Déi nominell Stroumversuergungsspannung vun dësem Oszillator läit tëscht 1,8 an 5,5 Volt.
Wann Dir Iech d'Video ukuckt, gesitt Dir, datt ech meng perséinlech Virléiften iwwer d'Handhabung vum "INH"-Pin um Oszillator diskutéieren; einfach ausgedréckt, nodeems ech gepréift hunn, ob d'Spezifikatiounsblat legal ass, loossen ech et meeschtens schwiewen.
Wann ech mat sou Funktiounen ze dinn hat, koumen mir ënner anerem meng Ofneigung drun, d'Input-Pins direkt un d'Stroumleitungen unzeschléissen (wann et méiglech ass). Dat heescht, ech léiwer Serienwidderstänn ze benotzen, fir de Stroum während Transienten ze limitéieren, och wann dat net néideg sollt sinn.
Iwwer d'Jore sinn ech e puer Problemer an der Produktioun (grouss Chargen) gesinn, an heiansdo hunn Saachen ewéi Power Cycling et erlaabt, datt d'Pins, déi direkt un d'Stroumleitung ugeschloss sinn, eng méi héich Spannung hunn ewéi de Chip selwer, wat schlecht ass. Schlussendlech verbënnt de Pin iwwer e Widderstand (egal ob Stroum oder Mass) un d'Stroumleitung, an d'Leit kënnen hir Meenung änneren an de Pin spéider benotzen. Dëst ass besonnesch wouer a menger Erfahrung mat onbenotzten Dieren, Dir wësst wahrscheinlech, datt dës Dieren ni schwiewend oder net ugeschloss solle sinn. Mat engem Pull-up Widderstand kënnt Dir d'Signal uschléissen an de Gate benotzen, ouni Kofferspuren ze schneiden.
Den 10-Pin-Stecker an e puer Widerstänn bilden de Programméierungsschaltkrees. Wann all d'Widerstänn Pull-up-Widerstänn sinn, géif ech e Widerstännnetz benotzen, awer leider ass ee vun hinnen geerdet.
Fir sou en onofhängege CPLD ze programméieren, brauch een en dedizéierte Programméierer. Dat ass einfach fir mech ze soen, well ech normalerweis e puer nieft mir leien hunn, awer wann Dir keen hutt, wäert et net ze vill Péng maachen, an d'Spill eranzeklammen. Den approuvéierten "Altera USB Blaster" gëtt fir 50 Dollar verkaaft a kann op Digikey an aner Plazen kaaft ginn. Ech hunn e puer Klonen vun Ebay, dorënner e Klon, deen Altera, Xilinx a Lattice gläichzäiteg ënnerstëtzt. Et gëtt e Projet a Code am Internet, mat deem ee säin eegene Klon maache kann, ech wäert en a menger Lëscht vu méigleche Videoe fir de Projet fir d'Erstelle vu Programméierklonen opzielen. Ech wäert och en Design vum Schëld weisen, an deem d'Motherboard, den Arduino, de PIC, etc. programméiert kënne ginn.
D'Software, déi néideg ass fir d'CPLD ze kompiléieren a programméieren, ass gratis vun Altera verfügbar, awer dësen ale Bestanddeel erfuerdert déi al Versioun 9.1. Déi gutt Noriicht ass, datt et meng Liiblingsversioun war. Si hat en intuitive Timing-Analysator, awer dee gouf an enger spéiderer Versioun ewechgeholl.
D'PCB ass en einfachen zweesäitegen Design, soulaang d'Leiterplatte drop passt, benotzen ech meeschtens Koffer fir d'Äerdung an heiansdo fir d'Stroumversuergung. Heiansdo gëtt d'Gëssen sou futti, datt et tatsächlech Problemer oder schlampig Endresultater verursaache kann, dofir ass Koffergëssen erëm en Instrument, awer et muss geréiert ginn.
Hautdesdaags enthalen vill (wann net déi meescht) CAD-Softwarepakete 3D-Vue vum fäerdege Produkt, obwuel d'Genauegkeet vun de Biller nëmme sou genee ass wéi d'3D-Modeller, déi benotzt gi fir d'Deeler duerzestellen. Hei kënnt Dir gesinn, wou ech den 3D-Modell fir de 44-Pin-Steckdous, de Programméierungsstecker an den Oszillator gewielt hunn. Hei sinn e puer 3D-Pakete, déi ech gär benotzen:
Vill Firmen hunn och 3D-Modeller vun hire Komponenten. Molex ass just ee Beispill vun enger Firma, déi an dësem Beräich gutt Aarbecht gemaach huet.
De Feeler, deen ech gemaach hunn, beaflosst d'Funktioun net sou wéi d'Ästhetik, an et ass net den Haaptproblem, dat heescht, et ass net gëeegent fir e Broutbrett ouni Läit.
Wéi ech geduecht hunn, datt ech den Design mat iergendeen deele kéint, war ech direkt net zefridden mat de schematesche Symboler vum CPLD an dem Pinout vum 40-Pin-Stecker, wat säi Gesamtformat ass. Ech hunn e 40-Pin-Steckersymbol mat zwou Reien geholl an et op e Format vun 1 Zoll ugepasst, awer d'Pinnummeren sinn net 1, 2, 3, 4... mee si sinn op der Säit mat 1 nummeréiert wéi en DIP-Package 3, 5, 7... genau wéi Flabbkabelstecker. Dofir ass et e Format, deen net intuitiv ass, fir ze bestëmmen, wéi een un de Modul uschléisst a fir d'Feeler ze léisen.
Ähnlech sinn d'CPLD-Pin-Zouweisungen e bësse verwirrend, an ech hunn eng Rei vun Utilitys benotzt, déi op der Boundary Scan Description Language (BSDL) vertrauen, fir Symboler ze kreéieren. Déi meescht grouss Ubidder hunn BSDL-Dateie fir hir Mainstream-Komponenten verfügbar, déi et erlaben, (semi-)automatesch Symboler a Pakete ze kreéieren. Wéi all Automatiséierung muss et als Tool ugesi ginn a kann weider Behandlung erfuerderen, fir déi bescht Resultater ze kréien. An dësem Fall hunn ech d'Pins alphabetesch opgezielt, wat bal zoufälleg ass, wann een d'Pins op der Board verfollegt. Ech kann nëmme soen, datt ech deen Dag ganz ängschtlech war.
Dir bezuelt iergendwann ënnerwee fir dës Ofkierzungen. Wann ech dëse Modul änneren, bestëmmen ech eng Pin-Placement déi zum Deel selwer passt, sou datt et sou einfach ass wéi op d'Schema-Symbol ze kucken, wou Dir Är Oszilloskop-Sond placéiere sollt.
Wann een Leiterplatten benotzt, ginn et aner Verbesserungen, déi haaptsächlech ästhetesch oder nëtzlech sinn. Den Indikator fir Pin 1 sollt a verschiddenen Apparater méi heefeg sinn, an ech léiwer ëmmer e einfache Massepunkt fir d'Mass vum Oszilloskop oder de VOM-Lead unzeschléissen. Ech kéint dëst ergänzen andeems ech en Zwei-Pin-Stecker derbäisetzen, sou datt Stroum a Masse direkt op d'Plat ugeluecht kënne ginn, anstatt un déi ënnescht Pins ze klemmen.
Ier ech d'Leiterplat änneren, wëll ech sécher sinn, datt se ënner physeschen a ästhetesche Problemer richteg funktionéiert. Nodeems ech den Oszillator ugeschalt hat an iwwerpréift hunn, datt en och richteg funktionéiert, hunn ech de Programméierer ugeschloss. Och wann déi 3,3V Versioun méi nei ass wéi d'Programméiersoftware, huet se de CPLD erkannt an als "onbekannten" Apparat ugewisen.
Duerno hunn ech en Zähler a Quartus erstallt an him PIN-Nummeren zougewisen. Déi séier Kompiléierung an den Download an d'Zählerfunktioun, déi vum Oszilloskop ze gesi gëtt, bestätegen, datt den Design machbar ass.
De Schnelltestschaltkrees a Verilog ass ganz einfach. De Code ass hei ënnendrënner opgezielt. Dir kënnt eng ZIP-Datei mat dem Schema an dem Verilog-Testschaltkrees als Quartus II-Projet eroflueden (Versioun 9.1 erfuerderlech).
Wéi ech scho gesot hunn, wäert ech eng zweet Revisioun vun der Leiterplatine maachen, fir méi Opmierksamkeet op d'Detailer ze leeën, déi néideg sinn, wann ech den Design deelen oder eng Rei vu Problemer léisen. Well ech d'Breet vum ënneschte Stecker op 0,9 Zoll oder manner muss astellen, kann ech se weiderhin op 0,6 Zoll astellen, wat e Standard "breet" DIP-Package ass. Dëst ze maachen heescht, datt déi ënnescht Pins aus dem CPLD-Socket-Foussofdrock erausstinn loossen. Ech géif dat an enger Produktiounssituatioun net maachen, well et deemools manuell zesummegesat gouf, awer ee vun den Ziler war et, e Handlötkit ze maachen. De Kompromëss beim Handlöten ass, datt den Oszillator an engem SMD-Uewerflächenmontagegehäuse muss sinn, d'Duerchgangsversioun ass ganz grouss an ënnerstëtzt normalerweis net de Spannungsberäich, deen ech wëll.
Ass et méiglech, dës Moduler ze benotzen, fir e komplette einfache Computer ze bauen? Ech mengen, ech muss nach méi Späicherplatz hunn.
Lol... jo, et hänkt dovun of, wat fir eng Zort Computer et ass. Allerdéngs sinn "richteg" Mikrocontroller/Mikrocomputer vun der "Pin Bonding" vum Modul beaflosst, dat heescht, datt een net genuch Terminologie aus dem Modul kritt, fir eppes ze nëtzleches ze maachen.
Ech hunn en komplette NTSC Kamera-Timing- a Modus-Controller mat enger Gréisst vu 64 gebaut, sou datt kee Prozessor gebraucht gëtt.
De Strukturverilog an den HDL, déi am Buch Nand zu Tetris benotzt ginn, sinn méi oder manner d'selwecht.
Firwat sinn Deeler duerch Lächer? Schweessen vun 0805 ass einfach! Elo ass d'Zäit fir all Basteler dës Fäegkeet ze léieren.
Wann ech déi iewescht Dous iwwer d'Pins leeën, déi vun ënnen geléit sinn, da kann ech "6 Zentren" (simuléiert e 40-Pin Chip) oder Diagonal, etc. benotzen. Dëst wäerte strikt manuell Komponenten fir d'Léitung vun den ënneschte Kabelen sinn. Déi iewescht Dous hannert de Féiss.
Mee et ass schwéier fir Ufänger, et vun ënnen ze léiten. Wann ech Header fir d'PCB vum Breadboard léiten (dës bëlleg SMD-Adapterplatten, déi een op eBay benotze kann, kënne fir Prototyping benotzt ginn), setzen ech d'Header an d'Breadboard, dann leeën ech d'PCB drop, an dann kann ech einfach léiten. Et ass ganz gëeegent fir Breadboards. Wann een et vun ënnen léite muss, ass et nach méi schwéier.
Wann de CPLD an der Mëtt ass (vläicht méi einfach ze verdrahten), kann en diagonal ouni Iwwerlappung installéiert ginn, et gëtt 4 Reien, oder de CPLD kann op enger Säit sinn:
Merci fir den Tipp, de Stecker virum Läten an d'Breadboard ze setzen. Mäin ass e bëssen onstabil.
Wéi wier et mat de Breadboard-Pins am DIP-Format op engem Enn an dem "Dongle"-Typ vun der Chipsocket selwer op deem aneren Enn? De Chip kann um Enn vum Breadboard opgehaange ginn. D'Verleeung wäert enk sinn.
|####### ******************** |. Jo, ech hunn decidéiert, d'"gratis" Versioun vun Altera ze benotzen, genee wéi Xilinx a Lattice "gratis" Versiounen hunn. Ech muss de Zyklus mam Al Williams ofschléissen, fir ze verstoen, wat all oppen Ënnerstëtzung ënnerstëtzt, wat déi spezifesch Attributer vun der Apparatserie muss enthalen. Trotzdeem hunn ech vill mat der gratis Versioun gemaach.
Jo, Dir weist, datt d'CPLD sech mat de Pins iwwerlappt, mengen ech. Wann ech et richteg verfollegen, kéint dat ausgesinn wéi Rev 2. Beim Design fir (Massen-)Produktioun sinn ech ëmmer allergesch géint de Schrëtt "Handlötmontage", well se sech iwwerlappen (eigentlech d'Lötstifte op der Net-Komponentesäit). ) Ass schonn eng handgeléit Komponent), awer dëst ass just e klenge Bausatz, keen produktiounsorientéierten Design. Ech hunn just e puer Gewunnechten, déi a mengem Alter schwéier lass ze ginn sinn. 
Ech mengen, eng T-fërmeg Leiterplat mat CPLD a passive Komponenten mat engem breede T-fërmegen Deel wäert ganz nëtzlech sinn, wann se um Rand vum Breadboard hänkt. Eppes ähnleches wéi den Adafruit RasPi T-Cobbler (http://www.adafruit.com/products/2028). Dëst wäert de gréissten Deel vun der Breadboardfläch fräi maachen.
Leider wäert d'Astellung seng Notzung a Säiteprojeten staark limitéieren, genee wéi all déi Funktiounsgeneratoren, déi op XR2206 an ICL8038 baséieren.
Interessant Iddi. Ech hunn dës zwee Chips gär. CPLD ass net veraltet, et ass just eng méi bëlleg Manéier fir en bei 3,3V ze kafen.
Wat däi "Quatsch" ugeet... du hues wierklech keen neien Layout gemaach fir et op de Breadboard ze setzen. Einfach als éischt den Drot op de Breadboard leeën, an dann den CPLD op de Drot leeën. Oder, wann s de d'Stroum- a Massestreifen vun engem dovunner ofhuele kanns, benotz 2 Breadboards.
Iwwer Altium an Eagle. Hutt Dir schonn iwwer KiCad nogeduecht? Et huet keng Aschränkungen, datt Dir Altium dem Eagle virzitt, an et generéiert standardméisseg DRC-Feeler fir all net verbonne Pins. Wann Dir wierklech e Pin opmaache wëllt, musst Dir et soen. (Vläicht nëmme fir Input, net fir Output, an et gouf nach net gepréift). Eng aner flott Feature ass, datt et ganz einfach ze léieren ass. Et huet just en Nomëtteg gedauert, an dat exzellent Aféierungshandbuch huet mech ugefaangen.
Ech léiwer déi (gréisser Deeler) SMD iwwer dem Duerchgangslach. Si si méi einfach ze benotzen. Dir musst d'PCB net dauernd dréinen. (Et goufen e puer domm Feeler wéinst der Spigelung gemaach...). An Dir musst d'Leedung vum Widderstand net ofschneiden. Wann Dir en Design deelt, kënne verschidde Päckchen praktesch op enger PCB oder engem eenzegen Deel placéiert ginn. SMD-Widderstand TH. (Et mécht den Layout e bësse méi komplizéiert).
Ech hunn "KiCad Getting Started" am PDF-Format benotzt. Déi al Versioun, déi ech benotzt hunn, ass 29 Säiten, an déi lescht Versioun huet 52 Säiten. Dir fannt et an aneren Tutorials (inklusiv Videolinks): http://kicad-pcb.org/help/tutorials/
Ech weess, datt de [Chris Gemmell] vun Hackaday an The Amp Hour eng Serie iwwer Kicad gemaach huet http://kicad-pcb.org/help/tutorials/
Kicad kéint nëtzlech sinn, loosst mech kucken, wat an der Rev 2 geschitt. Merci fir Är Virschléi. Net verbonnen Entréeën sinn eng gutt Saach fir DRC (ERC), a fir Stecker an aner Saachen, déi se mëll oder IO halen, kënnen déi meescht CAD-Trennmeldungen normalerweis vermeit ginn.
Maacht e séieren Test a werft de Connector an eng eidel Tabelle, fiert Annotatiounen an DRC aus. Et huet mir DRC-Feeler fir all Pin ginn. Wéi och ëmmer, bekannt net verbonne Pins ze markéieren ass ganz einfach.
Op passiv gesat. Ech muss sichen (Komponent änneren -> Mam Bibliothéikseditor änneren). De Bibliothéikseditor mécht Är Komponent an engem separaten Fënster op a luet se, Dir kënnt all Deel vun der Komponent kontrolléieren oder änneren. Déi geännert Komponent kann an Ärem Schema gespäichert oder aktualiséiert ginn. Dëst mécht et ganz einfach, Komponenten z'änneren. D'Bibliothéik ass mir egal. Zum Beispill, wann Dir cpld benotzt, wëllt Dir de Pins bedeitend Nimm zouweisen. Méi wichteg ass, datt et eng gutt Interface gëtt fir Är eege Komponenten ze designen.
Am KiCad sengem ERC sinn "net verbonnen" Pins eng aner Zort vu Pin wéi "passiv Pins", an all "net verbonnen" Pins generéieren Feeler. D'Funktiounsweis vun ERC kann einfach un Är eege Virléiften ugepasst ginn: Tools -> Electrical Rules Checker -> Optiounen.
Zäitpunkt vun der Verëffentlechung: 18. November 2021





