Satura rādītājs:

4 bitu binārais kalkulators: 11 soļi (ar attēliem)
4 bitu binārais kalkulators: 11 soļi (ar attēliem)

Video: 4 bitu binārais kalkulators: 11 soļi (ar attēliem)

Video: 4 bitu binārais kalkulators: 11 soļi (ar attēliem)
Video: Лайфхаки для ремонта квартиры. Полезные советы.#2 2024, Jūlijs
Anonim
4 bitu binārais kalkulators
4 bitu binārais kalkulators
4 bitu binārais kalkulators
4 bitu binārais kalkulators
4 bitu binārais kalkulators
4 bitu binārais kalkulators
4 bitu binārais kalkulators
4 bitu binārais kalkulators

Man radās interese par to, kā datori darbojas pamatlīmenī. Es gribēju saprast diskrētu komponentu izmantošanu un ķēdes, kas nepieciešamas sarežģītāku uzdevumu veikšanai. Svarīga CPU galvenā sastāvdaļa ir aritmētiskā loģikas vienība jeb ALU, kas veic darbības ar veseliem skaitļiem. Lai veiktu šo uzdevumu, datori izmanto bināros skaitļus un loģiskos vārtus. Viena no vienkāršākajām veiktajām darbībām ir divu skaitļu saskaitīšana saskaitītāja ķēdē. Šis video ar numurfilu lieliski palīdz izskaidrot šo jēdzienu, izmantojot Domino papildinājumu. Mets Pārkers paplašina šo pamatjēdzienu un izveido Domino datora ķēdi, izmantojot 10 000 domino. Pilna personālā datora izveide no domino ir absurds, bet es tomēr gribēju saprast diskrētu komponentu izmantošanu, lai veiktu šo pievienošanas uzdevumu. Videoklipos loģiskie vārti tika izveidoti no domino, taču tos var izgatavot arī no pamata sastāvdaļām, proti, tranzistoriem un rezistoriem. Šī projekta mērķis bija izmantot šos diskrētos komponentus, lai apgūtu un izveidotu savu 4 bitu saskaitītāja kalkulatoru.

Mani šī projekta mērķi bija šādi: 1) Uzziniet, kā izveidot un izgatavot pielāgotu PCB

Lielu daļu šī projekta iedvesmas un izpratnes guva Simons Inns.

Piegādes

Es izmantoju Fritzing, lai izveidotu shēmas, izveidotu un izgatavotu PCB

1. solis: teorija

Teorija
Teorija
Teorija
Teorija
Teorija
Teorija
Teorija
Teorija

Skaitīšana 10. bāzē ir vienkārša, jo ir atšķirīgs vesels skaitlis, kas apzīmē divu veselu skaitļu summu. Vienkāršākais piemērs:

1 + 1 = 2

Skaitot 2. bāzē vai binārā, tiek izmantoti tikai 1 un 0. 1 un 0 kombinācija tiek izmantota, lai attēlotu dažādus veselus skaitļus un to summas. Skaitīšanas piemērs 2. bāzē:

1+1 = 0, un jūs pārnesat 1 uz nākamo bitu

Pievienojot divus bitus (A un B) kopā, ir iespējami 4 dažādi rezultāti ar summas un pārneses (Cout) rezultātiem. Tas ir redzams tabulā.

Loģiskie vārti ņem ievadi un ģenerē izvadi. Daži no pamata loģikas vārtiem sastāv no vārtiem NOT, AND un OR, kas visi tiek izmantoti šajā projektā. Tos veido dažādas tranzistoru un rezistoru kombinācijas un vadi. Katra vārtu shēma ir sniegta.

Atsaucoties uz tabulu, šo vārtu kombināciju var izmantot, lai iegūtu summas rezultātus tabulā. Šo loģikas kombināciju sauc arī par ekskluzīviem OR (XOR) vārtiem. Ievadam jābūt precīzi 1, lai izvadītu 1. Ja abas ieejas ir 1, izvades rezultāts ir 0. Pārneses bitu rezultātus var attēlot ar vienkāršu AND vārti. Tādējādi, izmantojot gan XOR ar AND vārtiem, var attēlot visu tabulu. Tas ir pazīstams kā puse papildinātājs, un shēma ir parādīta iepriekš.

