14 kontaktų ZIF lizdas

Sudėtingas programuojamas loginis įrenginys (CPLD) yra esminė jūsų įrangos dalis. Kaip rodo pavadinimas, šiuos lustus galite programuoti taip, kad jie atliktų jums reikalingas logines funkcijas. Tai gali būti pasenusių lustų pakeitimas arba tiesiog būdas mokytis ir išbandyti skirtingas technologijas. Koks geresnis būdas mokytis nei naudoti CPLD ir jį išbandyti?
Sukūriau CPLD modulį, kad galėčiau jį prijungti prie daugelio dalykų, įskaitant nelituojamąsias maketavimo plokštes, bet suklydau. Atrodo, kad nelituojamojoje maketavimo plokštėje yra 1,1 colio (2,8 cm) vietos prijungimui. Pėdsaką padariau 1 colio (2,5 cm) pločio, nepalikdamas vietos laidų eilei abiejose pusėse. Eee.
Bet leiskite man grįžti ir parodyti daugiau apie tai, ką darau. Noriu sukurti programuojamą loginį elementą, kurį būtų galima surinkti kaip rinkinį, lengvai lituoti namuose, programuoti grandinėje ir kuris veiktų esant 3,3 arba 5 voltų įtampai.
Norėdamas realizuoti lengvai lituojamą rinkinį, panaudojau seną CPLD komponentą, kuris taip pat yra 3,3 V ir 5 V versijų ir išlaikys savo programavimą nepriklausomai nuo maitinimo šaltinio. Pati logika yra CPLD IC iš „Altera Max“ serijos, prieinama dviejų versijų, tinkanti plokštėms su 32 arba 64 makroelementais. Makroelementai yra pagrindiniai loginiai statybiniai blokai, kurie programuojami naudojant loginius „termus“, o vėliau sujungiami su kitais makroelementais per programuojamus sujungimus.
Pažvelgus į schemą, matyti, kad joje nėra daug turinio: iš esmės CPLD, vidinė programavimo grandinė ir osciliatorius, kuris valdo CPLD logiką.
Ši dalis vadinama EPM7032 ir EPM7064 ir naudoja 44 kontaktų plastikinį laidų laikiklį (PLCC), kartais vadinamą J formos laidininku dėl laido J formos. Šį korpusą galima įdėti į kiaurymę arba tiesiogiai prilituoti prie spausdintinės plokštės.
Turi integruotą osciliatorių, todėl CPLD gali atlikti operacijas būseniškai ir pats kurti greitus skaitiklius, nereikalaujant išorinio laikrodžio. Jei yra išorinis laikrodis, modulio didelės spartos laikrodis gali būti naudojamas laikrodžio įvykiui sukurti kiekviename išorinio laikrodžio kylančiame arba krentančiame krašte, vis tiek laikantis CPLD/FPGA gairių, t. y., vietoj „asinchroninių“ laikrodžio įėjimo pavarų turėtumėte naudoti vidinį pasaulinį laikrodžių tinklą. Šio osciliatoriaus nominali maitinimo įtampa yra nuo 1,8 iki 5,5 volto.
Jei žiūrėsite vaizdo įrašą, pamatysite, kad aptariu savo asmeninius pageidavimus, kaip elgtis su osciliatoriaus „INH“ kaiščiu; paprastai tariant, patikrinęs, ar specifikacijų lapas yra teisėtas, linkstu leisti jam plūduriuoti.
Dirbant su tokiomis funkcijomis, viena iš priežasčių, kurios man šovė į galvą, buvo nemėgstu įvesties kontaktų jungti tiesiai prie maitinimo linijų (jei įmanoma). Kitaip tariant, aš mieliau naudoju nuosekliuosius rezistorius, kad apribočiau srovę pereinamųjų procesų metu, net jei to neturėtų prireikti.
Bėgant metams, gamyboje (didelėse partijose) pastebėjau tam tikrų problemų, ir kartais, pavyzdžiui, maitinimo ciklavimas, leisdavo tiesiogiai prie maitinimo bėgelio prijungtiems kontaktams turėti aukštesnę įtampą nei pačiam lustui, o tai yra blogai. Galiausiai, prijunkite kontaktą prie maitinimo bėgelio per rezistorių (maitinimo arba įžeminimo), ir žmonės gali persigalvoti ir naudoti kontaktą vėliau. Tai ypač pasakytina apie mano patirtį su nenaudojamomis durimis, tikriausiai žinote, kad šios durys niekada neturėtų būti paliktos „plūduriuojančios“ arba neprijungtos. Naudodami įtempimo rezistorių, galite prijungti signalą ir naudoti vartus nenupjaudami varinių laidų.
10 kontaktų jungtis ir keli rezistoriai sudaro programavimo grandinę. Jei visi rezistoriai yra traukos rezistoriai, naudočiau rezistorių tinklą, bet, deja, vienas yra įžemintas.
Norint užprogramuoti tokį nepriklausomą CPLD, reikalingas specialus programuotojas. Man lengva pasakyti, nes paprastai šalia turiu kelis, bet jei neturite, žaisti nebus per sunku. Patvirtintas „Altera USB Blaster“ parduodamas už 50 USD ir jį galima įsigyti „Digikey“ ir kitur. Turiu kelis klonus iš „eBay“, vienas iš jų vienu metu palaiko „Altera“, „Xilinx“ ir „Lattice“. Internete yra projektas ir kodas, kuriuos galima panaudoti norint sukurti savo kloną, įtrauksiu jį į savo galimų vaizdo įrašų sąrašą, skirtą programuotojų klonų kūrimo projektui. Taip pat parodysiu skydo dizainą, kuriame galima programuoti pagrindinę plokštę, „Arduino“, PIC ir kt.
CPLD kompiliavimui ir programavimui reikalinga programinė įranga yra laisvai prieinama iš „Altera“, tačiau šiai senajai daliai reikalinga senoji 9.1 versija. Geros naujienos yra tai, kad tai buvo mano mėgstamiausia senoji versija. Joje buvo intuityvus laiko analizatorius, bet vėlesnėje versijoje jis buvo pašalintas.
Spausdinta plokštė yra paprastos dvipusės konstrukcijos. Jei tik ji tinka, įžeminimui, o kartais ir maitinimo šaltiniui, naudoju varį. Kartais liejimas būna toks pažeistas, kad gali sukelti problemų arba prastų rezultatų, todėl vario liejimas vėlgi yra įrankis, tačiau jį reikia valdyti.
Šiandien daugelyje (jei ne daugumoje) CAD programinės įrangos paketų yra galutinio produkto 3D vaizdai, nors vaizdų tikslumas priklauso nuo detalėms pavaizduoti naudojamų 3D modelių. Čia galite pamatyti, kur pasirinkau 44 kontaktų lizdo, programavimo jungties ir osciliatoriaus 3D modelį. Štai keletas 3D paketų, kuriuos mėgstu naudoti:
Daugelis įmonių taip pat turi savo komponentų 3D modelius. „Molex“ yra tik vienas iš pavyzdžių, kaip įmonė gerai padirbėjo šioje srityje.
Mano padaryta klaida neturi įtakos funkcijai, pavyzdžiui, estetikai, ir tai nėra pagrindinė problema, tai yra, ji netinka vienai belitavimo maketo plokštei.
Kai tik pagalvojau, kad galėčiau pasidalinti projektu su kuo nors, iš karto likau nepatenkintas CPLD scheminiais simboliais ir 40 kontaktų jungties išvadų išdėstymu, kuris yra bendras jos dydis. Paėmiau 40 kontaktų dvieilės jungties simbolį ir pakoregavau jį iki 1 colio dydžio, bet kontaktų numeriai nėra 1, 2, 3, 4... o yra sunumeruoti 1 šone, kaip DIP korpuse 3, 5, 7... kaip ir juostinių kabelių jungtys. Todėl tai nėra intuityvus išdėstymas, norint nustatyti, kaip prijungti prie modulio, ir šalinti triktis.
Panašiai ir CPLD kontaktų priskyrimai yra šiek tiek painūs, todėl simboliams kurti naudojau įrankių rinkinį, kuris remiasi ribų nuskaitymo aprašymo kalba (BSDL). Dauguma pagrindinių tiekėjų turi BSDL failus savo pagrindiniams komponentams, kurie leidžia (pusiau) automatiškai kurti simbolius ir paketus. Kaip ir bet kokia automatizacija, ją reikia vertinti kaip įrankį ir, norint gauti geriausius rezultatus, gali prireikti papildomo apdorojimo. Šiuo atveju leidau jai išvardyti kontaktus abėcėlės tvarka, kuri yra beveik atsitiktinė, kai sekate kontaktus plokštėje. Galiu tik pasakyti, kad tą dieną labai jaudinausi.
Už šiuos sutrumpinimus kada nors sumokėsite pakeliui. Kai imsiuosi modifikuoti šį modulį, nustatysiu ir priskirsiu jam tinkamą kontaktų išdėstymą, kuris atitiktų pačią detalę, kad žinoti, kur įdėti osciloskopo zondą, būtų taip pat paprasta, kaip žvilgtelėti į schemos simbolį.
Naudojant grandinių plokštes, yra ir kitų patobulinimų, kurie daugiausia yra estetiniai arba naudingi. 1 kontakto indikatorius turėtų būti dažnesnis keliuose korpusuose, ir aš visada renkuosi paprastą įžeminimo tašką osciloskopo įžeminimui arba VOM laidui prijungti. Galėčiau tai pridėti pridėdamas dviejų kontaktų jungtį, kad maitinimas ir įžeminimas būtų prijungti tiesiai prie plokštės, o ne tvirtinami prie apatinių kontaktų.
Prieš modifikuodamas plokštę, noriu įsitikinti, kad ji tinkamai veikia esant fizinėms ir estetinėms problemoms. Įjungęs maitinimą ir įsitikinęs, kad osciliatorius veikia tinkamai, prijungiau programuotoją. Nors 3,3 V versija yra naujesnė nei programavimo programinė įranga, ji aptiko CPLD ir parodė jį kaip „nežinomą“ įrenginį.
Toliau „Quartus“ programoje sukūriau skaitiklį ir priskyriau jam kontaktų numerius. Greitas kompiliavimas ir atsisiuntimas bei osciloskopo matoma skaitiklio funkcija patvirtina, kad projektas yra įgyvendinamas.
Greito bandymo grandinė „Verilog“ kalboje yra labai paprasta. Kodas pateiktas žemiau. Galite atsisiųsti ZIP failą, kuriame yra schema ir „Verilog“ bandymo grandinė, kaip „Quartus II“ projektą (reikalinga 9.1 versija).
Kaip jau minėjau, atliksiu antrą spausdintinės plokštės peržiūrą, kad atkreipčiau daugiau dėmesio į detales, reikalingas dalijantis projektu ar atliekant bet kokius trikčių šalinimo veiksmus. Kadangi man reikia nustatyti apatinės jungties plotį iki 0,9 colio ar mažiau, galiu ir toliau jį nustatyti ties 0,6 colio, kuris yra standartinis „platus“ DIP korpusas. Tai reiškia, kad apatiniai kaiščiai turi būti išsikišę už CPLD lizdo kontūro. Gamyboje to nedaryčiau, nes tuo metu surinkimas buvo atliekamas rankomis, tačiau vienas iš tikslų buvo pagaminti rankinio litavimo rinkinį. Rankinio litavimo kompromisas yra tas, kad osciliatorius turi būti SMD paviršinio montavimo korpuse, o kiauryminė versija yra labai didelė ir paprastai nepalaiko norimo įtampos diapazono.
Ar įmanoma panaudoti šiuos modulius norint sukurti visiškai paprastą kompiuterį? Manau, kad man reikia pridėti atminties.
Cha cha...taip, tai priklauso nuo kompiuterio tipo. Tačiau „tikriems“ mikrovaldikliams / mikrokompiuteriams įtakos turi modulio „kontaktų sujungimas“, o tai reiškia, kad iš modulio negalima gauti pakankamai terminijos, kad būtų galima atlikti ką nors labai naudingo.
Sukūriau pilną NTSC kameros laiko ir režimo valdiklį, kurio dydis yra 64, todėl procesoriaus nereikia.
Knygoje „Nand to Tetris“ naudojami struktūrinis Verilog ir HDL yra daugmaž vienodi.
Kodėl reikia detalių su kiauryme? Suvirinti 0805 yra lengva! Dabar pats laikas kiekvienam meistrui išmokti šio įgūdžio.
Jei viršutinį lizdą priversiu persidengti su iš apačios lituotais kaiščiais, tada galėsiu naudoti „6 centrus“ (imituojant 40 kontaktų lustą) arba įstrižainę ir pan. Tai bus griežtai rankinis litavimo komponentų litavimas apatiniams laidams, viršutiniam lizdui už kojelių.
Tačiau pradedantiesiems sunku jį lituoti iš apačios. Kai lituoju maitinimo plokštės spausdintinės plokštės antgalius (šias pigias SMD adapterių plokštes, kurias galite naudoti „eBay“, galima naudoti prototipų kūrimui), įkišu antgalius į maitinimo plokštę, tada ant jų uždedu spausdintinę plokštę ir tada galiu lengvai lituoti. Tai labai tinka maitinimo plokštėms. Jei reikia lituoti iš apačios, tai dar sunkiau.
Jei CPLD yra viduryje (gali būti lengviau laidinti), jį galima montuoti įstrižai be persidengimo, yra 4 eilutės arba CPLD gali būti vienoje pusėje:
Ačiū už patarimą prieš litavimą įstatyti jungtį į maketo plokštę. Manoji yra šiek tiek nestabili.
O kaip dėl DIP formato maketavimo plokštės kontaktų viename gale ir paties lusto „dongle“ tipo lizdo kitame gale? Lustą galima pakabinti ant maketavimo plokštės galo. Maršrutas bus sandarus.
|####### ********************* |. Taip, nusprendžiau naudoti „Altera“ nemokamą versiją, kaip ir „Xilinx“ bei „Lattice“ turi „nemokamas“ versijas. Turiu užbaigti ciklą su Alu Williamsu, kad suprasčiau, ką palaiko visa atvira parama, įskaitant konkrečius įrenginių serijos atributus. Nepaisant to, su nemokama versija nuveikiau daug.
Taip, jūs parodote, kad CPLD sutampa su, mano manymu, kontaktais. Jei teisingai laikysiuosi nurodymų, tai gali atrodyti kaip 2 versija. Projektuodamas (masinei) gamybai, visada esu alergiškas „rankinio litavimo surinkimo“ žingsniui, nes jie persidengia (iš tikrųjų litavimo kontaktai ne komponento pusėje). ) Jau yra rankomis lituotas komponentas), bet tai tik mažas rinkinys, o ne gamybai skirtas dizainas. Tiesiog turiu keletą įpročių, kurių mano amžiuje sunku atsikratyti. :)
Manau, kad T formos plokštė su CPLD ir pasyviaisiais komponentais su plačia T formos dalimi bus labai naudinga pakabinus ją ant maketo krašto. Kažkas panašaus į „Adafruit RasPi T-Cobbler“ (http://www.adafruit.com/products/2028). Taip bus išnaudota didžioji dalis maketo ploto.
Deja, gamybos nutraukimas smarkiai apribos jo naudojimą šalutiniuose projektuose, kaip ir visų tų funkcijų generatorių, pagrįstų XR2206 ir ICL8038, naudojimą.
Įdomi idėja. Man patinka šie du lustai. CPLD nėra pasenęs, tai tiesiog pigesnis būdas jį įsigyti už 3,3 V.
Dėl tavo „nesąmonių“... tu tikrai nesukūrei naujo išdėstymo, kad galėtum jį įdėti į maketo schemą. Tiesiog pirmiausia prijunk laidą prie maketo schemos, o tada prijunk komutacinį laidą. Arba, jei gali nuo vienos iš jų atjungti maitinimo ir įžeminimo juostas, naudok dvi maketo schemos.
Apie „Altium“ ir „Eagle“. Ar svarstėte apie „KiCad“? Jis neturi jokių apribojimų, dėl kurių jums labiau patinka „Altium“ nei „Eagle“, ir pagal numatytuosius nustatymus generuoja DRC klaidas visiems neprijungtiems kontaktams. Jei tikrai norite atidaryti kontaktą, turite jam tai pasakyti. (Galbūt tik įvesties, ne išvesties, ir tai dar nebuvo patikrinta). Dar viena puiki savybė yra ta, kad jį labai lengva išmokti. Tai užtruko tik popietę, o puikus įvadinis vadovas padėjo man pradėti.
Man labiau patinka (didesnė dalis) SMD virš kiauryminės skylės. Jas lengviau naudoti. Nereikia nuolat sukti spausdintinės plokštės. (Dėl veidrodinio atspindžio buvo padaryta keletas kvailų klaidų...). Ir nereikia nupjauti rezistoriaus laido. Dalijant dizainą, ant spausdintinės plokštės arba vienos dalies galima patogiai sudėti kelis korpusus. SMD rezistorius TH. (Tai šiek tiek apsunkina išdėstymą).
Aš naudojau „KiCad Getting Started“ PDF formatu. Senoji versija, kurią naudojau, yra 29 puslapių, o naujausia versija – 52 puslapių. Ją galite rasti kituose vadovėliuose (įskaitant vaizdo įrašų nuorodas): http://kicad-pcb.org/help/tutorials/
Žinau, kad [Chrisas Gemmellas] iš „Hackaday“ ir „The Amp Hour“ sukūrė straipsnių seriją apie „Kicad“ http://kicad-pcb.org/help/tutorials/
„Kicad“ gali būti naudingas, pažiūrėsiu, kas bus 2-oje versijoje. Dėkoju už pasiūlymus. Neprijungti įėjimai yra geras dalykas DRC (ERC), o jungčių ir kitų dalykų, kurie juos palaiko programine įranga arba I/O, atveju daugumos CAD atjungimo pranešimų paprastai galima išvengti.
Atlikite greitą testą ir įmeskite jungtį į tuščią lentelę, paleiskite anotacijas ir DRC. Kiekvienam kontaktui buvo pateiktos DRC klaidos. Tačiau pažymėti žinomus nesujungtus kontaktus yra labai paprasta.
Nustatykite pasyvų režimą. Turiu ieškoti (Redaguoti komponentą -> Redaguoti naudojant bibliotekos redaktorių). Bibliotekos redaktorius atsidaro ir įkelia jūsų komponentą atskirame lange, galite patikrinti arba pakeisti bet kurią komponento dalį. Pakeistą komponentą galima išsaugoti arba atnaujinti jūsų schemoje. Tai labai palengvina komponentų keitimą. Man biblioteka nelabai rūpi. Pavyzdžiui, jei naudojate cpld, norite priskirti prasmingus pavadinimus kontaktams. Dar svarbiau, kad yra gera sąsaja, skirta kurti savo komponentus.
„KiCad“ ERC sistemoje „nesujungti“ kontaktai skiriasi nuo „pasyviųjų kontaktų“ tipo, ir visi „nesujungti“ kontaktai generuos klaidas. ERC veikimo principą galima lengvai pritaikyti pagal savo pageidavimus: Įrankiai -> Elektros taisyklių tikrintuvas -> Nustatymai.


Įrašo laikas: 2021 m. lapkričio 18 d.