Tartalomjegyzék:

Számítógép felépítése az elektronika alapismereteivel: 9 lépés (képekkel)
Számítógép felépítése az elektronika alapismereteivel: 9 lépés (képekkel)

Videó: Számítógép felépítése az elektronika alapismereteivel: 9 lépés (képekkel)

Videó: Számítógép felépítése az elektronika alapismereteivel: 9 lépés (képekkel)
Videó: A számítógép felépítése 2024, Július
Anonim
Számítógép felépítése az elektronika alapismereteivel
Számítógép felépítése az elektronika alapismereteivel

Szeretett volna valaha úgy tenni, mintha igazán okos lenne, és a semmiből építené saját számítógépét? Nem tud semmit arról, hogy mi szükséges egy minimális számítógép elkészítéséhez? Nos, könnyű, ha eléggé ismeri az elektronikát, hogy helyesen dobja össze az egyes IC -ket. Ez az utasítás azt feltételezi, hogy jó vagy ebben a részben, és még néhány dolog. És ha nem, akkor még mindig nem lehet túl nehéz követni, ha tudja, hogyan történik a kenyérfal/prototípus. Ennek az utasításnak az a célja, hogy működő "számítógépet" szerezzen Önnek anélkül, hogy sokat tudna azok működéséről. Foglalkozom a huzalozással és a programozás alapjaival, valamint egy nagyon rövid programmal. Tehát kezdjük.

1. lépés: Alkatrészek és dolgok

Alkatrészek és cuccok
Alkatrészek és cuccok
Alkatrészek és cuccok
Alkatrészek és cuccok

A "számítógép" a következőket igényli: áram, bemenet, feldolgozás, memória és kimenet. Technikailag mindezek a dolgok rendelkezésünkre állnak. Ezeket a sorrendet fogom ismertetni.

Az áramellátáshoz 5 voltos (itt 5 V -os címkével ellátott) forrás szükséges. Javasoljuk, hogy szabályozott forrás legyen, nehogy véletlenül megsüsse az áramkör alkatrészeit. A bemenetünk gombok lesz. A feldolgozás magától értetődő; processzort használunk. A memória csak ROM -ból fog állni. A processzor belső általános célú regiszterei elegendőek lesznek RAM -ként. A kimenet LED -ek lesz.

1 LM7805C - 5V szabályozó

1 ZYLOG Z80 - Processzor

1 AT28C64B - EEPROM

1 74LS273 - Octal D flip -flop

1 74HC374E - Octal D flip -flop

3 CD4001BE - Quad NOR Gate

1 NE555 - Óragenerátor

2 1K ohmos ellenállás

1 10K ohmos ellenállás

1 10K ohmos ellenálláshálózat; 8 Feszített VAGY 8 További 10K ellenállás

1 1uF kondenzátor

1 100uF kondenzátor

1 Nyomógomb

1 3x4 gombos mátrix VAGY 8 további nyomógomb

8 LED - A színválasztás nem számít

8 330 ohmos ellenállások vagy ellenálláshálózat

1 Igazán nagy kenyérlap vagy több kicsi

Sok -sok huzal

A sematikámban van egy SRAM -bot telepítve. Még csak aggódnia sem kell emiatt. Csak a vázlathoz adtam hozzá, hogy pontosan tükrözze a tényleges áramkört, és hozzáadtam az áramkörhöz későbbi használatra. A vázlathoz hozzá van adva egy négy VAGY kapu is (74LS36). A két nem használt kapu bemenete VCC -hez van kötve, és kimeneteik lebegnek (nincsenek rajzolva). Szintén nincs rajzolva és felsorolva két kondenzátor a főáramkörön.

Szabályozott 12V -ot táplálok az 5V -os szabályozóba, hogy a teljes kenyértáblát betáplálja. Inkább felmelegszik, ezért hűtőbordát tettem fel hűtésre. Ha 12 V -nál kevesebbet használ a szabályozó táplálásához (legalább 7 V -ot használjon), akkor a hűtőnek hidegebbnek kell lennie.

A Z80 a varázslat története. A ROM -ban tárolt utasításokat veszi és végrehajtja. Az EEPROM tárolja programunkat a processzor számára.

Az oktális flip-flop, amely a kimeneti eszközünk, amely rögzíti az adatbuszon lévő adatokat a saját kimenetéhez. Ez lehetővé teszi számunkra, hogy megváltoztassuk a buszon lévő adatokat, ami egy nagyon fontos lépés, amelyet utasításonként többször meg kell tenni, anélkül, hogy megváltoztatnánk a felhasználó/néző látását. A flip-flop nem képes meghajtani a kimeneti LED-ek megvilágításához szükséges áramot, ezért a négy quad NOR gate chip közül kettőbe táplálnak, amelyek pufferelik a 8 adatvonalat a LED-ek meghajtásához. Mivel a kapuk kimenete inverz, a LED -eket is be kell kötni, hogy megfordítsuk őket, de erre majd ráérünk. A másik NOR chipet logikai dekódolásra használják, de csak három kaput használnak.

A bemenethez használt oktális flip-flop lényegében ugyanaz. A kimeneti flip-flopok magasan vagy alacsonyan tartják a kimenetet, így nem használható a busz meghajtására; adatokat tárolna a buszon. A bemenethez használt flip-flop helyettesíti a /RESET érintkezőt az /EN-el, amely többé-kevésbé leválasztja a chip kimeneteit (és azokról), így nem fog adatokat tárolni (három állapotú kimenetek).

2. lépés: A táp-, óra- és visszaállítási áramkörök bekötése

A táp-, óra- és visszaállítási áramkörök bekötése
A táp-, óra- és visszaállítási áramkörök bekötése
A táp-, óra- és visszaállítási áramkörök bekötése
A táp-, óra- és visszaállítási áramkörök bekötése
A táp-, óra- és visszaállítási áramkörök bekötése
A táp-, óra- és visszaállítási áramkörök bekötése

MEGJEGYZÉS: Minden alkatrésznél először kösse be az elektromos síneket. Ha elfelejtünk vezetékezni, a chipek sokkal kevésbé fogják túlélni az elfelejtett áramcsatlakozásokat.

A főáramkör a legegyszerűbb vezetékes áramkör, amelyet a reset és az óra áramkör követ. A képen a 12V -os bemenet a jobb szélén lévő elosztón található. A barna vezeték, amely sárgát rejt magában, táplálja a 12 V -ot a szabályozóhoz. A szabályozó kimenete táplálja a kenyértáblán lévő összes többi tápfeszültséget, és minden elosztó közös vonalban van, mert az elektronika így működik.

A processzor működéséhez óraáramkör szükséges. Enélkül csak ülni fog inicializált állapotában, és nem tesz semmit. Az óra működteti a processzorok belső váltásregisztereit, így képes jeleket generálni. Bármilyen óra bemenet megteszi, még egy egyszerű ellenállás és nyomógomb is. De az utasítások végrehajtásához sok óra ciklus szükséges. A kimenetre írásra vonatkozó utasítás önmagában 12 ciklust vesz igénybe. Valószínűleg nem szeretne ott ülni, és több mint 100 -szor megnyomni egy gombot, hogy csak egy hurkot kapjon a kódból (a tényleges számok az utasítás végén találhatók). Erre való az NE555. Megcsinálja a váltást helyetted, és ezt viszonylag gyors ütemben teszi.

Mielőtt bármit bekötne, érdemes előre menni, és kitalálni, hogyan szeretné elhelyezni az alkatrészeket a táblán. Az óraáramköröm valahogy csak a tábla aljára van helyezve, így nem állna útba más alkatrészekkel. Feltételezzük, hogy tudja, hogyan kell alapórát készíteni az időzítővel. Ha nem, akkor keresse meg az "555 Astable" -t, és kövesse az oktatóanyagot. Használja az 1K ellenállást az 5V -os sín és az időzítő (7) csapja (R1), valamint a 10K a 7 -es és a 2 -es tű (R2) között. Győződjön meg arról, hogy a 4 -es tűt az 5V -os sínhez köti, hogy az időzítő működni tudjon. LED -et tettem az enyém kimenetére, hogy meggyőződhessek arról, hogy az óra valóban működik, de nincs rá szükség.