Lai pievienotu lielākus bināros skaitļus, pārneses bits jāiekļauj kā ieeja. Tas tiek panākts, apvienojot 2 Half Adder shēmas, lai izveidotu pilnu papildinātāju. Pilnus papildinātājus var apvienot, lai pievienotu lielākus bināros skaitļus. Savā projektā es kaskādēju 4 pilnus papildinātājus, kas ļāva man iegūt 4 bitu ievadi. Pilnā papildinājuma shēma ir norādīta iepriekš.

Simon Inns ir lielisks un padziļināts raksts par teoriju. Ir arī daži PDF faili, kas man šķita noderīgi.

2. darbība. Ķēdes pārbaude

Ķēdes pārbaude
Ķēdes pārbaude
Ķēdes pārbaude
Ķēdes pārbaude

Pirmais solis pēc izpratnes par loģisko vārtu darbību un pilnas papildinātāja teoriju ir ķēdes izveidošana. Sākumā apkopoju visus nepieciešamos komponentus: 10K un 1K rezistorus, NPN tranzistorus, maizes dēli, Jumperwires. Es sekoju kopā ar pilnā papildinātāja izdruku. Process bija garlaicīgs, bet es varēju iegūt darba shēmu pilnam papildinātājam. Es sasaistītu ieejas augstu vai zemu un izmantoju multimetru, lai pārbaudītu izejas. Tagad es biju gatavs pārvērst maizes dēli un shematisko uz PCB.

3. darbība: pilnā papildinātāja PCB izstrāde

Pilna papildinātāja PCB projektēšana
Pilna papildinātāja PCB projektēšana
Pilna papildinātāja PCB projektēšana
Pilna papildinātāja PCB projektēšana
Pilna papildinātāja PCB projektēšana
Pilna papildinātāja PCB projektēšana

Lai izveidotu PCB, es izmantoju tikai Fritzing. Šī bija mana pirmā reize, kad izstrādāju PCB, un šī programma šķita lietotājam draudzīgākā un intuitīvākā ar mazāko mācīšanās līkni. Ir pieejamas arī citas lieliskas programmas, piemēram, EasyEDA un Eagle, lai palīdzētu izveidot PCB. Izmantojot Fritzing, jūs varat sākt veidot uz virtuālās maizes dēļa vai shematiski, pēc tam pāriet uz PCB. Šajā projektā es izmantoju abas šīs metodes. Kad esat gatavs izgatavot PCB, tas ir tik vienkārši, kā noklikšķināt uz pogas, lai eksportētu failus un augšupielādētu tos tieši uzņēmumam Aisler, Fritzing partneru ražotājam.

Lai sāktu procesu, uzzīmējiet shēmu. Es sāku ar shematisko cilni. Pirmkārt, es atradu un ievietoju visus komponentus darbvietā. Tālāk es zīmēju visas pēdas starp komponentiem. Es pārliecinājos, ka atbilstošajās vietās pievienoju 5V ieeju un zemējumu.

