Një pajisje komplekse logjike e programueshme (CPLD) është një pjesë thelbësore e pajisjeve në repertorin tuaj. Siç sugjeron edhe emri, ju mund t'i programoni këto çipa për të ofruar funksionet logjike që ju nevojiten. Kjo mund të jetë zëvendësimi i çipave të vjetëruar, ose thjesht një mënyrë për të mësuar dhe provuar teknologji të ndryshme. Çfarë mënyre më të mirë për të mësuar sesa përdorimi i CPLD dhe provimi i saj?
Krijova një modul CPLD në mënyrë që të mund ta lidhja me shumë gjëra, duke përfshirë edhe pllakat e saldimit pa saldim, por bëra një gabim. Duket se hapësira e disponueshme për lidhje në pllakën e saldimit pa saldim është 1.1 inç. E kam bërë hapësirën 1 inç të gjerë, duke mos lënë vend për një rresht telash në të dyja anët. Ëëë.
Por më lejoni të kthehem dhe të tregoj më shumë rreth asaj që po bëj, dua të krijoj një logjikë të programueshme që mund të ndërtohet si një komplet, mund të saldohet lehtësisht në shtëpi, mund të programohet në një qark dhe mund të funksionojë në 3.3 ose 5 volt.
Për të realizuar një komplet të lehtë për t’u bashkuar me saldim, përdora një komponent të vjetër CPLD, i cili është gjithashtu i disponueshëm në versionet 3.3v dhe 5v, dhe do të ruajë programimin e tij pavarësisht nga furnizimi me energji. Logjika në vetvete është një qark i integruar CPLD nga seria Altera Max, i disponueshëm në dy versione, i përshtatshëm për pllaka qarku me 32 ose 64 makroqeliza. Makroqelizat janë blloqet themelore të ndërtimit logjik që programohen duke përdorur "terma" logjikë dhe më pas ndërlidhen me makroqeliza të tjera përmes ndërlidhjeve të programueshme.
Duke parë skemën, mund të shihni se nuk ka shumë përmbajtje: në thelb CPLD, qarku i programimit brenda qarkut dhe oscilatori që drejton logjikën CPLD.
Kjo pjesë quhet EPM7032 dhe EPM7064, duke përdorur mbajtëse çipi për përçues plastik me 44 kunja (PLCC), ndonjëherë të quajtur përçues J për shkak të formës J të përçuesit. Kjo pako mund të futet në një prizë me vrimë të ndërmjetme ose të saldohet direkt në PCB.
Përmban një oscilator të integruar, kështu që CPLD mund të kryejë operacione në mënyrë statike dhe të krijojë numërues të shpejtë vetë pa pasur nevojë për një orë të jashtme. Nëse është i disponueshëm një orë e jashtme, ora me shpejtësi të lartë në modul mund të përdoret për të krijuar një ngjarje ore në çdo skaj në ngritje ose në rënie të orës së jashtme, dhe prapëseprapë të ndiqni udhëzimet CPLD/FPGA, domethënë, duhet të përdorni rrjetin e brendshëm global të orës në vend të disqeve "Asinkrone" të hyrjes së orës. Tensioni i vlerësuar i furnizimit me energji i këtij oscilatori është midis 1.8 dhe 5.5 volt.
Nëse e shikoni videon, do të shihni se unë diskutoj preferencën time personale se si të trajtoj pinin "INH" në oscilator; thënë thjesht, pasi kontrolloj nëse fleta e specifikimeve është e ligjshme, kam tendencë ta lë të qëndrojë pezull.
Kur merresha me funksione të tilla, arsyet që më shkrepën ndërmend përfshinin mospëlqimin tim për të lidhur kunjat hyrëse direkt me shinat e energjisë (nëse është e mundur). Domethënë, unë preferoj të përdor rezistorë në seri për të kufizuar rrymën gjatë kalimtarëve, edhe nëse nuk do të duhej të ishte e nevojshme.
Gjatë viteve, kam parë disa probleme në prodhim (seri të mëdha), dhe herë pas here gjëra të tilla si cikli i energjisë do të lejonin që kunjat e lidhura direkt me shinën e energjisë të kishin një tension më të lartë se vetë çipi, gjë që është keq. Së fundmi, lidhni kunjën me shinën e energjisë përmes një rezistori (qoftë me energji apo tokë), dhe njerëzit mund të ndryshojnë mendje dhe ta përdorin kunjën më vonë. Kjo është veçanërisht e vërtetë në përvojën time me dyert e papërdorura, ndoshta e dini që këto dyer nuk duhet të lihen kurrë pezull ose të palidhura. Duke përdorur një rezistencë tërheqëse, mund të lidhni sinjalin dhe të përdorni portën pa prerë gjurmë bakri.
Konektori 10-pin dhe disa rezistorë formojnë qarkun e programimit. Nëse të gjithë rezistorët janë rezistorë tërheqës, unë do të përdorja një rrjet rezistorësh, por mjerisht, njëri është i tokëzuar.
Për të programuar një CPLD kaq të pavarur, kërkohet një programues i dedikuar. Kjo është e lehtë për mua ta them, sepse zakonisht kam disa të shtrirë pranë meje, por nëse nuk keni një, nuk do të jetë shumë e dhimbshme të hyni në lojë. "Altera USB Blaster" i miratuar shitet për 50 dollarë dhe mund të blihet nga Digikey dhe vende të tjera. Kam disa klone nga Ebay, njëri prej të cilëve është një klon që mbështet Altera, Xilinx dhe Lattice në të njëjtën kohë. Ekziston një projekt dhe kod në internet që mund të përdoret për të bërë klonin tuaj, do ta rendis atë në listën time të videove të mundshme për projektin e krijimit të kloneve të programuesve. Do të tregoj gjithashtu një dizajn mburoje në të cilin mund të programohen motherboard, Arduino, PIC, etj.
Softueri i nevojshëm për të kompiluar dhe programuar CPLD është i disponueshëm falas nga Altera, por kjo pjesë e vjetër kërkon versionin e vjetër 9.1. Lajmi i mirë është se ishte versioni im i vjetër i preferuar. Kishte një analizues intuitiv të kohës, por u hoq në një version të mëvonshëm.
PCB është një dizajn i thjeshtë me dy anë, për sa kohë që pllaka e qarkut i përshtatet, unë kam tendencë të përdor bakër për tokëzim dhe ndonjëherë për furnizim me energji. Ndonjëherë derdhja prishet aq shumë sa mund të shkaktojë probleme ose rezultate të paqëndrueshme, kështu që derdhja e bakrit përsëri është një mjet, por duhet të menaxhohet.
Sot, shumë (nëse jo shumica) e paketave të softuerëve CAD përmbajnë pamje 3D të produktit përfundimtar, megjithëse saktësia e imazheve është aq e saktë sa edhe modelet 3D të përdorura për të përfaqësuar pjesët. Këtu mund të shihni se ku zgjodha modelin 3D për prizën 44-pinëshe, lidhësin e programimit dhe oscilatorin. Ja disa paketa 3D që më pëlqen të përdor:
Shumë kompani kanë gjithashtu modele 3D të komponentëve të tyre. Molex është vetëm një shembull i një kompanie që ka bërë një punë të mirë në këtë fushë.
Gabimi që bëra nuk ndikon në funksion si estetika, dhe nuk është problemi kryesor, domethënë, nuk është i përshtatshëm për një dërrasë të vetme pa saldim.
Sapo mendova se mund ta ndaja dizajnin me këdo, menjëherë u pakënaqava me simbolet skematike të CPLD-së dhe me pinout-in e lidhësit 40-pin, që është edhe sipërfaqja e tij e përgjithshme. Mora një simbol lidhësi me dy rreshta 40-pin dhe e rregullova në një sipërfaqe prej 1 inç, por numrat e pin-eve nuk janë 1, 2, 3, 4... por janë të numëruar 1 në anë si një paketë DIP 3, 5, 7... njësoj si lidhësit e kabllove me shirit. Prandaj, është një sipërfaqe jo-intuitive për përcaktimin e mënyrës së lidhjes me modulin dhe zgjidhjen e problemeve.
Në mënyrë të ngjashme, caktimet e pin-eve CPLD janë paksa konfuze, dhe unë përdora një sërë shërbimesh që mbështeten në Boundary Scan Description Language (BSDL) për të krijuar simbole. Shumica e shitësve kryesorë kanë skedarë BSDL të disponueshëm për komponentët e tyre kryesorë, të cilët ju lejojnë të krijoni (gjysmë) automatikisht simbole dhe paketa. Ashtu si çdo automatizim, duhet të shihet si një mjet dhe mund të kërkojë masa të mëtejshme për rezultatet më të mira. Në këtë rast, e lashë të rendiste pin-et në rend alfabetik, gjë që është pothuajse e rastësishme kur gjurmohen pin-et në tabelë. Mund të them vetëm se isha shumë i shqetësuar atë ditë.
Ju paguani për këto shkurtesa ndonjëherë gjatë rrugës. Kur të shkoj ta modifikoj këtë modul, do ta përcaktoj dhe do t'i jap një pozicion gjilpëre që përputhet me vetë pjesën, në mënyrë që të dini se ku ta vendosni sondën e osciloskopit të jetë po aq e lehtë sa të shikoni simbolin skematik.
Kur përdoren tabela qarku, ka përmirësime të tjera që janë kryesisht estetike ose të dobishme. Treguesi i pinit 1 duhet të jetë më i zakonshëm në disa paketa, dhe unë gjithmonë preferoj një pikë të thjeshtë tokëzimi për të lidhur tokëzimin e osciloskopit ose kabllon VOM. Mund ta shtoj këtë duke shtuar një lidhës me dy pina në mënyrë që energjia dhe tokëzimi të mund të aplikohen direkt në tabelë në vend që të fiksohen në pinat e poshtme.
Përpara se ta modifikoj qarkun, dua të sigurohem që funksionon siç duhet në rast problemesh fizike dhe estetike. Pasi e ndeza dhe konfirmova që oscilatori po funksionon siç duhet, e lidha programuesin në prizë. Edhe pse versioni 3.3v është më i ri se softueri i programimit, ai zbuloi CPLD-në dhe e shfaqi atë si një pajisje "të panjohur".
Më pas, krijova një numërues në Quartus dhe caktova numra PIN-esh. Kompilimi dhe shkarkimi i shpejtë dhe funksioni i numëruesit i parë nga osciloskopi vërtetojnë që dizajni është i realizueshëm.
Qarku i shpejtë i testimit në Verilog është shumë i thjeshtë. Kodi është renditur më poshtë. Mund të shkarkoni një skedar ZIP që përmban skemën dhe qarkun e testimit Verilog si një projekt Quartus II (kërkon versionin 9.1).
Siç e përmenda, do të bëj një rishikim të dytë të qarkut për t'i kushtuar më shumë vëmendje detajeve të nevojshme kur ndaj dizajnin ose kur bëj ndonjë numër zgjidhjesh problemesh. Meqenëse duhet ta vendos gjerësinë e lidhësit të poshtëm në 0.9 inç ose më pak, mund të vazhdoj ta vendos në 0.6 inç, që është një paketë standarde "e gjerë" DIP. Kjo do të thotë që kunjat e poshtme të dalin nga gjurma e prizës CPLD. Nuk do ta bëja këtë në një situatë prodhimi sepse në atë kohë ishte montuar me dorë, por një nga qëllimet ishte të bëja një komplet saldimi me dorë. Kompromisi i saldimit me dorë është se oscilatori duhet të jetë në një strehim SMD të montuar në sipërfaqe, versioni me vrimë është shumë i madh dhe zakonisht nuk e mbështet diapazonin e tensionit që dua.
A është e mundur të përdoren këto module për të ndërtuar një kompjuter të plotë dhe të thjeshtë? Mendoj se duhet të shtoj memorie.
Lol... po, varet nga lloji i kompjuterit. Megjithatë, mikrokontrolluesit/mikrokompjuterët "e vërtetë" ndikohen nga "lidhja me kunja" e modulit, që do të thotë se nuk mund të marrësh terminologji të mjaftueshme nga moduli për të bërë diçka shumë të dobishme.
Bëra një kontrollues të plotë të kohës dhe modalitetit të kamerës NTSC me një madhësi prej 64, kështu që nuk kërkohet procesor.
Verilog-u Strukturor dhe HDL-ja e përdorur në librin Nand në Tetris janë pak a shumë të njëjta.
Pse pjesët janë me vrima të thella? Saldimi 0805 është i lehtë! Tani është koha që çdo mjeshtër i saldimit ta mësojë këtë aftësi.
Nëse e bëj prizën e sipërme të mbivendoset me kunjat e salduara nga poshtë, atëherë mund të përdor "6 qendra" (duke simuluar një çip me 40 kunja) ose diagonale, etj. Këto do të jenë komponentë të salduar në mënyrë strikte manuale për saldimin e kabllove të poshtme. Priza e sipërme pas këmbëve.
Por është e vështirë për fillestarët ta bashkojnë me kallaj nga poshtë. Kur bashkoj kolektorë për PCB-në e pllakës së integruar (këto pllaka përshtatëse SMD të lira që mund të përdorni në eBay mund të përdoren për prototipim), i fut kolektorët në pllakë, pastaj vendos PCB-në mbi të dhe pastaj mund ta bashkoj me kallaj lehtësisht. Është shumë i përshtatshëm për pllakat e integruara. Nëse duhet ta bashkoni me kallaj nga poshtë, është edhe më e vështirë.
Nëse CPLD është në mes (mund të jetë më e lehtë për t'u lidhur me tela), mund të instalohet diagonalisht pa mbivendosje, ka 4 rreshta, ose CPLD mund të jetë në njërën anë:
Faleminderit për këshillën për të futur lidhësin në pllakën e bukës para saldimit. I imi është pak i paqëndrueshëm.
Po sikur të kemi kunjat e pllakës së integrimit në formatin DIP në njërën anë dhe folenë e çipit të tipit "dongle" në anën tjetër? Çipi mund të varet në fund të pllakës së integrimit. Lidhja do të jetë e ngushtë.
|####### ********************* |. Po, vendosa të përdor versionin "falas" të Altera-s, ashtu si Xilinx dhe Lattice kanë versione "falas". Duhet ta mbyll ciklin me Al Williams për të kuptuar se çfarë mbështet e gjithë mbështetja e hapur, e cila duhet të përfshijë atributet specifike të serisë së pajisjeve. Megjithatë, kam bërë shumë me versionin falas.
Po, po tregoni se CPLD mbivendoset me kunjat besoj. Nëse e ndjek saktë, kjo mund të duket si versioni 2. Kur projektoj për prodhim (masiv), jam gjithmonë alergjik ndaj hapit të "montimit me saldim me dorë" sepse ato mbivendosen (në fakt kunjat me saldim në anën jo-komponente). ) Është tashmë një komponent i salduar me dorë), por ky është vetëm një komplet i vogël, jo një dizajn i orientuar drejt prodhimit. Unë thjesht kam disa zakone që janë të vështira për t'u hequr qafe në moshën time. 
Mendoj se një qark në formë T-je me CPLD dhe komponentë pasivë me një pjesë të gjerë në formë T-je do të jetë shumë e dobishme kur varet në buzë të pllakës së shpërndarjes. Diçka e ngjashme me Adafruit RasPi T-Cobbler (http://www.adafruit.com/products/2028). Kjo do ta bëjë pjesën më të madhe të sipërfaqes së pllakës së shpërndarjes të disponueshme.
Fatkeqësisht, ndërprerja e prodhimit do ta kufizojë ndjeshëm përdorimin e tij në projekte anësore, njësoj si të gjithë ata gjeneratorë funksionesh të bazuar në XR2206 dhe ICL8038.
Ide interesante. Më pëlqejnë këto dy çipa. CPLD nuk është i vjetëruar, është thjesht një mënyrë më e lirë për ta blerë me 3.3v.
Lidhur me "marrëzinë" tënde... nuk ke bërë ndonjë plan të ri për ta vendosur në pllakën e integruar. Thjesht vendos telin fillimisht në pllakën e integruar dhe pastaj vendos kabllon e integruar në tel. Ose, nëse mund t'i heqësh shiritat e energjisë dhe të tokëzimit nga njëri prej tyre, përdor 2 pllakën e integruar.
Rreth Altium dhe Eagle. A e keni konsideruar KiCad? Nuk ka ndonjë kufizim që ju të preferoni Altium mbi Eagle, dhe si parazgjedhje gjeneron gabime DRC për të gjitha pin-et e palidhura. Nëse doni vërtet të hapni një pin, duhet ta tregoni. (Ndoshta vetëm për hyrje, jo për dalje, dhe nuk është kontrolluar ende). Një tjetër veçori e shkëlqyer është se është shumë e lehtë për t'u mësuar. Më mori vetëm një pasdite, dhe manuali i shkëlqyer hyrës më ndihmoi të filloja.
Unë preferoj pjesën (më të madhe) smd mbi vrimën e kalimit. Ato janë më të lehta për t'u përdorur. Nuk ke nevojë ta rrotullosh pcb-në gjatë gjithë kohës. (Janë bërë disa gabime të trashë për shkak të pasqyrimit...). Dhe nuk ke nevojë të presësh telin e rezistencës. Kur ndani të njëjtin dizajn, paketa të shumta mund të vendosen lehtësisht në një pcb ose në një pjesë të vetme. Rezistenca SMD TH. (E bën paraqitjen pak më të komplikuar).
Unë përdora "Kicad Getting Started" në formatin pdf. Versioni i vjetër që përdora është 29 faqe, dhe versioni më i fundit ka 52 faqe. Mund ta gjeni në tutoriale të tjera (duke përfshirë lidhjet e videove): http://kicad-pcb.org/help/tutorials/
E di që [Chris Gemmell] nga Hackaday dhe The Amp Hour bëri një seri mbi Kicad http://kicad-pcb.org/help/tutorials/
Kicad mund të jetë i dobishëm, më lejoni të shoh se çfarë ndodh në Rev 2. Faleminderit për sugjerimet tuaja. Hyrjet e palidhura janë një gjë e mirë për DRC (ERC), dhe për lidhësit dhe gjëra të tjera që i mbajnë ato të buta ose IO, shumica e mesazheve të shkëputjes CAD zakonisht mund të shmangen.
Kryeni një test të shpejtë dhe vendoseni lidhësin në një tabelë bosh, ekzekutoni shënime dhe DRC. Më dha gabime drc për secilën pin. Megjithatë, shënimi i pin-eve të panjohura të palidhura është shumë i thjeshtë.
Vendosur në pasiv. Duhet të kërkoj (Redakto Komponentin -> Redakto me Redaktorin e Bibliotekës). Redaktori i bibliotekës hapet dhe ngarkon komponentin tuaj në një dritare të veçantë, ju mund të kontrolloni ose ndryshoni çdo pjesë të komponentit. Komponenti i ndryshuar mund të ruhet ose përditësohet në skemën tuaj. Kjo e bën shumë të lehtë ndryshimin e komponentëve. Nuk më intereson shumë biblioteka. Për shembull, nëse përdorni cpld, doni t'u caktoni emra kuptimplotë kunjave. Më e rëndësishmja, ekziston një ndërfaqe e mirë për të dizajnuar komponentët tuaj.
Në ERC-në e KiCad-it, kunjat "e palidhura" janë një lloj kuni i ndryshëm nga "kunjat pasive" dhe të gjitha kunjat "e palidhura" do të gjenerojnë gabime. Mënyra se si funksionon ERC mund të përshtatet lehtësisht sipas preferencave tuaja: Mjete -> Kontrollues i Rregullave Elektrike -> Opsione.
Koha e postimit: 18 nëntor 2021