Egy másik lehetőség az NE555 -nél, hogy NOT -kapunak kell beállítani, és 1K ellenállással kell a kimenetet a bemenethez kötni. Általában 3 időzítő használatát javasolják ehhez, de azt tapasztaltam, hogy csak egynek kell működnie. Csak tudd, hogy ha ezt megteszed, nagyon nagy sebességgel rezeg, és nagyon nehéz, sőt lehetetlen lesz megmondani, hogy a kimeneti LED -ek villognak. Ezt a beállítást "gyűrűoszcillátornak" hívják.

Ne feledje, hogy még nem csatlakoztatjuk az órát a processzorhoz. Egyszerűen előkészítjük. Vegye figyelembe a képen az óra feletti logikai chipet is. Később adták hozzá, és ez volt az egyetlen félig ésszerű hely a helyére. RAM/ROM kiválasztására szolgál. Ez az utasítás figyelmen kívül hagyja a RAM -ot, így nem lesz ez a chip az alaplapon.

Most bekötjük a visszaállítási áramkört. Először meg kell találnia egy helyet a táblán. Az óra mellett választottam. Add hozzá a gombot a táblához. 1K ellenállással kösse a gomb egyik oldalát az 5V -os sínhez. A RESET csapjaink alacsonyan aktívak, vagyis magasan kell tartani őket. Erre való az ellenállás. Ezen a csomóponton a visszaállító csapok is csatlakoznak. A gomb másik oldala egyenesen a földre kerül. Ha vissza szeretné kapcsolni a bekapcsolást, adja hozzá a 10uF kondenzátort is ehhez a csomóponthoz. Ez elég hosszú ideig tartja a feszültséget a visszaállító csapokon, hogy aktiválja a visszaállítási áramkört a processzoron és a flip-flopon belül.

3. lépés: A Z80 bekötése

Most elérkeztünk az aprósághoz. Megkötjük a fenevadat, ami a Z80. A táblán a Z80 -at a tetejére helyeztem, ugyanazon a táblán, mint a visszaállítási áramkör. Amint azt korábban említettük, először kösse be az elektromos síneket. Az 5V a bal oldali 11 -es csaphoz megy, és a föld egy tűvel lefelé, de a jobb oldalon. Lehet, hogy észrevette a chip furcsa szélességét is. Ennek eredményeként 3 nyitott csatlakozó lesz az egyik oldalon a kenyértáblán, és 2 a másik oldalon. Csak így kevésbé kényelmes a további dolgok vezetékezése, ha úgy dönt.

A következő pin-számok-feltételezem, hogy tudja, hogyan kell számítani a csapokat egy IC-n-nem használt bemenetek, és az 5V-os sínhez kell kötni: 16, 17, 24, 25.

Emlékszel az óránkra? A kimenete a z80 -as 6 -os csapjára megy. A visszaállítási áramkör a 26 -os érintkezőhöz csatlakozik. Anélkül, hogy a többi alkatrész a fedélzeten lenne, ez a lehetőség, amennyire csak tudom, a z80 kábelezésével. További huzalozást végeznek a későbbi lépésekben.

Mivel már megépítettem az áramkört, mielőtt még ezt az oktathatónak tartottam volna megírni, a következő lépésig kitartok a kép mellett.

4. lépés: A ROM bekötése

A ROM bekötése
A ROM bekötése

MEGJEGYZÉS: Érdemes leállni a táblára való tényleges elhelyezéssel, ha még programozásra szorul (erről később).

A ROM -hoz a jobb oldalon lévő Z80 mellé tettem, és egy tűvel lejjebb helyeztem a kenyértáblán. Ez lehetővé tette számomra, hogy a címbuszt közvetlenül átvezethessem, de erről később. Az AT28C64B egy EEPROM, vagyis többször is programozható néhány ki- és bekapcsolásával. Nem akarjuk, hogy az EEPROM véletlenül újraprogramozza magát, amikor az áramkörben van. Tehát ha már csatlakoztatta az elektromos síneket, akkor a 27 -es (/WE) vezetéket az 5V -os sínhez kapcsolja ki, hogy teljesen letiltsa az írási funkciót.