Izveidojiet PCBI, noklikšķinot uz cilnes PCB. Pārvietojoties tieši no shēmas, rodas juceklis ar visām sastāvdaļām, kas savienotas ar ratsnest līnijām, pamatojoties uz shēmā norādītajām pēdām. Pirmā lieta, ko es izdarīju, bija mainīt pelēkās PCB izmēru līdz vajadzīgajam izmēram un pievienot montāžas caurumus. Es arī pievienoju 16 tapas ieejai un izejai. Tālāk es sāku loģiski sakārtot komponentus. Es mēģināju sagrupēt komponentus ar savienojumiem, kas bija tuvu viens otram, lai samazinātu izsekošanas attālumu. Es devos papildu solī un sagrupēju komponentus pēc loģikas vārtiem. Viens no maniem mērķiem bija spēt vizualizēt ķēdes darbību un sekot "bitam" caur ķēdi. Pēc tam es izmantoju autorouting funkciju, kas iet cauri automātiski un izvelk optimizētās izsekošanas starp komponentiem. Es biju skeptisks par to, ka šis process pabeidza visas pareizās izsekošanas, tāpēc es vēlreiz pārbaudīju un pārzīmēju izsekošanas vietas, kur tām vajadzēja būt. Par laimi, automātiskās maršrutēšanas funkcija paveica diezgan labu darbu, un man nācās labot tikai dažas no izsekojamībām. Autorouter arī izveidoja dažus dīvainus leņķus ar pēdām, kas nav "labākā prakse", bet man ar to viss bija kārtībā, un viss joprojām strādāja labi. Pēdējā lieta, ko es izdarīju, bija pievienot tekstu, kas tiktu drukāts kā sietspiede. Es pārliecinājos, ka visas sastāvdaļas ir marķētas. Es arī importēju pielāgotus loģikas vārtu attēlus, lai uzsvērtu komponentu grupēšanu. Pēdējā attēlā redzams sietspiede.

Izgatavojiet PCBI, noklikšķinot uz izgatavošanas pogas ekrāna apakšā. Tas mani tieši novirzīja uz Aisler vietni, kur es varēju izveidot kontu un augšupielādēt visus savus Fritzing failus. Es atstāju visus noklusējuma iestatījumus un veicu pasūtījumu.

4. solis: pārējo PCB projektēšana

Citu PCB projektēšana
Citu PCB projektēšana
Citu PCB projektēšana
Citu PCB projektēšana
Citu PCB projektēšana
Citu PCB projektēšana

Atlikušie PCB, kas man bija vajadzīgi, bija ievades/izvades saskarnes plate un IC plāksne. Šiem dēļiem es sekoju kā 3. solim. Shēmu pdf ir ievietots zemāk. IC gadījumā es izveidoju visus savienojumus, izmantojot virtuālās maizes dēļa funkciju. Es iekļāvu shēmas pilnību, bet varēju tieši pāriet no maizes dēļa uz cilni PCB, kas bija diezgan forši. Pirms augšupielādes un pasūtīšanas pakalpojumā Aisler es pievienoju arī bāzi 10 līdz bāzes 2 reklāmguvumu diagrammai I/O saskarnes paneļa sietspiedē.

5. solis: komponentu lodēšana pie PCB

Lodēšanas komponenti PCB
Lodēšanas komponenti PCB
Lodēšanas komponenti PCB
Lodēšanas komponenti PCB
Lodēšanas komponenti PCB
Lodēšanas komponenti PCB
Lodēšanas komponenti PCB
Lodēšanas komponenti PCB

Visas PCB ieradās, un mani patiešām pārsteidza kvalitāte. Man nav bijusi pieredze ar citiem ražotājiem, bet nevilcinoties atkal izmantot Aisler.

Nākamais uzdevums bija lodēt visas sastāvdaļas, kas bija grūts process, bet manas lodēšanas prasmes ievērojami uzlabojās. Es sāku ar pilnām summēšanas plāksnēm un lodēju komponentus, sākot ar tranzistoriem, tad 1K rezistoriem, tad 10K rezistoriem. Es izmantoju līdzīgu metodi, lai lodētu pārējās sastāvdaļas uz I/O un IC plates. Pēc tam, kad bija pabeigta katra Full Adder dēļa pārbaude, es tos pārbaudīju ar tādu pašu metodi kā maizes dēļa Full Adder. Pārsteidzoši, ka visi dēļi darbojās pareizi, bez problēmām. Tas nozīmēja, ka dēļi tika novirzīti pareizi un ka tie ir lodēti pareizi. Uz nākamo soli!

6. solis: PCB apdare sakraušanai

PCB apdare sakraušanai
PCB apdare sakraušanai
PCB apdare sakraušanai
PCB apdare sakraušanai
PCB apdare sakraušanai
PCB apdare sakraušanai

