Sisukord:
- Tarvikud
- 1. samm: teooria
- 2. samm: vooluahela testimine
- 3. samm: täissummerdava PCB kujundamine
- Samm: muude PCB -de kavandamine
- Samm: komponentide jootmine PCB -le
- 6. samm: virnastamiseks mõeldud trükkplaatide viimistlemine
- Samm: vooluringide toide
- 8. samm: aluse 3D -printimine
- 9. samm: kokkupanek
- 10. samm: arvutamine ja võrdlus
- Samm 11: Järeldus
Video: 4-bitine kahendkalkulaator: 11 sammu (piltidega)
2024 Autor: John Day | [email protected]. Viimati modifitseeritud: 2024-01-30 08:46
Mul tekkis huvi arvutite põhimõttelise toimimise vastu. Tahtsin mõista diskreetsete komponentide kasutamist ja keerukamate ülesannete täitmiseks vajalikke ahelaid. CPU üks oluline põhikomponent on aritmeetiline loogikaüksus või ALU, mis teostab toiminguid täisarvudega. Selle ülesande täitmiseks kasutavad arvutid kahendnumbreid ja loogikaväravaid. Üks lihtsamaid toiminguid on kahe numbri liitmine liiturlülituses. See numberphile'i video teeb suurepärast tööd selle kontseptsiooni selgitamiseks Domino Additsiooni kaudu. Matt Parker laiendab seda põhikontseptsiooni ja ehitab Domino arvuti vooluringi, kasutades 10 000 doominot. Terve personaalarvuti ehitamine doominost on absurdne, kuid tahtsin siiski mõista diskreetsete komponentide kasutamist selle lisamisülesande täitmiseks. Videotes loodi loogikaväravad doominost, kuid neid saab valmistada ka põhikomponentidest, nimelt transistoridest ja takistitest. Selle projekti eesmärk oli kasutada neid diskreetseid komponente oma 4-bitise liitekalkulaatori õppimiseks ja loomiseks.
Minu eesmärgid selle projekti jaoks olid järgmised: 1) Õppige kohandatud PCB loomist ja valmistamist 2) Tehke disaini hõlpsasti kontseptuaalseks binaararvude lisamine
Suur osa selle projekti inspiratsioonist ja mõistmisest pärines Simon Innsilt.
Tarvikud
Kasutasin Fritzingit skeemide tegemiseks, trükkplaatide loomiseks ja valmistamiseks
1. samm: teooria
Loendamine baasis 10 on lihtne, kuna kahe täisarvu summat tähistab erinev täisarv. Lihtsaim näide:
1 + 1 = 2
Loendamisel baasis 2 või binaarides kasutatakse ainult 1 ja 0. Kombinatsiooni 1 ja 0 kasutatakse erinevate täisarvude ja nende summade esitamiseks. Näide loendamisest baasis 2:
1+1 = 0 ja kannate 1 järgmisele bitile
Kui liita kaks bitti (A ja B) kokku, on Sum ja Carry (Cout) väljunditega võimalik saada 4 erinevat tulemust. Seda on näidatud tabelis.
Loogikaväravad võtavad sisendeid ja genereerivad väljundi. Mõned kõige elementaarsemad loogikaväravad koosnevad väravatest NOT, AND ja OR, mida kõiki selles projektis kasutatakse. Need koosnevad transistoride ja takistite erinevatest kombinatsioonidest ja juhtmestikust. Iga värava skeemid on esitatud.
Kui viidata tabelile, siis tabelite summa tulemuste saamiseks saab kasutada nende väravate kombinatsiooni. Seda loogika kombinatsiooni tuntakse ka eksklusiivse OR (XOR) väravana. Sisend peab olema täpselt 1, et saada väljund 1. Kui mõlemad sisendid on 1, on tulemuseks 0. Edastamisbiti tulemusi saab esitada lihtsa JA väravaga. Seega võib nii XOR -i kui ka AND -värava kasutamine kujutada kogu tabelit. See on tuntud kui poolliitja ja skeem on näidatud ülal.
Suuremate kahendarvude lisamiseks tuleb sisestusbitt lisada sisendiks. See saavutatakse, kombineerides 2 Halder Adderi vooluahelat, et luua täisarvuti. Täislisandeid saab seejärel suuremate kahendarvude lisamiseks kokku liita. Oma projektis kaskaadisin 4 täislisandit, mis võimaldas mul omada 4 -bitist sisendit. Täisliitja skemaatika on ülal.
Simon Innsil on teooria kohta suurepärane ja põhjalikum kirjutis. Samuti on mõned PDF -id, mis mulle abiks olid.
2. samm: vooluahela testimine
Esimene samm pärast loogikaväravate toimimise ja täisarvuti taga oleva teooria mõistmist on vooluahela ehitamine. Alustasin kõigi vajalike komponentide kogumisest: 10K ja 1K takistid, NPN transistorid, leivaplaat, Jumperwires. Järgnesin täieliku liitja väljatrükiga. Protsess oli tüütu, kuid mul oli võimalus saada täislülitaja jaoks töötav vooluring. Ma seoksin sisendid kõrgeks või madalaks ja kasutaksin väljundite testimiseks multimeetrit. Nüüd olin valmis leivalaua ja skeemi trükkplaadiks tõlkima.
3. samm: täissummerdava PCB kujundamine
PCB projekteerimisel kasutasin ainult Fritzingi. See oli minu esimene kord PCB projekteerimisel ja see programm tundus kõige kasutajasõbralikum ja intuitiivsem väikseima õppimiskõveraga. PCB kujundamisel on saadaval ka teisi suurepäraseid programme, nagu EasyEDA ja Eagle. Fritzingi abil saate alustada projekteerimist virtuaalsel leivalaual või skemaatilisel joonisel, seejärel liikuda trükkplaadile. Ma kasutasin selle projekti jaoks mõlemat meetodit. Kui olete valmis trükkplaati valmistama, on failide eksportimiseks ja nende üleslaadimiseks otse Aritrisse, Fritzingi partneriks valmistamisse, lihtsalt nupuvajutusega.
Protsessi alustamiseks joonistage skeemMa alustasin skemaatilise vahekaardiga. Esiteks leidsin ja sisestasin kõik komponendid tööruumi. Järgmisena joonistasin kõik jäljed komponentide vahele. Kindlasti lisasin 5V sisendi ja maandasin sobivatesse kohtadesse.
Kujundage PCBI, klõpsates vahekaardil PCB. Kui liigute otse skeemilt, tekib segadus kõigi komponentidega, mis on ühendatud ratsnesti joontega, tuginedes skeemil tehtud jälgedele. Esimese asjana muutsin halli trükkplaadi suurust soovitud suuruseks ja lisasin kinnitusavad. Lisasin sisendite ja väljundite jaoks ka 16 tihvti. Järgmisena hakkasin komponente loogiliselt korraldama. Püüdsin rühmitada komponente ühendustega, mis olid üksteise lähedal, et minimeerida jälgimiskaugust. Läksin täiendava sammu ja rühmitasin komponendid loogikavärava järgi kokku. Üks minu eesmärke oli visualiseerida, kuidas vooluring töötab, ja jälgida ahela "bitti". Pärast seda kasutasin autorouting -funktsiooni, mis läheb automaatselt läbi ja tõmbab komponentide vahel optimeeritud jäljed. Ma olin skeptiline, et see protsess viis lõpule kõik õiged jäljed, nii et ma vaatasin kaks korda üle ja joonistasin jäljed uuesti sinna, kus need peaksid olema. Õnneks tegi autorouting funktsioon päris head tööd ja ma pidin parandama vaid mõned jäljed. Autorouter tegi jälgedega ka imelikke nurki, mis ei ole "parim praktika", kuid mul oli sellega kõik korras ja kõik töötas endiselt hästi. Viimase asjana lisasin teksti, mis trükitakse siiditrükina. Veendusin, et kõik komponendid on märgistatud. Impordisin ka kohandatud loogikavärava pilte, et rõhutada komponentide rühmitamist. Ülaltoodud viimasel pildil on siiditrükk.
Valmistage PCBI, klõpsates ekraani allosas asuvale valmistamisnupule. See suunas mind otse Aisleri veebisaidile, kus sain konto luua ja kõik oma Fritzingi failid üles laadida. Jätsin kõik vaikeseaded ja tegin tellimuse.
Samm: muude PCB -de kavandamine
Ülejäänud PCB -d, mida ma vajasin, olid sisend-/väljundliidese plaat ja IC -plaat. Ma järgisin nende plaatide sammu 3. Skeemide pdf on postitatud allpool. IC jaoks tegin kõik ühendused virtuaalse leivaplaadi funktsiooni abil. Lisasin täielikkuse skeemi, kuid suutsin otse leivaplaadilt minna PCB vahekaardile, mis oli päris lahe. Enne Aisleris üleslaadimist ja tellimist lisasin I/O liidese plaadil siiditrükil ka aluse 10 teisendusdiagrammi baasi 2.
Samm: komponentide jootmine PCB -le
Kõik trükkplaadid saabusid kohale ja mul oli kvaliteet väga muljet avaldanud. Mul pole teiste tootjatega kogemusi, kuid ma ei kõhkle Aisleri uuesti kasutamast.
Järgmine ülesanne oli kõigi komponentide jootmine, mis oli vaevaline protsess, kuid minu jootmisoskus paranes oluliselt. Alustasin täissummutahvlitega ja jootsin komponendid alates transistoridest, siis 1K takistid, siis 10K takistid. Ma järgisin sarnast meetodit, et joota ülejäänud komponendid I/O ja IC -plaadile. Pärast iga täislaua tahvli valmimist testisin neid sama meetodiga nagu leivaplaadi täissummutaja. Üllataval kombel töötasid kõik lauad ilma probleemideta õigesti. See tähendas, et lauad olid õigesti paigutatud ja need olid õigesti joodetud. Järgmise sammu juurde!
6. samm: virnastamiseks mõeldud trükkplaatide viimistlemine
Järgmine ülesanne oli joota kõik päise tihvtid igale tahvlile. Mul oli vaja lisada ka hüppajajuhtmed õige päise tihvti ja Full Adderi plaatide sisendite/väljundite (A, B, Cin, V+, GND, Sum, Cout) vahele. Seda sammu saaks vältida, kui konstrueeriksite lisamisahela igale tasandile erinevad trükkplaadid, kuid tahtsin disaini ja kulusid minimeerida, luues ainult ühe täisarvuti trükkplaadi. Selle tulemusena nõudsid ühendused nende sisendite/väljunditega hüppajajuhtmeid. Esitatud skeem on see, kuidas ma selle ülesande täitsin ja milliseid tihvte kasutati Full Adderi tahvlite igal tasandil. Piltidel on näha, kuidas ma jootsin iga plaadi hüppaja juhtmed. Alustasin vabade juhtmete jootmisega päise õigetele tihvtidele. Seejärel jootsin päise trükkplaadile. Pärast seda, kui ma olin jootnud päise tihvtid koos hüppajajuhtmetega, jootsin džemprijuhtmete vabad otsad trükkplaadi õigetele juhtmetele. Ülaloleval pildil on näha päisepistikute lähivõtteid, millele on jootetud hüppaja juhtmed.
Samm: vooluringide toide
Kavatsesin selle projekti jaoks kasutada 12 V alalisvoolu tünni pistikupesa, nii et kavandasin I/O liidese plaadi nii, et toitesisendiks oleks alalisvoolu tünnipistik/pistik. Kuna ma kasutasin sama I/O plaati ja tahtsin kasutada ainult toiteallikat, oli mul vaja pinget reguleerida 5 V -ni, kuna see on SN7483A IC maksimaalne sisend. Selle saavutamiseks vajasin 5V regulaatorit ja lülitit, mis võiksid lülituda 12V ja 5V vahel. Ülaltoodud skeem näitab, kuidas ühendasin toiteahela kokku.
8. samm: aluse 3D -printimine
Nüüd, kui kogu juhtmestik ja jootmine on lõpule jõudnud, pidin ma välja mõtlema, kuidas seda kõike koos hoida. Valisin CADingi ja 3D -printimise disaini, mis mahutab ja kuvab kõik selle projekti osad.
Disaini kaalutlused Vajasin kohti, kus PCB -sid kinnitada poltide ja vaheseintega. Virnastatud lisad on visuaalselt kõige atraktiivsemad ja ma tahtsin, et need oleksid ekraanil, kui neid ei kasutata, nii et ma tahtsin kohta, kuhu salvestada IC PCB. Mul oli vaja mahutada toiteahel koos lüliti ja alalisvoolu tünni pistiku/pistiku väljalülitustega. Lõpuks tahtsin mingit korpuse vitriini, et vältida tolmu kogunemist avatud trükkplaatidele, nii et mul oli vaja ruumi istumiseks.
Aluse kujundamisel kasutasin Fusion360. Alustasin trükkplaadi mõõtmetest ja kinnitusavade vahekaugusest. Pärast seda kasutasin trükkplaadi kinnituskohtadega aluse kõrguse ja suuruse määramiseks rea eskiise ja väljapressimist. Järgmisena tegin korpuse ja toiteahela väljalõiked. Seejärel tegin ala, kuhu salvestada IC PCB, kui seda ei kasutata. Lõpuks lisasin mõned viimistlusserva detailid ja saatsin selle oma viilutamistarkvarasse Cura.
Valisin musta PLA hõõgniidi. Trükkimine võttis veidi üle 6 tunni ja tuli suurepärane. Üllataval kombel olid kõik mõõtmed õiged ja kõik tundus, et see sobiks korralikult kokku. Ülaloleval pildil on trükitud pärast seda, kui olen lisanud eraldusjooned kinnitusavadesse. Need sobisid ideaalselt!
9. samm: kokkupanek
Sisestage vaheseinad. Asetasin kõik takistused aluse kinnitusavadesse.
Asetage toiteahel alusesse. Ma ühendasin kõik kokku ja tõmbasin kõik komponendid läbi lüliti ava. Järgmisena sisestasin toitepistiku/adapteri aluse tagaküljele. Lükkasin 5V regulaatori oma pesasse ja lõpuks sai lüliti asendisse suruda.
Paigaldage I/O trükkplaat. Asetasin IC trükkplaadi selle salvestusruumi ja asetasin I/O liidese trükkplaadi peale. Kruvisin trükkplaadi 4x M3 poltide ja kuuskantdraiveri abil maha. Lõpuks ühendasin alalisvoolu tünnipistiku PCB -ga.
Virnage summaatori trükkplaadid. Panin esimese lisuri oma kohale. Keerasin trükkplaadi tagakülje 2 eraldusribaga tagumistesse kinnitusavadesse. Kordasin seda protsessi, kuni viimane liitja oli paigas ja kinnitasin selle veel 2 M3 poldiga.
Tehke ümbris. Korpuse jaoks kasutasin 1/4 akrüüli. Mõõtsin projekti lõpliku kõrguse ja lõikasin CAD -mõõtmetega 5 tükki külgede ja ülaosa jaoks välja, et teha lihtne lahtise põhjaga karp. Liimimiseks kasutasin epoksüüdi Lõpuks lihvisin paremal küljel väikese poolringi väljalõike, et lülitit mahutada.
Arvutamiseks valmis
10. samm: arvutamine ja võrdlus
Ühendage uus kalkulaator ja alustage lisamist! Diagrammi 10 kuni 2 saab kasutada binaar- ja täisarvude kiireks teisendamiseks. Ma eelistan seadistada sisendid ja seejärel vajutada "võrdseks", lülitades toitelüliti ja jälgides LED -ide binaarset väljundit.
Diskreetsete komponentide võrdlemine integraallülitusega. Nüüd saate eemaldada kõik lisad ja ühendada SN7483A IC sisend-/väljundplaadiga. (Ärge unustage lülitit pöörata vastupidises suunas, et toita IC -d 12 V asemel 5 V). Saate teha samu arvutusi ja saate samu tulemusi. On üsna muljetavaldav mõelda, et nii diskreetkomponent Lisur kui ka IC toimivad samamoodi lihtsalt väga erinevas suuruses. Piltidel on samad ahelate sisendid ja väljundid.
Samm 11: Järeldus
Loodan, et teile meeldis see projekt ja õppisite sama palju kui mina. On üsna rahuldav õppida midagi uut ja muuta see ainulaadseks projektiks, mis nõuab ka uue oskuse, näiteks trükkplaatide disaini/valmistamise, omandamist. Kõik skeemid on loetletud allpool. Kõigile huvilistele võin linkida ka oma PCB Gerberi failid, et saaksite teha oma 4-bitise kahendkalkulaatori. Head tegemist!
Soovitan:
Kuidas: Raspberry PI 4 peata (VNC) installimine RPI-pildistaja ja piltidega: 7 sammu (koos piltidega)
Kuidas: Raspberry PI 4 peata (VNC) installimine Rpi-pildistaja ja piltidega: kavatsen seda Rapsberry PI-d kasutada oma blogis hunniku lõbusate projektide jaoks. Vaadake seda julgelt. Tahtsin uuesti oma Raspberry PI kasutamist alustada, kuid mul polnud uues asukohas klaviatuuri ega hiirt. Vaarika seadistamisest oli tükk aega möödas
Atari punkkonsool beebiga 8 sammu järjestus: 7 sammu (piltidega)
Atari punkkonsool koos beebi 8-astmelise sekveneerijaga: see vaheehitus on kõik-ühes Atari punk-konsool ja beebi 8-astmeline järjestus, mida saate freesida Bantam Tools töölaua PCB-freespingis. See koosneb kahest trükkplaadist: üks on kasutajaliidese (UI) plaat ja teine on utiliit
Polt - DIY juhtmeta laadimise öökell (6 sammu): 6 sammu (piltidega)
Bolt - DIY juhtmeta laadimise öökell (6 sammu): Induktiivsed laadimised (tuntud ka kui juhtmeta laadimine või juhtmeta laadimine) on traadita jõuülekande tüüp. See kasutab kaasaskantavatele seadmetele elektrit pakkumiseks elektromagnetilist induktsiooni. Kõige tavalisem rakendus on Qi traadita laadimisst
Kahendkalkulaator: 11 sammu
Binaarne kalkulaator: Ülevaade: Alates loogikavärava esimesest leiutamisest 20. sajandil on sellise elektroonika pidev areng toimunud ja see on nüüd üks lihtsamaid, kuid põhimõtteliselt olulisi elektroonikakomponente paljudes erinevates rakendustes
Arvuti demonteerimine lihtsate sammude ja piltidega: 13 sammu (piltidega)
Arvuti demonteerimine lihtsate sammude ja piltidega: see on juhis arvuti demonteerimiseks. Enamik põhikomponente on modulaarsed ja kergesti eemaldatavad. Siiski on oluline, et oleksite selles osas organiseeritud. See aitab vältida osade kaotamist ja ka kokkupanekut