zif-ingo 14-pingla

Kompleksa programebla logika aparato (CPLD) estas esenca peco de aparataro en via repertuaro. Kiel la nomo sugestas, vi povas programi ĉi tiujn ĉipojn por provizi la logikajn funkciojn, kiujn vi bezonas. Tio eble anstataŭigas malmodernajn ĉipojn, aŭ simple maniero lerni kaj provi malsamajn teknologiojn. Kio estas pli bona maniero lerni ol uzi CPLD kaj provi ĝin?
Mi kreis CPLD-modulon por povi konekti ĝin al multaj aferoj, inkluzive de senlutaj tranĉtabuloj, sed mi fuŝis. Ŝajnas, ke la disponebla spaco por konektilo sur la senluta tranĉtabulo estas 1,1 coloj. Mi faris la piedsignon 1 colon larĝa, lasante neniun spacon por vico da dratoj ambaŭflanke. Hm.
Sed permesu al mi reveni kaj montri pli pri tio, kion mi faras. Mi volas krei programeblan logikon, kiu povas esti konstruita kiel ilaro, facile lutata hejme, programita en cirkvito, kaj funkcii je 3,3 aŭ 5 voltoj.
Por realigi facile luteblan ilaron, mi uzis malnovan CPLD-komponenton, kiu ankaŭ haveblas en 3,3v kaj 5v versioj, kaj konservos sian programadon sendepende de la elektroprovizo. La logiko mem estas CPLD-IC el la Altera Max-serio, havebla en du versioj, taŭgaj por cirkvitplatoj kun 32 aŭ 64 makroĉeloj. Makroĉeloj estas la bazaj logikaj konstrubriketoj, kiuj estas programataj uzante logikajn "terminojn" kaj poste interkonektitaj kun aliaj makroĉeloj per programeblaj interkonektoj.
Rigardante la skemon, vi povas vidi, ke ĝi ne havas multan enhavon: baze la CPLD, la en-cirkvitan programan cirkviton kaj la oscilatoron, kiu pelas la CPLD-logikon.
Ĉi tiu parto nomiĝas EPM7032 kaj EPM7064, uzante 44-pinglan plastan plumban ĉipportilon (PLCC), foje nomatan J-plumbo pro la J-formo de la plumboplumbo. Ĉi tiu pakaĵo povas esti enigita en tratruan ingon aŭ rekte lutita al la PCB.
Enhavas enkonstruitan oscilatoron, do la CPLD povas plenumi operaciojn laŭŝtate kaj krei rapidajn nombrilojn memstare sen bezono de ekstera horloĝo. Se ekstera horloĝo estas havebla, la rapidhorloĝo sur la modulo povas esti uzata por krei horloĝan eventon ĉe ĉiu altiĝanta aŭ malaltiĝanta rando de la ekstera horloĝo, kaj tamen sekvi la gvidliniojn de CPLD/FPGA, tio estas, vi vere devus uzi la internan tutmondan horloĝreton anstataŭ "Asinkrona" funkciigo de la horloĝa eniro. La taksita elektroproviza tensio de ĉi tiu oscilatoro estas inter 1,8 kaj 5,5 voltoj.
Se vi rigardos la filmeton, vi vidos, ke mi diskutas mian personan preferon pri kiel pritrakti la "INH"-pinglon sur la oscilatoro; simple dirite, post kiam mi kontrolas, ke la speciffolio estas laŭleĝa, mi emas lasi ĝin flosi.
Traktante tiajn funkciojn, la kialoj, kiuj ekbrilis en mia menso, inkluzivis mian malŝaton konekti la enirajn stiftojn rekte al la elektraj reloj (se eble). Tio estas, mi preferas uzi seriajn rezistilojn por limigi la kurenton dum pasemaj ŝanĝoj, eĉ se tio ne devus esti bezonata.
Tra la jaroj, mi vidis kelkajn problemojn en produktado (grandaj kvantoj), kaj foje aferoj kiel ŝaltado de potenco permesis al la stiftoj rekte konektitaj al la potenca relo havi pli altan tension ol la ĉipo mem, kio estas malbona. Fine, konektu la stifton al la potenca relo per rezistilo (ĉu potenca aŭ tera), kaj homoj povas ŝanĝi sian opinion kaj uzi la stifton poste. Ĉi tio estas aparte vera laŭ mia sperto kun neuzataj pordoj, vi verŝajne scias, ke ĉi tiuj pordoj neniam devas esti lasitaj flosantaj aŭ nekonektitaj. Uzante suprentiran rezistilon, vi povas konekti la signalon kaj uzi la pordegon sen tranĉi kuprajn spurojn.
La 10-pingla konektilo kaj kelkaj rezistiloj formas la programan cirkviton. Se ĉiuj rezistiloj estus suprentiraj rezistiloj, mi uzus rezistilan reton, sed bedaŭrinde, unu estas terkonektita.
Por programi tian sendependan CPLD-on, necesas dediĉita programisto. Tion facile diri por mi, ĉar mi kutime havas kelkajn apud mi, sed se vi ne havas tian, ne estos tro dolore eniri la ludon. La aprobita "Altera USB Blaster" vendiĝas por 50 dolaroj kaj aĉeteblas de Digikey kaj aliloke. Mi havas plurajn klonojn de Ebay, unu el kiuj estas klono kiu samtempe subtenas Altera, Xilinx kaj Lattice. Ekzistas projekto kaj kodo en la Interreto, kiujn oni povas uzi por fari propran klonon, mi listigos ĝin en mia listo de eblaj filmetoj por la projekto fari programklonojn. Mi ankaŭ montros ŝildan dezajnon, en kiu la bazcirkvito, Arduino, PIC, ktp. povas esti programitaj.
La programaro bezonata por kompili kaj programi la CPLD estas libere havebla de Altera, sed ĉi tiu malnova parto postulas la malnovan version 9.1. La bona novaĵo estas, ke ĝi estis mia plej ŝatata malnova versio. Ĝi havis intuician tempigan analizilon, sed ĝi estis forigita en pli posta versio.
La PCB estas simpla duflanka dezajno, kondiĉe ke la cirkvitplato taŭgas por ĝi, mi emas uzi kupron por terkonekto kaj kelkfoje por elektroprovizo. Kelkfoje la verŝado fariĝas tiel rompita, ke ĝi povas fakte kaŭzi problemojn aŭ malzorgajn finrezultojn, do kuproverŝado denove estas ilo, sed ĝi devas esti administrita.
Hodiaŭ, multaj (se ne plej multaj) CAD-programaroj enhavas 3D-vidojn de la fina produkto, kvankam la precizeco de la bildoj estas nur tiel preciza kiel la 3D-modeloj uzataj por reprezenti la partojn. Jen vi povas vidi kie mi elektis la 3D-modelon por la 44-pingla ingo, programa konektilo kaj oscilatoro. Jen kelkaj 3D-programaroj, kiujn mi ŝatas uzi:
Multaj firmaoj ankaŭ havas 3D-modelojn de siaj komponantoj. Molex estas nur unu ekzemplo de firmao, kiu faris bonan laboron en ĉi tiu areo.
La eraro, kiun mi faris, ne influas la funkcion kiel estetiko, kaj ĝi ne estas la ĉefa problemo, tio estas, ĝi ne taŭgas por unuopa senluta tranĉtabulo.
Kiam mi pensis, ke mi eble kunhavigos la dezajnon kun iu ajn, mi tuj malkontentis pri la skemaj simboloj de la CPLD kaj la pinglodisigo de la 40-pingla konektilo, kio estas ĝia totala grandeco. Mi prenis 40-pinglan duoblan konektilan simbolon kaj ĝustigis ĝin al 1-cola grandeco, sed la pinglonumeroj ne estas 1, 2, 3, 4... sed estas numeritaj 1 sur la flanko kiel DIP-pakaĵo 3, 5, 7... same kiel rubandkablaj konektiloj. Tial, ĝi estas ne-intuicia grandeco por determini kiel konekti al la modulo kaj solvi problemojn.
Simile, la CPLD-pinglaj asignadoj estas iom konfuzaj, kaj mi uzis aron da iloj, kiuj dependas de Boundary Scan Description Language (BSDL) por krei simbolojn. Plej multaj gravaj vendistoj havas BSDL-dosierojn disponeblajn por siaj ĉefaj komponantoj, kiuj permesas al vi (duon)aŭtomate krei simbolojn kaj pakaĵojn. Kiel ajna aŭtomatigo, ĝi devas esti vidata kiel ilo kaj eble postulos plian plibonigon por plej bonaj rezultoj. En ĉi tiu kazo, mi lasis ĝin listigi la pinglojn laŭ alfabeta ordo, kio estas preskaŭ hazarda kiam oni spuras la pinglojn sur la tabulo. Mi povas nur diri, ke mi estis tre maltrankvila tiun tagon.
Vi iam pagos por ĉi tiuj mallongigoj survoje. Kiam mi modifos ĉi tiun modulon, mi determinos kaj donos al ĝi stifto-lokigon, kiu kongruas kun la parto mem, tiel ke scii kie meti vian osciloskopan sondilon estas tiel facile kiel ekrigardi la skeman simbolon.
Kiam oni uzas cirkvitplatenojn, ekzistas aliaj plibonigoj, kiuj estas ĉefe estetikaj aŭ utilaj. La indikilo ĉe pinglo 1 devas esti pli ofta en pluraj pakaĵoj, kaj mi ĉiam preferas simplan terkonekton por konekti la osciloskopan teron aŭ VOM-konektilon. Mi eble aldonos tion aldonante du-pinglan konektilon, por ke potenco kaj tero povu esti aplikitaj rekte al la plato anstataŭ esti fiksitaj al la malsupraj pingloj.
Antaŭ ol mi modifos la cirkvitplaton, mi volas certigi, ke ĝi funkcias ĝuste rilate fizikajn kaj estetikajn problemojn. Post ŝaltado kaj konfirmo, ke la oscilatoro funkcias ĝuste, mi konektis la programilon. Kvankam la 3.3v-versio estas pli nova ol la programa programaro, ĝi detektis la CPLD kaj montris ĝin kiel "nekonatan" aparaton.
Poste, mi kreis nombrilon en Quartus kaj asignis pinglonumerojn. La rapida kompilado kaj elŝutado kaj la nombrila funkcio vidata de la osciloskopo konfirmas, ke la dezajno estas farebla.
La rapida testcirkvito en Verilog estas tre simpla. La kodo estas listigita sube. Vi povas elŝuti ZIP-dosieron enhavantan la skemon kaj Verilog-testcirkviton kiel projekton de Quartus II (postulas version 9.1).
Kiel mi menciis, mi faros duan revizion de la cirkvitplato por atenti pli la detalojn bezonatajn dum kunhavigo de la dezajno aŭ farado de iu ajn problemo-solvado. Ĉar mi devas agordi la larĝon de la malsupra konektilo al 0,9 coloj aŭ malpli, mi povas daŭre agordi ĝin al 0,6 coloj, kio estas norma "larĝa" DIP-pakaĵo. Fari tion signifas lasi la malsuprajn stiftojn elstari el la CPLD-ingo. Mi ne farus tion en produktada situacio ĉar ĝi estis kunmetita permane tiutempe, sed unu el la celoj estis fari mane lutadan ilaron. La kompromiso por mane lutado estas, ke la oscilatoro devas esti en SMD-surfacmunta enfermaĵo, la tratrua versio estas tre granda kaj kutime ne subtenas la deziratan tensian gamon.
Ĉu eblas uzi ĉi tiujn modulojn por konstrui kompletan simplan komputilon? Mi kredas, ke mi bezonas aldoni memoron.
Haha... jes, ĝi dependas de kia komputilo. Tamen, "veraj" mikroregiloj/mikrokomputiloj estas influitaj de la "stifta ligado" de la modulo, kio signifas, ke vi ne povas akiri sufiĉe da terminologio de la modulo por fari ion tro utilan.
Mi faris kompletan NTSC-fotilan tempigon kaj reĝimregilon kun grandeco de 64, do neniu procesoro estas bezonata.
La Struktura Verilog kaj HDL uzitaj en la libro NAND al Tetris estas pli-malpli la samaj.
Kial estas tratruaj partoj? Veldado 0805 estas facila! Nun estas la tempo por ĉiu ŝminkisto lerni ĉi tiun kapablon.
Se mi igas la supran ingon interkovri la stiftojn lutitajn de sube, tiam mi povas uzi "6-centrojn" (simulante 40-stiftan peceton) aŭ diagonale, ktp. Ĉi tio estos strikte mana lutado de komponantoj por lutado de la subaj konduktiloj. La supra ingo estas malantaŭ la piedoj.
Sed estas malfacile por komencantoj luti ĝin de sube. Kiam mi lutas konektilojn por la PCB de la panotabulo (ĉi tiuj malmultekostaj SMD-adaptilaj platoj, kiujn vi povas uzi ĉe eBay, povas esti uzataj por prototipado), mi enmetas la konektilojn en la panotabulon, poste metas la PCB sur ĝin, kaj tiam mi povas facile luti. Ĝi estas tre taŭga por panotabulo. Se vi bezonas luti ĝin de sube, ĝi estas eĉ pli malfacila.
Se la CPLD estas en la mezo (eble pli facile kabligi ĝin), ĝi povas esti instalita diagonale sen interkovriĝo, estas 4 vicoj, aŭ la CPLD povas esti sur unu flanko:
Dankon pro la konsilo enmeti la konektilon en la tranĉtabulon antaŭ ol luti. La mia estas iom malstabila.
Kiel pri la DIP-formataj panotabloj ĉe unu fino kaj la "dongle"-tipa de la ĉipa ingo mem ĉe la alia fino? ​​La ĉipo povas esti pendigita ĉe la fino de la panotablo. La vojigo estos streĉa.
|######## ******************** |. Jes, mi decidis uzi la "senpagan" version de Altera, same kiel Xilinx kaj Lattice havas "senpagajn" versiojn. Mi bezonas fini la ciklon kun Al Williams por kompreni kion subtenas ĉiu malferma subteno, kio devas inkluzivi la specifajn atributojn de la aparatserio. Tamen, mi multe faris kun la senpaga versio.
Jes, vi montras, ke la CPLD interkovriĝas kun la stiftoj, mi kredas. Se mi sekvas ĝin ĝuste, ĉi tio povus aspekti kiel revizio 2. Kiam mi desegnas por (amas) produktado, mi ĉiam estas alergia al la paŝo "manluta asembleo" ĉar ili interkovriĝas (fakte la lutaĵaj stiftoj sur la ne-komponenta flanko). ) Jam estas mane lutita komponento) sed ĉi tio estas nur malgranda ilaro, ne produktad-orientita dezajno. Mi nur havas kelkajn kutimojn, kiujn malfacilas forigi en mia aĝo. :)
Mi opinias, ke T-forma cirkvitplato kun CPLD kaj pasivaj komponantoj kun larĝa T-forma parto estos tre utila kiam pendigita sur la rando de la tranĉtabulo. Io simila al Adafruit RasPi T-Cobbler (http://www.adafruit.com/products/2028). Tio uzos la plejparton de la tranĉtabula areo.
Bedaŭrinde, la ĉesigo grave limigos ĝian uzon en flankaj projektoj, same kiel ĉiuj tiuj funkciogeneriloj bazitaj sur XR2206 kaj ICL8038.
Interesa ideo. Mi ŝatas ĉi tiujn du ĉipojn. CPLD ne estas malmoderna, ĝi estas nur pli malmultekosta maniero aĉeti ĝin je 3.3v.
Pri via "sensencaĵo"... vi vere ne faris novan aranĝon por meti ĝin sur la panotabulon. Simple metu la draton sur la panotabulon unue, kaj poste metu la konektilon "CPLD" sur la draton. Aŭ, se vi povas eltiri la elektrajn kaj terajn striojn de unu el ili, uzu du panotabulojn.
Pri Altium kaj Eagle. Ĉu vi konsideris KiCad? Ĝi ne havas limigojn, kiuj signifas, ke vi preferas Altium ol Eagle, kaj defaŭlte generas DRC-erarojn por ĉiuj nekonektitaj stiftoj. Se vi vere volas malfermi stifton, vi devas diri al ĝi. (Eble nur por enigo, ne por eligo, kaj ĝi ankoraŭ ne estis kontrolita). Alia bonega trajto estas, ke ĝi estas tre facile lernebla. Ĝi daŭris nur posttagmezon, kaj la bonega enkonduka manlibro ebligis al mi komenci.
Mi preferas la (pli grandan parton) SMD super la tratruo. Ili estas pli facile uzeblaj. Vi ne devas turni la cirkvitan cirkviton ĉiam. (Kelkaj stultaj eraroj okazis pro spegulado...). Kaj vi ne devas tranĉi la konekton de la rezistilo. Kiam oni kunhavas dezajnon, pluraj pakaĵoj povas esti oportune metitaj sur cirkvitan cirkviton aŭ unuopan parton. SMD-rezistilo TH. (Ĝi ja igas la aranĝon iom pli komplika).
Mi uzis "KiCad Getting Started" en PDF-formato. La malnova versio, kiun mi uzis, havas 29 paĝojn, kaj la plej nova versio havas 52 paĝojn. Vi povas trovi ĝin en aliaj lerniloj (inkluzive de videoligiloj): http://kicad-pcb.org/help/tutorials/
Mi scias, ke [Chris Gemmell] de Hackaday kaj The Amp Hour faris serion pri Kicad http://kicad-pcb.org/help/tutorials/
Kicad eble utilos, lasu min vidi kio okazos en Rev 2. Dankon pro viaj sugestoj. Nekonektitaj enigoj estas bona afero por DRC (ERC), kaj por konektiloj kaj aliaj aferoj kiuj tenas ilin molaj aŭ IO, plej multaj CAD-malkonektaj mesaĝoj kutime povas esti evitataj.
Faru rapidan teston kaj metu la konektilon en malplenan tabelon, faru komentojn kaj DRC-on. Ĝi donis al mi drc-erarojn por ĉiu stifto. Tamen, marki konatajn nekonektitajn stiftojn estas tre simple.
Agordita al pasiva. Mi devas serĉi (Redakti Komponanton -> Redakti per Biblioteka Redaktilo). La biblioteka redaktilo malfermiĝas kaj ŝargas vian komponenton en aparta fenestro, vi povas kontroli aŭ ŝanĝi ajnan parton de la komponento. La ŝanĝita komponento povas esti konservita aŭ ĝisdatigita en via skemo. Tio tre faciligas ŝanĝi komponentojn. Mi ne multe zorgas pri la biblioteko. Ekzemple, se vi uzas cpld, vi volas asigni signifoplenajn nomojn al la stiftoj. Pli grave, ekzistas bona interfaco por desegni viajn proprajn komponentojn.
En la ERC de KiCad, "nekonektitaj" stiftoj estas malsama tipo de stifto ol "pasivaj stiftoj", kaj ĉiuj "nekonektitaj" stiftoj generos erarojn. La funkciado de ERC povas esti facile adaptita laŭ viaj propraj preferoj: Iloj -> Kontrolilo de Elektraj Reguloj -> Opcioj.


Afiŝtempo: 18-a de novembro 2021