Nākamais uzdevums bija pielodēt visas galvenes tapas pie katras tāfeles. Man arī vajadzēja pievienot džemperu vadus starp pareizo galvenes tapu un Full Adder paneļu ieejām/izejām (A, B, Cin, V+, GND, Sum, Cout). No šī soļa varētu izvairīties, ja katram saskaitītāja ķēdes līmenim izstrādātu dažādas PCB, bet es gribēju samazināt dizainu un izmaksas, izveidojot tikai vienu pilna papildinājuma PCB. Rezultātā savienojumiem ar šīm ieejām/izejām bija nepieciešami džemperu vadi. Sniegtajā shēmā ir norādīts, kā es paveicu šo uzdevumu un kuras tapas tika izmantotas katram Full Adder dēļu līmenim. Attēli parāda, kā es lodēju katras tāfeles džempera vadus. Es sāku, lodējot bezmaksas vadus pie pareizajām tapām uz galvenes. Pēc tam es lodēju galveni pie PCB. Pēc tam, kad man bija pielodēti galvenes tapas ar džemperu vadiem, es pielodēju džemperu vadu brīvos galus pie pareizajiem PCB vadiem. Iepriekš redzamajā attēlā redzams tuvplāns no galvenes tapām ar pielodētiem džempera vadiem.

7. darbība: ķēžu barošana

Ķēžu barošana
Ķēžu barošana
Ķēžu barošana
Ķēžu barošana
Ķēžu barošana
Ķēžu barošana

Es plānoju šim projektam izmantot 12 V līdzstrāvas cilindra ligzdas barošanas avotu, tāpēc es izveidoju I/O saskarnes plati, lai tai būtu līdzstrāvas mucas ligzda/savienotājs strāvas ieejai. Tā kā es izmantoju to pašu I/O plati un vēlējos izmantot vienīgo barošanas avotu, man vajadzēja noregulēt spriegumu līdz 5 V, jo šī ir maksimālā ieeja SN7483A IC. Lai to paveiktu, man bija nepieciešams 5V regulators un slēdzis, kas varētu pārslēgties starp 12V un 5V. Iepriekš redzamā shēma parāda, kā es savienoju strāvas ķēdi.

8. darbība. Pamatnes 3D drukāšana

Pamatnes 3D drukāšana
Pamatnes 3D drukāšana
Pamatnes 3D drukāšana
Pamatnes 3D drukāšana
Pamatnes 3D drukāšana
Pamatnes 3D drukāšana

Tagad, kad visa elektroinstalācija un lodēšana ir pabeigta, man vajadzēja izdomāt, kā tas viss tiks turēts kopā. Es izvēlējos CADing un 3D drukāšanu, kas atbilstu un parādītu visas šī projekta daļas.

Dizaina apsvērumi Man vajadzēja vietas, kur piestiprināt PCB ar skrūvēm un atdalītājiem. Saliktie papildinātāji ir vizuāli vispievilcīgākie, un es vēlējos, lai tie tiktu parādīti, kad tie netiek izmantoti, tāpēc es vēlējos vietu, kur uzglabāt IC PCB. Man vajadzēja pielāgot strāvas ķēdi ar slēdža un DC mucas ligzdas/savienotāja izgriezumiem. Visbeidzot, es gribēju sava veida korpusa vitrīnu, lai novērstu putekļu savākšanu atklātās PCB, tāpēc man bija nepieciešama vieta, kur novietot korpusu.

3D modelēšana Es izmantoju Fusion360, lai izstrādātu pamatu. Sāku ar PCB izmēriem un montāžas atveru atstarpi. Pēc tam es izmantoju vairākas skices un ekstrūzijas, lai ar PCB stiprinājuma punktiem iestatītu pamatnes augstumu un izmēru. Tālāk es izveidoju korpusa un strāvas ķēdes izgriezumus. Tad es izveidoju vietu, kur uzglabāt IC PCB, kad to neizmanto. Visbeidzot, es pievienoju dažas apdares malas detaļas un nosūtīju to savai griešanas programmatūrai Cura.

Es izvēlējos melnu PLA kvēldiegu. Drukāšana aizņēma nedaudz vairāk par 6 stundām un izdevās lieliski. Pārsteidzoši, ka visi izmēri bija pareizi, un viss šķita, ka tas pareizi saderēs. Iepriekš redzamajā attēlā redzama druka pēc tam, kad es pievienoju atdalīšanas vietas montāžas caurumos. Tie bija ideāli piemēroti!

9. solis: montāža

Montāža
Montāža
Montāža
Montāža
Montāža
Montāža

Ievietojiet atdalītājus. Es visus novietojumus ievietoju pamatnes montāžas caurumos.

Ievietojiet strāvas ķēdi pamatnē. Es biju visu savienojis kopā un izvilcis visas sastāvdaļas caur slēdža atveri. Pēc tam es ievietoju strāvas kontaktligzdu/adapteri pamatnes aizmugurē. Es iespiedu 5V regulatoru savā slotā, un galu galā slēdzi varēja ievietot stāvoklī.

Uzstādiet I/O PCB. Es ievietoju IC PCB tā uzglabāšanas vietā un ievietoju I/O interfeisa PCB uz augšu. Es pieskrūvēju PCB, izmantojot 4x M3 skrūves un sešstūra vadītāju. Visbeidzot, es pievienoju līdzstrāvas mucas ligzdu PCB.

Sakraujiet saskaitāmo PCB. Es sakrauju pirmo papildinātāju vietā. Es pieskrūvēju PCB aizmuguri aizmugurējos stiprinājuma caurumos ar 2 atdalītājiem. Es atkārtoju šo procesu, līdz bija pēdējais papildinātājs un nostiprināju to ar vēl 2 M3 skrūvēm.

Izveidojiet korpusu. Korpusam izmantoju 1/4 collu akrilu. Izmērīju projekta galīgo augstumu un ar CAD izmēriem izgriezu 5 gabalus sāniem un augšai, lai izveidotu vienkāršu kastīti ar atvērtu dibenu. Līmēšanai izmantoju epoksīdu Visbeidzot, es noslīpēju nelielu pusloku izgriezumu labajā pusē, lai pielāgotu slēdzi.

Gatavs aprēķināt

10. solis: aprēķināšana un salīdzināšana

Image
Image
Aprēķināšana un salīdzināšana
Aprēķināšana un salīdzināšana
Aprēķināšana un salīdzināšana
Aprēķināšana un salīdzināšana

Pievienojiet jauno kalkulatoru un sāciet pievienot! Diagrammu no bāzes līdz bāzei 2 var izmantot, lai ātri konvertētu starp bināro un veselu skaitli. Es gribētu iestatīt ieejas un pēc tam nospiest "vienāds", pagriežot barošanas slēdzi un novērojot bināro izvadi no gaismas diodēm.

Diskrētu komponentu salīdzināšana ar integrēto shēmu. Tagad varat atvienot visus papildinātājus un pievienot SN7483A IC I/O panelī. (Neaizmirstiet pagriezt slēdzi pretējā virzienā, lai barotu IC ar 5V, nevis 12V). Jūs varat veikt tos pašus aprēķinus, un jūs iegūsit tādus pašus rezultātus. Ir diezgan iespaidīgi domāt, ka gan diskrētā komponenta papildinātājs, gan IC darbojas vienādi tikai ļoti atšķirīgā izmēru skalā. Attēlos ir redzamas tādas pašas ķēdes ieejas un izejas.

11. solis. Secinājums

Es ceru, ka jums patika šis projekts un uzzinājāt tikpat daudz kā es. Ir diezgan patīkami uzzināt kaut ko jaunu un pārvērst to par unikālu projektu, kas prasa arī jaunu prasmju apguvi, piemēram, PCB projektēšanu/izgatavošanu. Visas shēmas ir uzskaitītas zemāk. Ikvienam, kas interesējas, es varu arī saistīt savus PCB Gerber failus, lai jūs varētu izveidot savu 4 bitu bināro kalkulatoru. Laimīgu veidošanu!

Ieteicams: