Kompleksne programmeeritav loogikaseade (CPLD) on teie repertuaaris oluline riistvaraelement. Nagu nimigi ütleb, saate neid kiipe programmeerida nii, et need pakuksid vajalikke loogikafunktsioone. See võib olla vananenud kiipide asendamine või lihtsalt viis erinevate tehnoloogiate õppimiseks ja proovimiseks. Mis oleks parem viis õppimiseks kui CPLD kasutamine ja selle proovimine?
Lõin CPLD mooduli, et seda saaks ühendada paljude asjadega, sealhulgas jooteta makettplaatidega, aga ma alt vedasin. Paistab, et jooteta makettplaadil on saadaval 1,1 tolli (2,8 cm) suurune ühenduskoht. Olen teinud jalajälje 1 tolli (2,5 cm) laiuseks, jättes mõlemale poole juhtmereale ruumi. Ee...
Aga lubage mul tagasi minna ja näidata lähemalt, mida ma teen. Ma tahan luua programmeeritava loogika, mida saab komplektina kokku panna, mida saab kodus kergesti joota, mida saab vooluringis programmeerida ja mis töötab 3,3 või 5 voldi juures.
Lihtsalt joodetava komplekti loomiseks kasutasin vana CPLD-komponenti, mis on saadaval ka 3,3 V ja 5 V versioonides ning säilitab oma programmeerimise olenemata toiteallikast. Loogika ise on Altera Max seeria CPLD-kiire, mis on saadaval kahes versioonis ja sobib 32 või 64 makroelemendiga trükkplaatidele. Makroelemendid on põhilised loogilised ehitusplokid, mis programmeeritakse loogiliste "terminite" abil ja seejärel ühendatakse programmeeritavate ühenduste kaudu teiste makroelementidega.
Skeemi vaadates on näha, et sellel pole palju sisu: põhimõtteliselt CPLD, vooluahelasisene programmeerimisahel ja ostsillaator, mis juhib CPLD loogikat.
Seda osa nimetatakse EPM7032-ks ja EPM7064-ks ning see kasutab 44-kontaktilist plastjuhtmega kiibikandjat (PLCC), mida mõnikord nimetatakse J-juhtmeks juhtme J-kuju tõttu. Selle korpuse saab sisestada läbivasse pistikupessa või joota otse trükkplaadile.
Sisaldab sisseehitatud ostsillaatorit, nii et CPLD suudab toiminguid olekupõhiselt teostada ja kiireid loendureid luua ilma välise kella vajaduseta. Kui väline kell on saadaval, saab mooduli kiiret kella kasutada kellasündmuse loomiseks välise kella iga tõusva või langeva serva kohta, järgides samal ajal CPLD/FPGA juhiseid, st kella sisendit tuleks juhtida sisemise globaalse kellavõrgu abil, mitte "asünkroonselt". Selle ostsillaatori nimitoitepinge on vahemikus 1,8 kuni 5,5 volti.
Kui vaatate videot, näete, et ma arutan oma isiklikku eelistust ostsillaatori "INH"-tihvti käsitsemise kohta; lihtsalt öeldes, pärast seda, kui olen kontrollinud, kas spetsifikatsioonileht on seaduslik, kipun ma selle hõljuma jätma.
Selliste funktsioonidega tegeledes turgatas mulle pähe muuhulgas vastumeelsus ühendada sisendtihvte otse toitesiinidega (kui see on võimalik). See tähendab, et eelistan kasutada jadatakisteid voolu piiramiseks siirdeprotsesside ajal, isegi kui seda poleks vaja.
Aastate jooksul olen näinud tootmises mõningaid probleeme (suured partiid) ja aeg-ajalt on sellised asjad nagu toite tsükliline sisse- ja väljalülitamine võimaldanud toitesiiniga otse ühendatud tihvtidel saada kõrgemat pinget kui kiibil endal, mis on halb. Lõpuks ühendage tihvt toitesiiniga takisti (kas toite või maanduse) kaudu ja inimesed saavad meelt muuta ning tihvti hiljem kasutada. See kehtib eriti minu kogemuse põhjal kasutamata ustega - te ilmselt teate, et neid uksi ei tohiks kunagi vedelema ega ühendamata jätta. Tõmbetakisti abil saate signaali ühendada ja väravat kasutada ilma vasktraate lõikamata.
Programmeerimisahela moodustavad 10-kontaktiline pistik ja mõned takistid. Kui kõik takistid on tõmbetakistid, kasutaksin takistivõrku, aga paraku on üks maandatud.
Sellise iseseisva CPLD programmeerimiseks on vaja spetsiaalset programmeerijat. Mul on seda lihtne öelda, sest mul on tavaliselt paar sellist kõrval, aga kui sul seda pole, siis pole mängu sisenemine liiga valus. Heakskiidetud "Altera USB Blaster" maksab 50 dollarit ja seda saab osta Digikeyst ja mujalt. Mul on eBayst mitu klooni, millest üks toetab samaaegselt Altera, Xilinxi ja Lattice'i. Internetis on projekt ja kood, mida saab kasutada oma klooni loomiseks, lisan selle oma programmeerija kloonide valmistamise projekti võimalike videote loendisse. Näitan ka kilbi kujundust, milles saab programmeerida emaplaati, Arduinot, PIC-i jne.
CPLD kompileerimiseks ja programmeerimiseks vajalik tarkvara on Alterast vabalt saadaval, kuid see vana osa nõuab vana versiooni 9.1. Hea uudis on see, et see oli minu lemmik vana versioon. Sellel oli intuitiivne ajastusanalüsaator, kuid see eemaldati hilisemas versioonis.
Trükkplaat on lihtsa kahepoolse disainiga ja seni kuni trükkplaat sinna sobib, kipun maanduseks ja vahel ka toiteallikaks kasutama vaske. Mõnikord läheb valamine nii katki, et see võib probleeme või lohakat lõpptulemust põhjustada, seega on vase valamine jälle abivahend, aga sellega tuleb tegelda.
Tänapäeval sisaldavad paljud (kui mitte enamik) CAD-tarkvarapaketid lõpptoote 3D-vaateid, kuigi piltide täpsus on sama täpne kui osade kujutamiseks kasutatavad 3D-mudelid. Siin näete, kust ma valisin 44-kontaktilise pesa, programmeerimispistiku ja ostsillaatori 3D-mudeli. Siin on mõned 3D-paketid, mida mulle meeldib kasutada:
Paljudel ettevõtetel on ka oma komponentide 3D-mudelid. Molex on vaid üks näide ettevõttest, mis on selles valdkonnas head tööd teinud.
Minu tehtud viga ei mõjuta funktsiooni nagu esteetikat ja see pole peamine probleem ehk see ei sobi ühe jootevaba pagariplaadi jaoks.
Kui ma niipea kui mõtlesin, et võiksin oma disaini kellegagi jagada, jäin kohe rahulolematuks CPLD skeemide ja 40-kontaktilise pistiku pinni paigutusega, mis on selle üldine jalajälg. Haarasin 40-kontaktilise kaherealise pistiku sümboli ja kohandasin selle 1-tollisele jalajäljele, aga pinninumbrid ei ole 1, 2, 3, 4... vaid on küljel nummerdatud 1-ga nagu DIP-korpusel 3, 5, 7... täpselt nagu lintkaabli pistikutel. Seega on see mooduliga ühenduse loomise ja tõrkeotsingu jaoks mitteintuitiivne jalajälg.
Samamoodi on CPLD tihvtide määramine veidi segadusttekitav ning sümbolite loomiseks kasutasin utiliitide komplekti, mis tugineb Boundary Scan Description Language'ile (BSDL). Enamikul suurematel müüjatel on oma põhikomponentide jaoks saadaval BSDL-failid, mis võimaldavad teil sümboleid ja pakette (pool)automaatselt luua. Nagu iga automatiseerimist, tuleb seda vaadelda kui tööriista ja parimate tulemuste saavutamiseks võib vaja minna täiendavat töötlemist. Sel juhul lasin sellel tihvtid tähestikulises järjekorras loetleda, mis on plaadil olevate tihvtide jälgimisel peaaegu juhuslik. Võin ainult öelda, et olin sel päeval väga ärevil.
Nende otseteede eest maksad kunagi teel olles. Kui ma seda moodulit modifitseerima hakkan, siis määran ja annan sellele tihvtide paigutuse, mis sobib detailiga, nii et ostsilloskoobi sondi paigutamise teadmine on sama lihtne kui skeemi sümbolile pilk heita.
Trükkplaatide kasutamisel on ka teisi täiustusi, mis on peamiselt esteetilised või kasulikud. 1. jala indikaator peaks mitmes pakendis olema levinum ja eelistan alati lihtsat maanduspunkti ostsilloskoobi maanduse või VOM-juhtme ühendamiseks. Võiksin selle lisada kahe jalaga pistiku abil, et toidet ja maandust saaks otse plaadile rakendada, selle asemel, et need alumiste tihvtide külge kinnitada.
Enne trükkplaadi muutmist tahan veenduda, et see töötab korralikult nii füüsiliste kui ka esteetiliste probleemide korral. Pärast sisselülitamist ja ostsillaatori töökorras olemise kontrollimist ühendasin programmeerija. Kuigi 3,3 V versioon on programmeerimistarkvarast uuem, tuvastas see CPLD ja kuvas selle "tundmatu" seadmena.
Järgmisena lõin Quartuses loenduri ja määrasin sellele pin-numbrid. Kiire kompileerimine ja allalaadimine ning ostsilloskoobi poolt nähtav loenduri funktsioon kinnitavad, et disain on teostatav.
Verilogi kiirtestimise skeem on väga lihtne. Kood on loetletud allpool. Saate alla laadida ZIP-faili, mis sisaldab skeemi ja Verilogi testahelat Quartus II projektina (nõuab versiooni 9.1).
Nagu mainisin, teen trükkplaadile teise revisjoni, et pöörata rohkem tähelepanu detailidele, mida disaini jagamisel või muudel tõrkeotsingu toimingutel vaja läheb. Kuna pean alumise pistiku laiuseks määrama 0,9 tolli või vähem, võin selle jätkuvalt seadistada 0,6 tollile, mis on standardne "lai" DIP-korpus. See tähendab, et alumised tihvtid ulatuvad CPLD-pesa alt välja. Ma ei teeks seda tootmissituatsioonis, kuna tol ajal monteeriti seda käsitsi, kuid üks eesmärkidest oli teha käsitsi jootmise komplekt. Käsitsi jootmise kompromiss on see, et ostsillaator peab olema SMD pinnale kinnitatavas korpuses, läbiva auguga versioon on väga suur ja tavaliselt ei toeta minu soovitud pingevahemikku.
Kas neid mooduleid saab kasutada täieliku lihtsa arvuti ehitamiseks? Ma arvan, et pean mälu lisama.
Lol...jah, see oleneb arvuti tüübist. Siiski mõjutab "päris" mikrokontrollereid/mikroarvuteid mooduli "tihvtide ühendamine", mis tähendab, et moodulist ei saa piisavalt terminoloogiat, et midagi eriti kasulikku teha.
Valmistasin täieliku NTSC kaamera ajastuse ja režiimi kontrolleri suurusega 64, seega pole protsessorit vaja.
Raamatus „Nand to Tetris” kasutatud struktuurne verilog ja HDL on enam-vähem samad.
Miks on läbivate aukudega detailid? Keevitamine 0805 on lihtne! Nüüd on aeg igal nokitsejal see oskus selgeks õppida.
Kui ma panen ülemise pesa katma altpoolt joodetud tihvtidega, siis saan kasutada "6 keskpunkti" (simuleerides 40-tihvtilist kiipi) või diagonaali jne. See on rangelt käsitsi joodetavad komponendid alumiste juhtmete jootmiseks. Ülemine pesa jalgade taha.
Aga algajatel on seda altpoolt keeruline joota. Kui ma joodan leivaplaadi trükkplaadi jaoks ühendusklemmid (need odavad SMD adapterplaadid, mida saab eBayst osta, sobivad prototüüpimiseks), siis sisestan ühendusklemmid leivaplaadile, seejärel panen trükkplaadi peale ja siis saan selle hõlpsalt joota. See sobib väga hästi leivaplaatidele. Kui teil on vaja seda altpoolt joota, on see veelgi keerulisem.
Kui CPLD on keskel (võib olla lihtsam juhtmeid ühendada), saab selle paigaldada diagonaalselt ilma kattumiseta, 4 rida või CPLD võib olla ühel küljel:
Tänan vihje eest, et pistik tuleks enne jootmist maketi külge ühendada. Minu oma on veidi ebastabiilne.
Kuidas oleks DIP-formaadis makettplaadi tihvtidega ühes otsas ja kiibipesa enda "dongli" tüüpi otsas teises otsas? Kiibi saab makettplaadi otsa riputada. Juhtmestik on tihe.
|####### ********************* |. Jah, ma otsustasin kasutada Altera "tasuta" versiooni, just nagu Xilinxil ja Lattice'il on "tasuta" versioonid. Pean tsükli Al Williamsiga lõpetama, et aru saada, mida kõik avatud tugiteenused toetavad, mis peab hõlmama seadme seeria spetsiifilisi atribuute. Seda öeldes olen ma tasuta versiooniga palju teinud.
Jah, sa näitad, et CPLD kattub minu arvates tihvtidega. Kui ma sellest õigesti aru saan, võib see välja näha nagu rev 2. (Mass)tootmiseks disainides olen alati allergiline "käsitsi jootmise kokkupaneku" etapi suhtes, sest need kattuvad (tegelikult jootetihvtid mittekomponendi poolel). ) On juba käsitsi joodetud komponent), aga see on lihtsalt väike komplekt, mitte tootmiskeskne disain. Mul on lihtsalt mõned harjumused, millest on minu vanuses raske vabaneda. 
Ma arvan, et T-kujuline trükkplaat CPLD ja passiivkomponentidega, millel on lai T-kujuline osa, oleks väga kasulik, kui see riputada maketiplaadi servale. Midagi sarnast Adafruit RasPi T-Cobblerile (http://www.adafruit.com/products/2028). See teeb suurema osa maketiplaadi alast vabaks.
Kahjuks piirab tootmisest loobumine oluliselt selle kasutamist kõrvalprojektides, nagu ka kõigi XR2206 ja ICL8038 baasil loodud funktsioonigeneraatorite puhul.
Huvitav idee. Mulle meeldivad need kaks kiipi. CPLD pole aegunud, see on lihtsalt odavam viis selle ostmiseks 3,3 V juures.
Mis puutub sinu "jama" juttu... sa tõesti ei teinud uut paigutust, et see maketiplaadile panna. Pane lihtsalt juhe kõigepealt maketiplaadile ja seejärel pane CPLD juhtme otsa. Või kui sa saad ühelt toite- ja maandusribad maha tõmmata, siis kasuta kahte maketiplaati.
Altiumist ja Eagle'ist. Kas olete kaalunud KiCadi? Sellel pole mingeid piiranguid, mis annaksid teile Altiumile eelistuse Eagle'ile, ja see genereerib vaikimisi DRC-vead kõigi ühendamata tihvtide jaoks. Kui te tõesti tahate tihvti avada, peate seda ütlema. (Võib-olla ainult sisendi jaoks, mitte väljundi jaoks ja seda pole veel kontrollitud). Teine suurepärane omadus on see, et seda on väga lihtne õppida. See võttis vaid ühe pärastlõuna ja suurepärane sissejuhatav käsiraamat aitas mul alustada.
Eelistan (suurema osa) SMD-d läbiva augu kohal. Neid on lihtsam kasutada. Sa ei pea kogu aeg trükkplaati keerama. (Tehti mõned rumalad vead peegeldamise tõttu...). Ja sa ei pea takisti juhet läbi lõikama. Disaini jagamisel saab mitu pakendit mugavalt trükkplaadile või ühele osale paigutada. SMD takisti TH. (See teeb paigutuse veidi keerulisemaks).
Kasutasin PDF-vormingus juhendit "KiCad Getting Started". Vana versioon, mida ma kasutasin, on 29-leheküljeline ja uusim versioon on 52-leheküljeline. Selle leiate teistest õpetustest (sh videolingid): http://kicad-pcb.org/help/tutorials/
Ma tean, et [Chris Gemmell] Hackadayst ja The Amp Hourist tegi Kicadi kohta sarja http://kicad-pcb.org/help/tutorials/
Kicad võib olla kasulik, vaatan, mis Rev 2-s juhtub. Tänan soovituste eest. Ühendamata sisendid on DRC (ERC) jaoks head ning pistikute ja muude asjade puhul, mis neid pehmena või IO-na hoiavad, saab enamikku CAD-i lahtiühendamise teateid tavaliselt vältida.
Tee kiire test ja aseta pistik tühja tabelisse, käivita annotatsioonid ja DRC. See andis mulle iga tihvti kohta DRC-vea. Teadaolevalt ühendamata tihvtide märkimine on aga väga lihtne.
Määra passiivseks. Pean otsima (Muuda komponenti -> Muuda teegiredaktoriga). Teegiredaktor avaneb ja laadib teie komponendi eraldi aknasse, saate kontrollida või muuta komponendi mis tahes osa. Muudetud komponenti saab teie skeemil salvestada või värskendada. See teeb komponentide muutmise väga lihtsaks. Ma ei hooli eriti teegist. Näiteks kui kasutate cpld-d, soovite tihvtidele tähendusrikkad nimed määrata. Veelgi olulisem on see, et seal on hea liides oma komponentide kujundamiseks.
KiCadi ERC-s on "ühendamata" tihvtid teist tüüpi kui "passiivsed tihvtid" ning kõik "ühendamata" tihvtid tekitavad vigu. ERC toimimist saab hõlpsalt oma eelistustele vastavaks kohandada: Tööriistad -> Elektrireeglite kontrollija -> Valikud.
Postituse aeg: 18. november 2021





