Složen 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 kako biste osigurali logičke funkcije koje su vam potrebne. To može biti zamjena zastarjelih čipova ili samo način učenja i isprobavanja različitih tehnologija. Koji je bolji način učenja 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 zabrljao. Čini se da je raspoloživi prostor za utikače na ploči za beslemno spajanje 1,1 inča. Napravio sam otisak širok 1 inč, ne ostavljajući mjesta za red žica s obje strane. Hm.
Ali dopustite mi da se vratim i pokažem više o tome što radim, želim napraviti programabilnu logiku koja se može sastaviti kao kit, može se lako zalemiti kod kuće, može se programirati u strujnom krugu i može raditi na 3,3 ili 5 volti.
Kako bih ostvario jednostavan komplet za lemljenje, koristio sam staru CPLD komponentu, koja je također dostupna u verzijama od 3,3 V i 5 V, i zadržat će svoje programiranje bez obzira na napajanje. Sama logika je CPLD IC iz Altera Max serije, dostupan u dvije verzije, pogodan za tiskane pločice s 32 ili 64 makroćelije. Makroćelije su osnovni logički građevni blokovi koji se programiraju pomoću logičkih "termina", a zatim međusobno povezuju s drugim makroćelijama putem programabilnih međuspojeva.
Gledajući shemu, možete vidjeti da nema puno sadržaja: u osnovi CPLD, sklop za programiranje unutar kruga 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 pakiranje može se umetnuti u prolaznu utičnicu ili izravno zalemiti na PCB.
Sadrži ugrađeni oscilator, tako da CPLD može izvršavati operacije sa stanjem i samostalno stvarati brze brojače bez potrebe za vanjskim taktom. Ako je dostupan vanjski takt, brzi takt na modulu može se koristiti za stvaranje događaja takta na svakom rastućem ili padajućem rubu vanjskog takta, a i dalje slijediti smjernice CPLD/FPGA, odnosno, trebali biste koristiti unutarnju globalnu mrežu takta umjesto "asinkronog" 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 osobnim preferencijama o tome kako rukovati pinom "INH" na oscilatoru; jednostavno rečeno, nakon što provjerim jesu li specifikacije legalne, sklon sam pustiti da pluta kako treba.
Kad sam se bavio takvim funkcijama, razlozi koji su mi bljesnuli u glavi uključivali su moju nesklonost spajanju ulaznih pinova izravno na napojne vodove (ako je moguće). To jest, radije koristim serijske otpornike za ograničavanje struje tijekom prijelaznih pojava, čak i ako to ne bi trebalo biti potrebno.
Tijekom godina, vidio sam neke probleme u proizvodnji (velike serije), a povremeno bi stvari poput cikliranja napajanja dopustile da pinovi izravno spojeni na napojnu šinu imaju viši napon od samog čipa, što je loše. Konačno, spojite pin na napojnu šinu putem otpornika (bilo napajanja ili uzemljenja) i ljudi mogu promijeniti mišljenje i kasnije koristiti pin. To je posebno istinito u mom iskustvu s nekorištenim vratima, vjerojatno znate da ta vrata nikada ne smiju ostati plutajuća ili nepovezana. Korištenjem pull-up otpornika možete spojiti signal i koristiti vrata bez rezanja bakrenih tragova.
10-pinski konektor i nekoliko otpornika tvore programski sklop. Ako su svi otpornici pull-up otpornici, koristio bih mrežu otpornika, ali nažalost, jedan je uzemljen.
Za programiranje takvog neovisnog CPLD-a potreban je namjenski programator. To mi je lako reći, jer ih obično imam nekoliko pored sebe, ali ako ga nemate, 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 Digikeyja i drugih mjesta. Imam nekoliko klonova s eBaya, od kojih je jedan klon koji istovremeno podržava Alteru, Xilinx i Lattice. Na internetu postoji projekt i kod koji se može koristiti za izradu vlastitog klona, navest ću ga u svom popisu mogućih videa za projekt izrade klonova programatora. Također ću pokazati dizajn štita u kojem se može 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 pločica odgovara, obično koristim bakar za uzemljenje, a ponekad i za napajanje. Ponekad se izlijevanje toliko ošteti da zapravo može uzrokovati probleme ili loše krajnje rezultate, pa je izlijevanje bakra opet alat, ali ga treba kontrolirati.
Danas mnogi (ako ne i većina) CAD softverskih paketa sadrže 3D prikaze konačnog proizvoda, iako je točnost slika samo onoliko točna koliko su toč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 tvrtke također imaju 3D modele svojih komponenti. Molex je samo jedan primjer tvrtke koja je napravila dobar posao u ovom području.
Greška koju sam napravio ne utječe na funkciju poput estetike, i nije glavni problem, odnosno nije prikladna za jednu beslemnu ploču.
Čim sam pomislio da bih mogao podijeliti dizajn s nekim, odmah sam bio nezadovoljan shematskim simbolima CPLD-a i rasporedom pinova 40-pinskog konektora, što je njegov ukupni otisak. Uzeo sam simbol 40-pinskog dvorednog konektora i prilagodio ga na otisak od 1 inča, ali brojevi pinova nisu 1, 2, 3, 4... već su numerirani s 1 sa strane poput DIP paketa 3, 5, 7... baš kao i konektori trakastih kabela. Stoga je to neintuitivan otisak za određivanje načina spajanja na modul i rješavanje problema.
Slično tome, dodjela CPLD pinova je malo zbunjujuća, pa sam koristio skup uslužnih programa koji se oslanjaju na Boundary Scan Description Language (BSDL) za stvaranje simbola. Većina glavnih dobavljača ima BSDL datoteke dostupne za svoje mainstream komponente, što vam omogućuje (polu)automatsko stvaranje simbola i paketa. Kao i svaka automatizacija, treba je promatrati kao alat i može zahtijevati daljnje pomicanje 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 zabrinut.
Za ove prečace platite negdje usput. Kad krenem modificirati ovaj modul, odredit ću i dati mu položaj pinova koji odgovara samom dijelu, tako da je znati gdje staviti osciloskopsku sondu jednostavno kao pogledati shematski simbol.
Prilikom korištenja tiskanih pločica postoje i druga poboljšanja koja su uglavnom estetske ili korisne. Indikator pina 1 treba biti češći u nekoliko kućišta, a ja uvijek preferiram jednostavnu točku uzemljenja za spajanje uzemljenja osciloskopa ili VOM voda. Možda bih to dodao dodavanjem dvo-pinskog konektora kako bi se napajanje i uzemljenje mogli izravno primijeniti na ploču umjesto da se pričvrste na donje pinove.
Prije nego što modificiram tiskanu ploču, želim se uvjeriti da ispravno radi pod utjecajem 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, detektirao je CPLD i prikazao ga kao "nepoznati" uređaj.
Zatim sam u Quartusu kreirao brojač i dodijelio mu brojeve pinova. Brzo kompajliranje i preuzimanje te funkcija brojača koju je vidio osciloskop potvrđuju da je dizajn izvediv.
Brzi testni sklop u Verilogu je vrlo jednostavan. Kod je naveden u nastavku. ZIP datoteku koja sadrži shemu i Verilog testni sklop možete preuzeti kao Quartus II projekt (potrebna je verzija 9.1).
Kao što sam spomenuo, napravit ću drugu reviziju tiskane pločice 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 i dalje postavljati na 0,6 inča, što je standardno "široko" DIP kućište. To znači da donji pinovi moraju viriti iz CPLD utičnice. To ne bih učinio u proizvodnoj situaciji jer se u to vrijeme sastavljalo ručno, ali jedan od ciljeva bio je 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, verzija s prolaznim otvorom je vrlo velika i obično ne podržava raspon napona koji želim.
Je li moguće koristiti ove module za izgradnju potpuno jednostavnog računala? Mislim da trebam dodati memoriju.
Lol...da, ovisi o vrsti računala. Međutim, na "prave" mikrokontrolere/mikroračunala utječe "spajanje pinova" modula, što znači da iz modula ne možete dobiti dovoljno terminologije da biste učinili nešto previše korisno.
Napravio sam kompletan NTSC kontroler vremena i načina rada kamere veličine 64, tako da nije potreban procesor.
Strukturni Verilog i HDL korišteni u knjizi Nand to Tetris 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 gornju utičnicu preklapam s pinovima zalemljenim odozdo, tada 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. Kad 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 na nju stavim PCB i onda mogu lako lemiti. Vrlo je pogodno za ploče. Ako ga trebate lemiti s dna, to je još teže.
Ako je CPLD 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 probnu ploču prije lemljenja. Moja je malo nestabilna.
Što kažete na pinove DIP formata na jednoj pločici i "dongle" tipa samog podnožja čipa na drugoj strani? Čip se može objesiti na kraj 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 što sve otvorena podrška podržava, što mora uključivati specifične atribute serije uređaja. Uz to rečeno, puno sam napravio 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 (masovnu) 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. Samo imam neke navike kojih se teško riješiti u mojim godinama. 
Mislim da će T-oblikovana pločica s CPLD-om i pasivnim komponentama sa širokim T-oblikovanim dijelom biti vrlo korisna kada se objesi na rub ploče za izradu uzoraka. Nešto slično Adafruit RasPi T-Cobbleru (http://www.adafruit.com/products/2028). To ć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 sve one generatore funkcija temeljene na XR2206 i ICL8038.
Zanimljiva ideja. Sviđaju mi se ova dva čipa. CPLD nije zastario, samo je jeftiniji način da ga se kupi na 3,3 V.
Što se tiče tvojih "gluposti"... stvarno nisi napravio novi raspored da bi to stavio na probnu ploču. Samo prvo stavi žicu na probnu ploču, a zatim stavi CPLD na žicu. Ili, ako možeš skinuti trake za napajanje i uzemljenje s jedne od njih, upotrijebi dvije probne ploče.
Što se tiče Altiuma i Eaglea. Jeste li razmatrali KiCad? Nema nikakvih ograničenja da preferirate Altium u odnosu na Eagle i prema zadanim postavkama generira DRC pogreške za sve nepovezane pinove. Ako stvarno želite otvoriti pin, morate mu to reći. (Možda samo za ulaz, ne i za izlaz, a to još nije provjereno). Još jedna sjajna značajka je da ga je vrlo lako naučiti. Trebalo mi je samo jedno poslijepodne, a izvrstan 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 izvod otpornika. Prilikom dijeljenja dizajna, više paketa može se praktično postaviti na PCB ili jedan dio. SMD otpornik TH. (To malo komplicira 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 poveznice): http://kicad-pcb.org/help/tutorials/
Znam da je [Chris Gemmell] iz Hackadaya i The Amp Houra napravio seriju o Kicadu http://kicad-pcb.org/help/tutorials/
Kicad bi mogao biti koristan, da vidim što će se dogoditi u Rev 2. Hvala na prijedlozima. Nepovezani ulazi su dobra stvar za DRC (ERC), a za konektore i druge stvari koje ih održavaju mekim ili IO, većina CAD poruka o prekidu veze obično se može izbjeći.
Pokreni brzi test i ubaci konektor u praznu tablicu, pokreni 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 uređivačem knjižnice). Uređivač knjižnice otvara se 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. To uvelike olakšava promjenu komponenti. Nije me previše briga za knjižnicu. Na primjer, ako koristite cpld, želite dodijeliti smislena imena pinovima. Što je još važnije, postoji dobro sučelje za dizajniranje vlastitih komponenti.
U KiCadovom ERC-u, "nepovezani" pinovi su drugačija vrsta pina od "pasivnih pinova" i svi "nepovezani" pinovi generirat će pogreške. Način na koji ERC radi može se lako prilagoditi vašim vlastitim preferencijama: Alati -> Provjera električnih pravila -> Opcije.
Vrijeme objave: 18. studenog 2021.





