Kompleksni programabilni logički uređaj (CPLD) je bitan dio hardvera u vašem repertoaru. Kao što i samo ime govori, možete programirati ove čipove da pružaju logičke funkcije koje su vam potrebne. Ovo može biti zamjena zastarjelih čipova ili samo način učenja i isprobavanja različitih tehnologija. Postoji li bolji način za učenje od korištenja CPLD-a i njegovog isprobavanja?
Napravio sam CPLD modul kako bih ga mogao uključiti u mnogo stvari, uključujući i ploče za beslemno spajanje, ali sam pogriješio. Izgleda da je raspoloživi prostor za utikače na ploči za beslemno spajanje 1,1 inča. Napravio sam otisak širine 1 inča, ne ostavljajući mjesta za red žica sa obje strane. Hm.
Ali dozvolite mi da se vratim i pokažem više o tome šta radim. Želim napraviti programabilnu logiku koja se može sastaviti kao kit, lako se može zalemiti kod kuće, može se programirati u kolu i može raditi na 3,3 ili 5 volti.
Kako bih realizovao komplet koji se lako lemi, koristio sam staru CPLD komponentu, koja je dostupna i u verzijama od 3,3 V i 5 V, i koja će zadržati svoje programiranje bez obzira na napajanje. Sama logika je CPLD IC iz Altera Max serije, dostupan u dvije verzije, pogodan za štampane ploče sa 32 ili 64 makroćelije. Makroćelije su osnovni logički gradivni blokovi koji se programiraju pomoću logičkih "termina", a zatim se međusobno povezuju s drugim makroćelijama putem programabilnih međusobnih veza.
Gledajući shemu, možete vidjeti da nema mnogo sadržaja: u osnovi CPLD, kolo za programiranje unutar kola i oscilator koji pokreće CPLD logiku.
Ovaj dio se naziva EPM7032 i EPM7064, koristeći 44-pinski plastični nosač čipa (PLCC), ponekad nazvan J-izvod zbog J oblika izvoda. Ovo kućište se može umetnuti u prolazni otvor ili direktno zalemiti na PCB.
Sadrži ugrađeni oscilator, tako da CPLD može samostalno obavljati operacije sa zadržavanjem stanja i kreirati brze brojače bez potrebe za vanjskim taktom. Ako je dostupan vanjski takt, brzi takt na modulu može se koristiti za kreiranje događaja takta na svakoj rastućoj ili silaznoj ivici vanjskog takta, a da se i dalje slijede smjernice CPLD/FPGA, odnosno, zaista biste trebali koristiti internu globalnu mrežu takta umjesto "asinhronog" pogona ulaza takta. Nazivni napon napajanja ovog oscilatora je između 1,8 i 5,5 volti.
Ako pogledate video, vidjet ćete da raspravljam o svojim ličnim preferencijama u vezi s rukovanjem pinom "INH" na oscilatoru; jednostavno rečeno, nakon što provjerim da li su specifikacije legalne, obično pustim da plutaju.
Kada sam se bavio takvim funkcijama, razlozi koji su mi pali na pamet uključivali su moju nesklonost direktnom povezivanju ulaznih pinova na napojne šine (ako je moguće). To jest, radije koristim serijske otpornike kako bih ograničio struju tokom tranzijenata, čak i ako to ne bi trebalo biti potrebno.
Tokom godina, vidio sam neke probleme u proizvodnji (velike serije), a povremeno bi stvari poput cikličkog uključivanja i isključivanja napajanja dozvolile da pinovi direktno povezani na napojnu šinu imaju viši napon od samog čipa, što je loše. Konačno, povežite pin na napojnu šinu preko otpornika (bilo da je to napajanje ili uzemljenje), i ljudi mogu promijeniti mišljenje i kasnije koristiti pin. Ovo je posebno tačno po mom iskustvu sa nekorištenim vratima, vjerovatno znate da ova vrata nikada ne bi trebala ostati plutajuća ili nepovezana. Korištenjem pull-up otpornika možete spojiti signal i koristiti gejt bez rezanja bakarnih tragova.
10-pinski konektor i nekoliko otpornika formiraju programski krug. Ako su svi otpornici pull-up otpornici, koristio bih mrežu otpornika, ali nažalost, jedan je uzemljen.
Za programiranje takvog nezavisnog CPLD-a potreban je namjenski programator. Lako mi je to reći, jer obično imam nekoliko pri ruci, ali ako nemate jedan, neće biti previše bolno ući u igru. Odobreni "Altera USB Blaster" prodaje se za 50 dolara i može se kupiti od Digikey-a i drugih mjesta. Imam nekoliko klonova sa Ebaya, od kojih je jedan klon koji istovremeno podržava Alteru, Xilinx i Lattice. Na internetu postoji projekat i kod koji se može koristiti za izradu vlastitog klona, navest ću ga na svojoj listi mogućih videa za projekat izrade klonova programatora. Također ću pokazati dizajn štita u kojem se mogu programirati matična ploča, Arduino, PIC itd.
Softver potreban za kompajliranje i programiranje CPLD-a je slobodno dostupan od Altere, ali ovaj stari dio zahtijeva staru verziju 9.1. Dobra vijest je da je to bila moja omiljena stara verzija. Imala je intuitivni analizator vremena, ali je uklonjen u kasnijoj verziji.
PCB je jednostavan dvostrani dizajn, sve dok štampana ploča odgovara, obično koristim bakar za uzemljenje, a ponekad i za napajanje. Ponekad izlijevanje postane toliko oštećeno da zapravo može uzrokovati probleme ili loše krajnje rezultate, tako da je izlijevanje bakra opet alat, ali ga treba kontrolisati.
Danas, mnogi (ako ne i većina) CAD softverskih paketa sadrže 3D prikaze konačnog proizvoda, iako je tačnost slika samo onoliko tačna koliko su tačni 3D modeli korišteni za predstavljanje dijelova. Ovdje možete vidjeti gdje sam odabrao 3D model za 44-pinski priključak, programski konektor i oscilator. Evo nekih 3D paketa koje volim koristiti:
Mnoge kompanije također imaju 3D modele svojih komponenti. Molex je samo jedan primjer kompanije koja je uradila dobar posao u ovoj oblasti.
Greška koju sam napravio ne utiče na funkciju poput estetike, i nije glavni problem, odnosno, nije pogodno za jednu beslemnu ploču.
Čim sam pomislio da bih mogao podijeliti dizajn s nekim, odmah sam bio nezadovoljan CPLD-ovim shematskim simbolima i rasporedom pinova 40-pinskog konektora, što je njegov ukupni otisak. Uzeo sam simbol 40-pinskog dvostrukog konektora i prilagodio ga na otisak od 1 inča, ali brojevi pinova nisu 1, 2, 3, 4... već su numerisani sa 1 sa strane kao DIP paket 3, 5, 7... baš kao konektori za trakasti kabel. Stoga je to neintuitivan otisak za određivanje načina povezivanja s modulom i rješavanje problema.
Slično tome, dodjela CPLD pinova je pomalo zbunjujuća, te sam koristio skup uslužnih programa koji se oslanjaju na Boundary Scan Description Language (BSDL) za kreiranje simbola. Većina glavnih proizvođača ima BSDL datoteke dostupne za svoje mainstream komponente, što vam omogućava (polu)automatsko kreiranje simbola i paketa. Kao i svaka automatizacija, treba je posmatrati kao alat i može zahtijevati daljnje postupanje za najbolje rezultate. U ovom slučaju, pustio sam da navede pinove abecednim redom, što je gotovo nasumično kada se prate pinovi na ploči. Mogu samo reći da sam tog dana bio jako anksiozan.
Za ove prečice platite nekad usput. Kada krenem modificirati ovaj modul, odredit ću i dati mu položaj pinova koji odgovara samom dijelu, tako da je znati gdje postaviti sondu osciloskopa jednostavno kao pogledati shematski simbol.
Prilikom korištenja štampanih ploča, postoje i druga poboljšanja koja su uglavnom estetske ili korisne prirode. Indikator pina 1 treba biti češći u nekoliko kućišta, a ja uvijek preferiram jednostavnu tačku uzemljenja za spajanje uzemljenja osciloskopa ili VOM voda. Možda bih ovo dodao dodavanjem dvo-pinskog konektora tako da se napajanje i uzemljenje mogu direktno primijeniti na ploču umjesto da se pričvrste na donje pinove.
Prije nego što modificiram ploču, želim se uvjeriti da ispravno radi u slučaju fizičkih i estetskih problema. Nakon uključivanja i potvrde da oscilator ispravno radi, priključio sam programator. Iako je verzija od 3,3 V novija od softvera za programiranje, detektirala je CPLD i prikazala ga kao "nepoznati" uređaj.
Zatim sam kreirao brojač u Quartusu i dodijelio mu brojeve pinova. Brzo kompajliranje i preuzimanje, kao i funkcija brojača koju je vidio osciloskop, potvrđuju da je dizajn izvodljiv.
Brzo testno kolo u Verilogu je vrlo jednostavno. Kod je naveden ispod. Možete preuzeti ZIP datoteku koja sadrži shemu i Verilog testno kolo kao Quartus II projekat (potrebna je verzija 9.1).
Kao što sam spomenuo, napravit ću drugu reviziju štampane ploče kako bih obratio više pažnje na detalje potrebne prilikom dijeljenja dizajna ili rješavanja bilo kakvih problema. Budući da širinu donjeg konektora trebam postaviti na 0,9 inča ili manje, mogu ga nastaviti postavljati na 0,6 inča, što je standardno "široko" DIP kućište. To znači da donji pinovi moraju viriti izvan CPLD podnožja. Ne bih to radio u proizvodnoj situaciji jer se u to vrijeme sastavljalo ručno, ali jedan od ciljeva je bio napraviti komplet za ručno lemljenje. Kompromis kod ručnog lemljenja je taj što oscilator mora biti u SMD kućištu za površinsku montažu, dok je verzija s prolaznim otvorom vrlo velika i obično ne podržava raspon napona koji želim.
Da li je moguće koristiti ove module za izgradnju potpuno jednostavnog računara? Mislim da trebam dodati memoriju.
Lol... da, zavisi od vrste računara. Međutim, na "prave" mikrokontrolere/mikroračunare utiče "spajanje pinova" modula, što znači da ne možete dobiti dovoljno terminologije iz modula da biste uradili nešto previše korisno.
Napravio sam kompletan NTSC kontroler za tajming i način rada kamere veličine 64, tako da nije potreban procesor.
Strukturni Verilog i HDL korišteni u knjizi "Od Nanda do Tetrisa" su manje-više isti.
Zašto su dijelovi s prolaznim rupama? Zavarivanje 0805 je jednostavno! Sada je vrijeme da svaki majstor nauči ovu vještinu.
Ako napravim da se gornja utičnica preklapa s pinovima zalemljenim odozdo, onda mogu koristiti "6 centara (simulirajući 40-pinski čip) ili dijagonalu, itd.. Ovo će biti strogo ručno lemljenje komponenti za lemljenje donjih vodova. Gornja utičnica iza stopala.
Ali početnicima je teško lemiti ga s dna. Kada lemim konektore za PCB ploče (ove jeftine SMD adapterske ploče koje možete koristiti na eBayu mogu se koristiti za izradu prototipova), umetnem konektore u ploču, zatim stavim PCB na nju i onda mogu lako lemiti. Vrlo je pogodno za ploče. Ako ga trebate lemiti s dna, to je još teže.
Ako se CPLD nalazi u sredini (možda je lakše ožičiti), može se instalirati dijagonalno bez preklapanja, postoje 4 reda ili CPLD može biti na jednoj strani:
Hvala na savjetu da se konektor umetne u ploču za testiranje prije lemljenja. Moja je malo nestabilna.
Šta kažete na DIP format pinova na probnoj ploči na jednom kraju i "dongle" tipa samog podnožja čipa na drugom kraju? Čip se može okačiti na kraj probne ploče. Usmjeravanje će biti čvrsto.
|####### ******************** |. Da, odlučio sam koristiti Alterinu "besplatnu" verziju, baš kao što Xilinx i Lattice imaju "besplatne" verzije. Moram završiti ciklus s Alom Williamsom kako bih razumio šta sve otvorena podrška podržava, što mora uključivati specifične atribute serije uređaja. Uz to rečeno, mnogo sam uradio s besplatnom verzijom.
Da, pokazujete da se CPLD preklapa s pinovima, vjerujem. Ako se ispravno pridržavam, ovo bi moglo izgledati kao rev 2. Prilikom dizajniranja za (masivnu) proizvodnju, uvijek sam alergičan na korak "ručnog lemljenja" jer se preklapaju (zapravo, pinovi za lemljenje na strani koja nije komponenta). ) Već je ručno lemljena komponenta), ali ovo je samo mali komplet, a ne dizajn orijentiran na proizvodnju. Imam samo neke navike kojih se teško riješiti u mojim godinama. 
Mislim da će T-oblikovana štampana ploča sa CPLD-om i pasivnim komponentama sa širokim T-oblikovanim dijelom biti veoma korisna kada se okači na ivicu ploče za izradu testnih komada. Nešto slično Adafruit RasPi T-Cobbler-u (http://www.adafruit.com/products/2028). Ovo će učiniti većinu prostora na ploči dostupnim.
Nažalost, prekid proizvodnje će ozbiljno ograničiti njegovu upotrebu u sporednim projektima, baš kao i kod svih onih generatora funkcija baziranih na XR2206 i ICL8038.
Zanimljiva ideja. Sviđaju mi se ova dva čipa. CPLD nije zastario, samo je jeftiniji način da se kupi na 3.3v.
Što se tiče tvojih "gluposti"... zaista nisi napravio novi raspored da bi to stavio na ploču za testiranje. Samo prvo stavi žicu na ploču, a zatim stavi CPLD na žicu. Ili, ako možeš skinuti trake za napajanje i uzemljenje s jedne od njih, koristi dvije ploče za testiranje.
Što se tiče Altiuma i Eaglea. Jeste li razmatrali KiCad? Nema nikakvih ograničenja da preferirate Altium u odnosu na Eagle i po defaultu generira DRC greške za sve nepovezane pinove. Ako zaista želite otvoriti pin, morate mu to reći. (Možda samo za ulaz, ne i za izlaz, i to još nije provjereno). Još jedna sjajna karakteristika je što ga je vrlo lako naučiti. Trebalo mi je samo jedno popodne, a odličan uvodni priručnik me je pokrenuo.
Više volim (veći dio) SMD iznad prolazne rupe. Lakši su za korištenje. Ne morate stalno okretati PCB. (Napravljene su neke glupe greške zbog zrcaljenja...). I ne morate rezati žice otpornika. Prilikom dijeljenja dizajna, više paketa se može praktično postaviti na PCB ili jedan dio. SMD otpornik TH. (To malo komplikuje raspored).
Koristio sam "KiCad Getting Started" u pdf formatu. Stara verzija koju sam koristio ima 29 stranica, a najnovija verzija ima 52 stranice. Možete ga pronaći u drugim tutorijalima (uključujući video linkove): http://kicad-pcb.org/help/tutorials/
Znam da je [Chris Gemmell] iz Hackaday i The Amp Hour napravio seriju o Kicadu http://kicad-pcb.org/help/tutorials/
Kicad bi mogao biti koristan, da vidim šta će se desiti u Rev 2. Hvala vam na sugestijama. Nepovezani ulazi su dobra stvar za DRC (ERC), a za konektore i druge stvari koje ih održavaju soft ili IO, većina CAD poruka o prekidu veze se obično može izbjeći.
Pokrenite brzi test i ubacite konektor u praznu tabelu, pokrenite anotacije i DRC. Dalo mi je drc greške za svaki pin. Međutim, označavanje poznatih nepovezanih pinova je vrlo jednostavno.
Postavljeno na pasivno. Moram pretraživati (Uredi komponentu -> Uredi s editorom biblioteke). Editor biblioteke otvara i učitava vašu komponentu u zasebnom prozoru, možete provjeriti ili promijeniti bilo koji dio komponente. Promijenjena komponenta može se spremiti ili ažurirati u vašoj shemi. Ovo znatno olakšava promjenu komponenti. Ne zanima me mnogo biblioteka. Na primjer, ako koristite cpld, želite dodijeliti smislena imena pinovima. Što je još važnije, postoji dobar interfejs za dizajniranje vlastitih komponenti.
U KiCad-ovom ERC-u, "nepovezani" pinovi su drugačija vrsta pina od "pasivnih pinova", i svi "nepovezani" pinovi će generirati greške. Način na koji ERC radi može se lako prilagoditi vašim željama: Alati -> Provjera električnih pravila -> Opcije.
Vrijeme objave: 18. novembar 2021.