A programom olyan kicsi, csak az alsó 5 címsort kellett csatlakoztatnom (A0-A4), de az A5, A6 és A7 kábeleket mindenesetre bekötöttem, így nagyobb programokat tudok írni további munka nélkül. A további címsorok (A8-A12) közvetlenül a földhöz vannak kötve, hogy megakadályozzák a nem kívánt hozzáférést a magasabb címekhez a lebegő bemenetekből. Mivel a fel nem használt címbemenetek földhöz kötöttek, és az írásvezérlés 5V -ra van kötve, a többi bekötése meglehetősen egyszerű. Keresse meg az A0 -t a processzoron, és csatlakoztassa A0 -ra a ROM -on. Ezután keresse meg az A1 -t a processzoron, és csatlakoztassa az A1 -hez a ROM -on. Ezt addig tegye, amíg az összes címet össze nem köti. A képen a címbuszom a ROM -hoz kék huzalozással készült. A RAM -hoz menő címbusz piros vezetékkel van ellátva. Ezeket a vezetékeket előre vágták és lecsupaszították, mivel kenyérsütő tábla kábelezési készletben érkeztek, és tökéletesek voltak ehhez a huzalozáshoz.

Miután a címeket bekötötték (ezt címsínnek hívják), pontosan ugyanezt kell tenni a D0, majd a D1, D2, stb. Feliratú csapokhoz. adat busz vezetékes. Majdnem befejeztük a ROM bekötését. Keresse meg a ROM /CE (chip engedélyezése) tűt, és csatlakoztassa a processzor 19 -es tűjéhez, /MREQ (memóriakérés), majd keresse meg a ROM -ot /OE -t (kimenet engedélyezése), és kösse a 21 -es processzorcsaphoz, /RD (olvasás). Most végeztünk. Mindezeket áthidaló vezetékekkel kell elvégezni, mert át kell menniük a processzor másik oldalára, és a kenyértábla nem kínál elegendő helyet az ilyen tiszta vezetékek használatához.

5. lépés: A kimenet bekötése

A kimenet bekötése
A kimenet bekötése
A kimenet bekötése
A kimenet bekötése

Mivel néptelen volt, a kimenethez a Z80 bal oldalán lévő táblarészt választottam. Helyezze rá a flip-flopot, és csatlakoztassa őket a tápcsövekhez. Az 1 -es tű, /MR (reset) közvetlenül csatlakoztatható a processzor reset -tűjéhez, de az 5V -os sínhez kötve is hagyhatja. Ha ezt megteszi, csak az első írásig látja a szemét adatokat. Figyeld meg, hogyan van a chipen óra bemenet a 11 -es érintkezőn. Ez a bemenet furcsa, mivel akkor aktiválódik, amikor a csap magasan van. Vegye figyelembe azt is, hogy ez a gomb NEM ugyanaz az óra, amely a processzort hajtja. Ez az óra rögzíti az adatbuszon érvényesített adatokat.

Emlékszel, hogyan kötöttük össze a ROM -on lévő D0 -D7 -et a processzor ugyanazokkal a csapjaival? Tegye pontosan ezt a chipet is. D0 -ja D0 -re megy az adatbuszon és így tovább. A "Q" betűvel kezdődő csapok kimenetek. Mielőtt ezeket bekötjük, további zsetonokat kell hozzáadnunk. A quad NOR kapukat használtam, mert van egy csövem belőlük, és már szükségem volt rá, de kb. Minden chip működni fog, ha megfelelően beköted. Az egyik bemenetet minden kapun a földhöz köthettem volna, a többi bemenetet pedig bemenetként használhatnám, de az egyszerűség kedvéért úgy döntöttem, hogy mindkét bemenetet összekötem.

A zsetonokat a flip-flop alá helyeztem, hogy megkönnyítsem a közvetlen vezetéket jumper nélkül, de ezen a ponton kezdtem kifogyni a drótból, így végül nem igazán számított. A flip-flop Q0, Q1….. Q7 az egyes kapuk bemeneteire megy. 4 kapuval minden csomagban/chipben 2 csomagra volt szükségem, és minden kaput használtam. Ha a flip-flop olyan verzióját találja, amely képes a LED-ek meghajtására anélkül, hogy ily módon pufferelt volna, akkor erre a két chipre nincs szükség. Ha olyan kapukat használ pufferként, amelyek nem rendelkeznek invertált kimenetekkel (ÉS/VAGY/XOR), akkor a LED -eket a várt módon bekötheti. Ha ugyanazokat az alkatrészeket használja, mint én, és/vagy a kimenetek megfordulnak, a LED -eket az alább leírtak szerint kell bekötni. Az első kép a kimenet IC részét mutatja.

A 330 ohmos ellenállásokkal kösse össze a pozitív LED -eket (anód) az 5V -os sínhez, és csatlakoztassa a negatívokat (katód) a kapuk kimenetéhez. A második képen látható, hogy két ellenállású buszt használtam, mindegyik csak öt belső ellenállással. A LED -ek ilyen módon történő bekötése kigyullad, ha a kimenet ki van kapcsolva. Ezt azért tesszük, mert a kimenet kikapcsolt állapotban van, amikor a bemenet be van kapcsolva. Feltétlenül ügyeljen arra, hogy nyomon kövesse, hogy a flip-flop vezérlés melyik kapuit adja ki. Hacsak a LED -ek nem szétszóródnak, vagy a sorrendjük értelmetlen, nyomuk elvesztése később zavart okozhat, amikor azt kérdezi magától, hogy miért rossz a kimenet.

6. lépés: A bemenet bekötése

A bemenet bekötése
A bemenet bekötése

Fogja a 74HC374 flip-flopot, és helyezze el valahová. Az enyém valahol a Z80 alatt volt a tábla alja felé. Emlékszel a múltkorra, amikor a D0 -t a D0 -hoz, a D1 -et a D1 -hez és így tovább kötöttük össze? Ezúttal a Q0 -t a D0 -hoz, a Q1 -et a D1 -hez és így tovább. Szerencsére ezúttal nem kell puffer zsetont hozzáadnunk, haha. Ehelyett egy 10K Ohm-ot fogunk csatlakoztatni minden "D" -es (D0-D7) és földeléshez, majd egy gombot ugyanazokhoz a csapokhoz és az 5V-os sínhez. Vagy használhat ellenállás buszt, és jelentősen csökkentheti az alkatrészszámot. Egy 3x4 gombos mátrix (mátrixos kimenet nélkül !!) is segít. A kép a bemeneti áramkör egészét mutatja a ragasztó logikával együtt (ez a rész következik).

7. lépés: Ragasztási logika

Még egy utolsó dolgunk van. Ezt "ragasztó logikának" nevezik, mert a vezérlőjelek dekódolására használják, hogy minden működjön; ez tartja össze az áramkört. Amikor a processzor adatokat akar írni a kimenetre, mind az /IORQ, mind a /WR (20, illetve 22) lecsökken, és az elküldött adatok érvényesülnek az adatbuszon. Mindkét papucs órajele magasan aktív, vagyis az adatok zárolva vannak, amikor a csap magas jelet kap. NOR kaput és vezetéket /IORQ -t használunk a kapu egyik bemenetére és /WR -t a másik bemenetre. Ha bármelyik magas, vagyis az IO áramkörök nincsenek kiválasztva, vagy nem írási műveletet hajtanak végre, a flip-flop óráját tápláló kimenet alacsony marad. Ha mindkét bemenet alacsony, és csak akkor, amikor a kimenet magas lesz, és a flip-flop rögzíti az adatokat.

Most be kell kötni a bemeneti flip-flopot. Az óra csapját ugyanúgy vezethetjük, mint az előzőt, de az /IORQ és /RD használatával. De ellentétben a másik flip-floppal, nekünk is van egy /OE csapja, amelyet csak akkor kell levenni, ha az /IORQ és /RD alacsonyak. Használhatunk VAGY kaput. Vagy csak vegyük a már meglévő jelet az órához, és fordítsuk meg a már rendelkezésre álló két invertáló kapu egyikével. Ennek az utasításnak a kimondásakor nem volt elérhető VAGY kapu, ezért az utóbbi lehetőséget választottam. Az utóbbi lehetőség használata azt jelentette, hogy különben sem kellett további alkatrészeket hozzáadnom.

8. lépés: Programozás

Ha a bekötése helyes és a magyarázatom világos, akkor csak a ROM programozása marad hátra. Ennek néhány módja van. A könnyű utat választhatja, és új chipet rendelhet a Digikey -től. Amikor megrendeli az alkatrészt, lehetősége van feltölteni egy HEX fájlt, és programozni fogják, mielőtt elküldik. Használja az ehhez az utasításhoz csatolt HEX vagy OBJ fájlokat, és várja meg, amíg megérkezik a levélben. A második lehetőség egy programozó felépítése Arduino -val vagy ilyesmivel. Kipróbáltam ezt a módszert, de nem sikerült helyesen másolni bizonyos adatokat, és hetekbe telt, mire rájöttem erre. Végül a 3. opciót választottam, azaz kézzel programoztam, és a címeket és az adatvonalakat vezérlő flip kapcsolókkal.

Miután közvetlenül a processzor OP -kódjává konvertálták, ez az egész program mindössze 17 bájt címterületen nyugszik, így a kézi programozás nem volt túl szörnyű. A program betölti a B általános célú regiszterbe a 00 értéket. A B regiszter az előző összeadás eredményének tárolására szolgál. Mivel az A regiszterben történik a matematika, nem használjuk az adatok tárolására.

Ha már az A regiszterről beszélünk, akkor egy IN parancsot hajtunk végre, amely beolvassa a bemenetet, és tároljuk az olvasott adatokat A -ban. Ezután hozzáadjuk a B regiszter tartalmát, és kiadjuk az eredményt.

Ezt követően az A regisztert átmásoljuk a B regiszterbe. Ezután végrehajtunk egy sor ugrási parancsot. Mivel minden ugrás a címsorok alsó bájtjára mutat, és mivel az ugrás utasítás felső bájtja a második argumentumban van megadva, és "00", minden egyes ugrást NOP -ra kényszeríthetünk. Ezt azért tesszük, hogy legyen idő a kimenet megjelenítése és a bemeneti bemenet között, hogy elkerüljük a véletlen bevitelt. Minden ugrás tíz óra ciklust és minden NOP négyet használ. Ha a ciklus túl sokáig tart a tetszés szerint, növelheti az órajel sebességét, vagy átprogramozhatja, hogy eggyel kevesebb ugrást használjon.

9. lépés: Tesztelés

Ha mindent megfelelően bekötött, és a ROM helyesen van programozva, akkor még egy utolsó lépést kell tennie: csatlakoztassa, és nézze meg, hogy működik -e. Nyomjon meg egy gombot, és várjon néhány másodpercet. 81 óra ciklus szükséges ahhoz, hogy a program elérje az első ciklusát, és minden ciklus 74 óra ciklust vesz igénybe.

Ha nem működik, ellenőrizze, nincs -e rövidzárlat és nem csatlakoztatott csapok (nyitva), valamint egyéb kábelezési problémák. Ha leiratkozott a bekapcsolási alaphelyzetbe állításról, akkor manuális alaphelyzetbe állítást kell végrehajtania, mielőtt a processzor bármit megtenné. A címbuszhoz LED -eket is csatlakoztathat, hogy lássa, viselkednek -e. Nekem magamnak is voltak problémáim ezzel, ezért inkább az adatbuszra ragasztottam őket. Ez lehetővé tette számomra, hogy lássam, mit kommunikálnak a processzor és a ROM között anélkül, hogy aggódnom kellene, ha a ROM -ot helyesen olvassák be, amihez időzítési diagramokra lett volna szükség, és egyszerűen nem akartam beavatkozni ebbe. Kiderült, hogy jó választás volt, mert végre elkaptam a hibásan tárolt, problémás OP -kódokat.

Ajánlott: