zif-stikkontakt 14-benet

En kompleks programmerbar logisk enhed (CPLD) er et essentielt stykke hardware i dit repertoire. Som navnet antyder, kan du programmere disse chips til at levere de logiske funktioner, du har brug for. Dette kan være at erstatte forældede chips, eller blot en måde at lære og afprøve forskellige teknologier. Hvilken bedre måde at lære på end at bruge CPLD og afprøve det?
Jeg har lavet et CPLD-modul for at kunne tilslutte det til mange ting, inklusive loddefri breadboards, men jeg lavede en fejl. Det ser ud til, at den tilgængelige stikplads på det loddefri breadboard er 3,8 cm. Jeg har lavet fodaftrykket 2,5 cm bredt, så der ikke er plads til en række ledninger på begge sider. Øh.
Men lad mig lige vise mere om, hvad jeg laver. Jeg vil gerne lave en programmerbar logik, der kan bygges som et byggesæt, nemt kan loddes derhjemme, kan programmeres i et kredsløb og kan fungere ved 3,3 eller 5 volt.
For at kunne lave et letloddet sæt brugte jeg en gammel CPLD-komponent, som også fås i 3,3v og 5v versioner, og som vil bevare sin programmering uanset strømforsyningen. Selve logikken er en CPLD IC fra Altera Max-serien, der fås i to versioner, og som er egnet til printkort med 32 eller 64 makroceller. Makroceller er de grundlæggende logiske byggesten, der programmeres ved hjælp af logiske "termer" og derefter forbindes med andre makroceller via programmerbare forbindelser.
Når man ser på skematikken, kan man se, at den ikke har meget indhold: grundlæggende CPLD'en, det indbyggede programmeringskredsløb og oscillatoren, der driver CPLD-logikken.
Denne del kaldes EPM7032 og EPM7064 og bruger en 44-bens plastikledningschipholder (PLCC), undertiden kaldet en J-ledning på grund af ledningens J-form. Denne pakke kan indsættes i en gennemgående hulfatning eller loddes direkte til printkortet.
Indeholder en indbygget oscillator, så CPLD'en kan udføre operationer statefully og oprette hurtige tællere på egen hånd uden behov for et eksternt ur. Hvis et eksternt ur er tilgængeligt, kan højhastighedsuret på modulet bruges til at oprette en urhændelse på hver stigende eller faldende kant af det eksterne ur og stadig følge CPLD/FPGA-retningslinjerne, det vil sige, at du virkelig bør bruge det interne globale urnetværk i stedet for "asynkrone" drev til urindgangen. Den nominelle strømforsyningsspænding for denne oscillator er mellem 1,8 og 5,5 volt.
Hvis du ser videoen, vil du se, at jeg diskuterer min personlige præference for, hvordan man håndterer "INH"-pinden på oscillatoren; kort sagt, efter jeg har tjekket, at specifikationsarket er lovligt, har jeg en tendens til at lade det flyde.
Når jeg arbejdede med den slags funktioner, var de grunde, der dukkede op i mit hoved, blandt andet min modvilje mod at forbinde indgangsbenene direkte til strømskinnerne (hvis muligt). Det vil sige, at jeg foretrækker at bruge seriemodstande til at begrænse strømmen under transienter, selvom det ikke skulle være nødvendigt.
Gennem årene har jeg set nogle problemer i produktionen (store partier), og lejlighedsvis har ting som strømskift gjort det muligt for de ben, der er direkte forbundet til strømskinnen, at have en højere spænding end selve chippen, hvilket er dårligt. Til sidst, når du forbinder benet til strømskinnen via en modstand (uanset om det er strøm eller jord), kan folk ændre mening og bruge benet senere. Dette gælder især i min erfaring med ubrugte døre, du ved sikkert, at disse døre aldrig bør lades flydende eller frakoblede. Ved at bruge en pull-up-modstand kan du tilslutte signalet og bruge porten uden at skære kobberspor.
10-bensstikket og et par modstande danner programmeringskredsløbet. Hvis alle modstandene er pull-up-modstande, ville jeg bruge et modstandsnetværk, men ak, den ene er jordforbundet.
For at programmere en sådan uafhængig CPLD kræves en dedikeret programmør. Det er nemt for mig at sige, for jeg har normalt et par stykker liggende ved siden af ​​mig, men hvis du ikke har en, vil det ikke være alt for smertefuldt at komme ind i spillet. Den godkendte "Altera USB Blaster" sælges for $50 og kan købes fra Digikey og andre steder. Jeg har flere kloner fra Ebay, hvoraf den ene er en klon, der understøtter Altera, Xilinx og Lattice på samme tid. Der er et projekt og kode på internettet, der kan bruges til at lave din egen klon, jeg vil liste det i min liste over mulige videoer til projektet med at lave programmørkloner. Jeg vil også vise et skjolddesign, hvor bundkortet, Arduino, PIC osv. kan programmeres.
Den software, der kræves til at kompilere og programmere CPLD'en, er frit tilgængelig fra Altera, men denne gamle del kræver den gamle version 9.1. Den gode nyhed er, at det var min yndlingsversion. Den havde en intuitiv timinganalysator, men den blev fjernet i en senere version.
PCB'et er et simpelt dobbeltsidet design, så længe printkortet passer til det. Jeg bruger typisk kobber til jordforbindelse og nogle gange strømforsyning. Nogle gange bliver støbningen så brudt, at det faktisk kan forårsage problemer eller sjuskede slutresultater, så kobberstøbning er igen et værktøj, men det skal håndteres.
I dag indeholder mange (hvis ikke de fleste) CAD-softwarepakker 3D-visninger af det færdige produkt, selvom billedernes nøjagtighed kun er så præcis som de 3D-modeller, der bruges til at repræsentere delene. Her kan du se, hvor jeg valgte 3D-modellen til 44-bens fatningen, programmeringsstikket og oscillatoren. Her er nogle 3D-pakker, jeg kan lide at bruge:
Mange virksomheder har også 3D-modeller af deres komponenter. Molex er blot ét eksempel på en virksomhed, der har gjort et godt stykke arbejde på dette område.
Den fejl jeg lavede påvirker ikke funktionen, ligesom æstetikken, og det er ikke hovedproblemet, det vil sige, at det ikke er egnet til et enkelt loddefrit breadboard.
Da jeg først tænkte, at jeg måske kunne dele designet med nogen, var jeg straks utilfreds med CPLD'ens skematiske symboler og pinout'en på 40-bens stikket, hvilket er dets samlede størrelse. Jeg tog et 40-bens dobbeltrækket stiksymbol og justerede det til et 1-tommers størrelse, men pinnumrene er ikke 1, 2, 3, 4... men nummereret 1 på siden ligesom en DIP-pakke 3, 5, 7... ligesom båndkabelstik. Derfor er det et ikke-intuitivt størrelsesforhold til at bestemme, hvordan man tilslutter modulet, og til fejlfinding.
På samme måde er CPLD-pintildelingerne lidt forvirrende, og jeg brugte et sæt værktøjer, der er afhængige af Boundary Scan Description Language (BSDL) til at oprette symboler. De fleste større leverandører har BSDL-filer tilgængelige til deres mainstream-komponenter, som giver dig mulighed for (semi-)automatisk at oprette symboler og pakker. Ligesom enhver automatisering skal det ses som et værktøj og kan kræve yderligere justering for at opnå de bedste resultater. I dette tilfælde lod jeg det liste pinsene i alfabetisk rækkefølge, hvilket er næsten tilfældigt, når man sporer pinsene på printpladen. Jeg kan kun sige, at jeg var meget ængstelig den dag.
Du betaler for disse genveje engang undervejs. Når jeg skal modificere dette modul, vil jeg bestemme og give det en benplacering, der matcher selve delen, så det er lige så nemt som at kigge på det skematiske symbol at vide, hvor du skal placere din oscilloskopprobe.
Når man bruger printkort, er der andre forbedringer, der primært er æstetiske eller nyttige. Pin 1-indikatoren skal være mere almindelig i flere pakker, og jeg foretrækker altid et simpelt jordpunkt til at forbinde oscilloskopets jord eller VOM-ledning. Jeg kan muligvis tilføje dette ved at tilføje et tobenet stik, så strøm og jord kan tilføres direkte til printkortet i stedet for at blive fastgjort til de nederste ben.
Før jeg modificerer printkortet, vil jeg sikre mig, at det fungerer korrekt både fysisk og æstetisk. Efter at have tændt og bekræftet, at oscillatoren fungerer korrekt, tilsluttede jeg programmeringsenheden. Selvom 3,3 V-versionen er nyere end programmeringssoftwaren, registrerede den CPLD'en og viste den som en "ukendt" enhed.
Dernæst oprettede jeg en tæller i Quartus og tildelte den pinnumre. Den hurtige kompilering og download samt tællerfunktionen, som oscilloskopet ser, bekræfter, at designet er gennemførligt.
Hurtigtestkredsløbet i Verilog er meget simpelt. Koden er angivet nedenfor. Du kan downloade en ZIP-fil, der indeholder skemaet og Verilog-testkredsløbet, som et Quartus II-projekt (kræver version 9.1).
Som jeg nævnte, vil jeg lave en anden revision af printkortet for at være mere opmærksom på de nødvendige detaljer, når jeg deler designet eller udfører en række fejlfindingsopgaver. Da jeg skal indstille bredden på det nederste stik til 0,9 tommer eller mindre, kan jeg fortsætte med at indstille den til 0,6 tommer, hvilket er en standard "bred" DIP-pakke. Dette betyder, at de nederste ben skal stikke ud fra CPLD-fatningens fodaftryk. Jeg ville ikke gøre dette i en produktionssituation, fordi det blev samlet i hånden på det tidspunkt, men et af målene var at lave et håndloddesæt. Kompromiset med håndlodning er, at oscillatoren skal være i et SMD-overflademonteringshus, mens versionen med gennemgående hul er meget stor og understøtter normalt ikke det spændingsområde, jeg ønsker.
Er det muligt at bruge disse moduler til at bygge en komplet, simpel computer? Jeg tror, ​​jeg er nødt til at tilføje hukommelse.
Lol... ja, det afhænger af, hvilken slags computer det er. "Rigtige" mikrocontrollere/mikrocomputere påvirkes dog af modulets "pin bonding", hvilket betyder, at man ikke kan få nok terminologi fra modulet til at gøre noget særligt brugbart.
Jeg har lavet en komplet NTSC-kameratiming- og mode-controller med en størrelse på 64, så der kræves ingen processor.
Den strukturelle verilog og HDL, der bruges i bogen Nand til Tetris, er mere eller mindre de samme.
Hvorfor er dele gennemgående huller? Svejsning af 0805 er nemt! Nu er det tid for alle, der er nysgerrige, at lære denne færdighed.
Hvis jeg får den øverste sokkel til at overlappe de ben, der er loddet nedefra, kan jeg bruge "6 centre" (simulerer en 40-bens chip) eller diagonal osv. Dette vil være strengt manuel lodning af komponenter til lodning af de nederste ledninger. Den øverste sokkel bag fødderne.
Men det er svært for begyndere at lodde det nedefra. Når jeg lodder headere til printkortet på breadboardet (disse billige SMD-adapterkort, som du kan bruge på eBay, kan bruges til prototypefremstilling), indsætter jeg headerne i breadboardet, sætter derefter printkortet på det, og så kan jeg nemt lodde. Det er meget velegnet til breadboards. Hvis du skal lodde det nedefra, er det endnu vanskeligere.
Hvis CPLD'en er i midten (kan være nemmere at tilslutte), kan den installeres diagonalt uden overlapning, der er 4 rækker, eller CPLD'en kan være på den ene side:
Tak for tippet om at sætte stikket i breadboardet inden lodning. Mit er lidt ustabilt.
Hvad med DIP-format breadboard-ben i den ene ende og "dongle"-typen af ​​selve chip-soklen i den anden ende? Chippen kan hænges på enden af ​​breadboardet. Kabelføringen vil være stram.
|####### ******************** |. Ja, jeg har besluttet mig for at bruge Alteras "gratis" version, ligesom Xilinx og Lattice har "gratis" versioner. Jeg er nødt til at afslutte cyklussen med Al Williams for at forstå, hvad al åben support understøtter, hvilket skal inkludere de specifikke attributter for enhedsserien. Når det er sagt, har jeg gjort meget med den gratis version.
Ja, du viser, at CPLD'en overlapper med benene, tror jeg. Hvis jeg følger det korrekt, kan det se ud som rev 2. Når jeg designer til (masse)produktion, er jeg altid allergisk over for "håndloddemontering"-trinnet, fordi de overlapper hinanden (faktisk loddebenene på ikke-komponentsiden). ) er allerede en håndloddet komponent), men det er bare et lille sæt, ikke et produktionsorienteret design. Jeg har bare nogle vaner, der er svære at slippe af med i min alder. :)
Jeg tror, ​​at et T-formet printkort med CPLD og passive komponenter med en bred T-formet del vil være meget nyttigt, når det hænges på kanten af ​​breadboardet. Noget der minder om Adafruit RasPi T-Cobbler (http://www.adafruit.com/products/2028). Dette vil frigøre det meste af breadboard-arealet.
Desværre vil afskaffelsen alvorligt begrænse dens anvendelse i sideprojekter, ligesom alle de funktionsgeneratorer baseret på XR2206 og ICL8038.
Interessant idé. Jeg kan godt lide disse to chips. CPLD er ikke forældet, det er bare en billigere måde at købe den på til 3,3V.
Angående dit "vrøvl"... du har virkelig ikke lavet et nyt layout til at sætte det på breadboardet. Bare sæt ledningen på breadboardet først, og sæt derefter cpld'en på ledningen. Eller, hvis du kan trække strøm- og jordskinnerne af en af ​​dem, så brug 2 breadboards.
Om Altium og Eagle. Har du overvejet KiCad? Det har ingen begrænsninger i forhold til, at du foretrækker Altium frem for Eagle, og genererer som standard DRC-fejl for alle ikke-forbundne pins. Hvis du virkelig vil åbne en pin, skal du fortælle den det. (Måske kun for input, ikke for output, og det er ikke blevet testet endnu). En anden god funktion er, at det er meget nemt at lære. Det tog kun en eftermiddag, og den fremragende introduktionsmanual fik mig i gang.
Jeg foretrækker (den større del) SMD frem for det gennemgående hul. De er nemmere at bruge. Du behøver ikke at dreje printkortet hele tiden. (Der blev lavet nogle dumme fejl på grund af spejling...). Og du behøver ikke at klippe modstandens ledning over. Når man deler et design, kan flere pakker bekvemt placeres på et printkort eller en enkelt del. SMD-modstand TH. (Det gør layoutet lidt mere kompliceret).
Jeg brugte "KiCad Getting Started" i pdf-format. Den gamle version, jeg brugte, er på 29 sider, og den seneste version har 52 sider. Du kan finde den i andre vejledninger (inklusive videolinks): http://kicad-pcb.org/help/tutorials/
Jeg ved, at [Chris Gemmell] fra Hackaday og The Amp Hour lavede en serie om Kicad http://kicad-pcb.org/help/tutorials/
Kicad kan være nyttigt, lad mig se, hvad der sker i Rev 2. Tak for dine forslag. Ikke-forbundne input er en god ting for DRC (ERC), og for stik og andre ting, der holder dem bløde eller IO, kan de fleste CAD-afbrydelsesmeddelelser normalt undgås.
Kør en hurtig test, og send stikket til en tom tabel, kør annotationer og DRC. Det gav mig drc-fejl for hver pin. Det er dog meget simpelt at markere kendte, ikke-forbundne pins.
Indstil til passiv. Jeg skal søge (Rediger komponent -> Rediger med bibliotekseditoren). Bibliotekseditoren åbner og indlæser din komponent i et separat vindue, hvor du kan kontrollere eller ændre enhver del af komponenten. Den ændrede komponent kan gemmes eller opdateres i dit skema. Dette gør det meget nemt at ændre komponenter. Jeg er ligeglad med biblioteket. Hvis du for eksempel bruger cpld, vil du gerne tildele meningsfulde navne til benene. Endnu vigtigere er det, at der er en god brugerflade til at designe dine egne komponenter.
I KiCads ERC er "ikke-forbundne" pins en anden type pin end "passive pins", og alle "ikke-forbundne" pins vil generere fejl. Måden ERC fungerer på, kan nemt justeres til dine egne præferencer: Værktøjer -> Elektrisk regelkontrol -> Indstillinger.


Opslagstidspunkt: 18. november 2021