Obsah:

Sestavte počítač se základními znalostmi elektroniky: 9 kroků (s obrázky)
Sestavte počítač se základními znalostmi elektroniky: 9 kroků (s obrázky)

Video: Sestavte počítač se základními znalostmi elektroniky: 9 kroků (s obrázky)

Video: Sestavte počítač se základními znalostmi elektroniky: 9 kroků (s obrázky)
Video: Trik při stavbě počítače. 2024, Červenec
Anonim
Sestavte počítač se základními znalostmi elektroniky
Sestavte počítač se základními znalostmi elektroniky

Chtěli jste někdy předstírat, že jste opravdu chytří, a postavit si vlastní počítač od nuly? Nevíte nic o tom, co je potřeba k výrobě počítače s minimem? Je snadné, pokud víte dostatečně o elektronice, abyste správně spojili některé integrované obvody. Tento instruktáž bude předpokládat, že jste v této části dobrý, plus pár dalších věcí. A pokud ne, stále by nemělo být příliš obtížné je sledovat, pokud víte, jak se provádí prkénko/prototypování. Účelem tohoto pokynu je získat vám fungující „počítač“, aniž byste věděli hodně o tom, jak fungují. Pokryju zapojení a základy programování a také pro vás poskytnu velmi krátký program. Začněme tedy.

Krok 1: Díly a věci

Díly a věci
Díly a věci
Díly a věci
Díly a věci

„Počítač“vyžaduje: napájení, vstup, zpracování, paměť a výstup. Technicky budeme mít všechny tyto věci. Pokryji tyto věci v uvedeném pořadí.

K napájení budete potřebovat 5voltový (zde označený jako 5V) zdroj. Doporučuje se, aby se jednalo o regulovaný zdroj, abyste omylem neusmažili části ve vašem obvodu. Naším vstupem budou tlačítka. Zpracování je samozřejmé; používáme procesor. Paměť se bude skládat pouze z ROM. Interní obecné registry procesoru budou stačit k použití jako RAM. Výstupem budou LED diody.

1 LM7805C - 5V regulátor

1 ZYLOG Z80 - procesor

1 AT28C64B - EEPROM

1 74LS273 - Octal D Flip -Flop

1 74HC374E - Octal D Flip -Flop

3 CD4001BE - Quad NOR Gate

1 NE555 - Generátor hodin

2 1K ohmový odpor

1 Rezistor 10K Ohm

1 odporová síť 10K Ohm; 8 Bussed NEBO 8 dalších 10K odporů

1 1uF kondenzátor

1 100uF kondenzátor

1 Tlačítko

1 matice tlačítek 3x4 NEBO 8 dalších tlačítek

8 LED - na výběru barev nezáleží

8 330 ohmových rezistorů nebo odporové sítě

1 Opravdu velký prkénko nebo několik malých

Spousta a spousta drátu

Ve svém schématu mám nainstalovanou tyčku SRAM. S tím si nemusíte dělat starosti. Přidal jsem to pouze do schématu, aby přesně odráželo můj skutečný obvod, a přidal jsem to do obvodu pro budoucí použití. Do schématu je také přidána čtyřcestná brána OR (74LS36). Vstupy dvou nevyužitých bran jsou svázány s VCC a jejich výstupy zůstaly plovoucí (nevykresleny). Rovněž nejsou nakresleny ani uvedeny výše dva kondenzátory v napájecím obvodu.

Krmím regulovaným 12V do 5V regulátoru, abych napájel celé prkénko. Je docela teplo, a tak jsem připojil chladič, aby se ochladil. Pokud k napájení regulátoru použijete méně než 12 V (použijte alespoň 7 V), měl by běžet chladněji.

Na Z80 se odehrává kouzlo. Trvá pokyny uložené v ROM a provádí je. EEPROM ukládá náš program, který má procesor provést.

Osmičkový klopný obvod, což je naše výstupní zařízení, které zachycuje data na datové sběrnici na svůj vlastní výstup. To nám umožňuje změnit to, co je na sběrnici, což je velmi důležitý krok provedený vícekrát za instrukci, aniž by se měnilo to, co vidí uživatel/divák. Klopný obvod nemůže pohánět proud potřebný k osvětlení výstupních LED diod, takže se napájí do dvou z quad NOR hradlových čipů, které slouží k ukládání 8 datových linek k pohonu LED diod. Protože jsou výstupy bran obrácené, musíme také zapojit LED diody, které mají být invertovány, ale k tomu dojdeme, až na to přijdeme. Druhý čip NOR se používá pro logické dekódování, ale používají se pouze tři brány.

Osmičkový klopný obvod použitý pro vstup je v podstatě stejný. Výstupní klopné obvody udržují svůj výstup buď vysoký, nebo nízký, takže jej nelze použít k pohonu sběrnice; pojme data na sběrnici. Klopný obvod použitý pro vstup nahrazuje pin /RESET za /EN, který víceméně odpojí výstupy (a od) čipu, takže nebude obsahovat data (třístavové výstupy).

Krok 2: Zapojení obvodů napájení, hodin a resetování

Zapojení obvodů napájení, hodin a resetování
Zapojení obvodů napájení, hodin a resetování
Zapojení obvodů napájení, hodin a resetování
Zapojení obvodů napájení, hodin a resetování
Zapojení obvodů napájení, hodin a resetování
Zapojení obvodů napájení, hodin a resetování

POZNÁMKA: U všech částí nejprve zapojte napájecí lišty. Ze všech věcí, které je třeba zapomenout zapojit, bude u čipů mnohem menší pravděpodobnost, že přežijí zapomenutá připojení napájení.

Napájecí obvod je nejjednodušší obvod pro zapojení, následovaný resetovacím a hodinovým obvodem. Na obrázku je vstup 12 V na napájecí liště zcela vpravo. Hnědý vodič, skrývající pod sebou žlutý, přivádí 12V do regulátoru. Výstup regulátoru napájí všechny ostatní napájecí lišty na desce a každý prodlužovací kabel má společný základ, protože tak funguje elektronika.

Procesor ke svému provozu vyžaduje hodinový obvod. Bez něj tam bude jen sedět v inicializovaném stavu a nic nedělat. Hodiny obsluhují vnitřní posuvné registry procesorů, takže mohou generovat signály, které mají dělat věci. Hodí se jakýkoli hodinový vstup, dokonce i jednoduchý odpor a tlačítko. Provádění pokynů ale vyžaduje mnoho hodinových cyklů. Instrukce k zápisu na výstup trvá sama 12 cyklů. Pravděpodobně nechcete sedět a 100krát stisknout tlačítko, abyste získali pouze jednu smyčku kódu (skutečná čísla jsou na konci instruktážního příkazu). K tomu slouží NE555. Přepíná za vás a dělá to (relativně) rychlým tempem.

Než začnete cokoli zapojovat, možná budete chtít pokračovat a zjistit, jak chcete, aby vaše součásti byly rozloženy na desce. Můj hodinový obvod je trochu umístěn ve spodní části desky, takže by byl mimo cestu ostatním součástem. Budeme předpokládat, že víte, jak vytvořit základní hodiny pomocí časovače. Pokud tak neučiníte, budete chtít vyhledat „555 Astable“a postupovat podle tutoriálu. Pomocí rezistoru 1K přejděte mezi 5V kolejnici a pin 7 časovače (R1) a 10K mezi pin 7 a pin 2 (R2). Ujistěte se, že jste resetovací kolík, kolík 4, spojili s kolejnicí 5V, aby mohl fungovat časovač. Na svůj výstup jsem umístil LED, abych mohl ověřit, že hodiny skutečně fungovaly, ale nejsou potřeba.

Další možností u NE555 je nastavit jej jako bránu NOT a použít 1K odpor k připojení výstupu zpět na vstup. Obvykle se k tomu doporučuje použít 3 časovače, ale zjistil jsem, že pouze 1 by měl fungovat dobře. Vězte, že pokud to uděláte, bude to oscilovat velmi vysokou rychlostí a bude velmi obtížné, dokonce nemožné, zjistit, že výstupní LED diody blikají. Toto nastavení se nazývá „kruhový oscilátor“.

Všimněte si, že ještě nepřipojujeme hodiny k procesoru. Jednoduše to připravujeme. Všimněte si také logického čipu těsně nad hodinami na obrázku. To bylo přidáno mnohem později a to bylo jediné polorozumné místo, které zůstalo na jeho umístění. Používá se pro výběr RAM/ROM. Tento instrukční ignoruje RAM, takže nebudete mít tento čip na desce.

Nyní zapojíme resetovací obvod. Nejprve na to musíte na své desce najít místo. Vybral jsem si hned vedle hodin. Přidejte své tlačítko na tabuli. Pomocí rezistoru 1K přivažte jednu stranu tlačítka k liště 5V. Naše kolíky RESET jsou aktivní nízko, což znamená, že je musíme držet vysoko. K tomu slouží odpor. Toto spojení je také místem, kde se připojují resetovací kolíky. Druhá strana tlačítka jde přímo na zem. Pokud chcete resetovat po zapnutí, přidejte do této křižovatky také kondenzátor 10uF. Udržuje napětí na resetovacích pinech dostatečně nízké, aby aktivovalo resetovací obvody v procesoru a klopném obvodu.

Krok 3: Zapojení Z80

Nyní se dostáváme k drzosti. Zapojíme zvíře, kterým je Z80. Na moji desku jsem umístil Z80 nahoře na stejné části desky jako resetovací obvod. Jak již bylo uvedeno, nejprve zapojte napájecí lišty. 5V jde na pin 11 vlevo a zem je jeden pin dolů, ale vpravo. Možná jste si také všimli liché šířky čipu. Způsobí to, že budete mít 3 otevřené konektory na jedné straně na desce a 2 na druhé. Pokud se tak rozhodnete, je méně výhodné propojovat další věci.

Následující čísla pinů-předpokládám, že víte, jak počítat piny na IC-jsou nepoužitými vstupy a musí být svázána s kolejnicí 5V: 16, 17, 24, 25.

Pamatujete si naše hodiny? Jeho výstup jde na pin 6 na z80. Resetovací obvod se připojuje ke kolíku 26. Bez dalších komponent na desce, to je tak daleko, jak vás mohu dostat kabelem samotného z80. Další zapojení bude provedeno v dalších krocích.

Protože jsem již měl obvod vybudovaný, než jsem vůbec uvažoval o napsání tohoto instruktuálu, zdržím se obrazu až do dalšího kroku.

Krok 4: Zapojení ROM

Zapojení ROM
Zapojení ROM

POZNÁMKA: Možná budete chtít počkat na jeho umístění na desku, pokud stále potřebuje naprogramovat (více o tom později).

Pokud jde o ROM, umístil jsem ji vedle Z80 vpravo a také ji posunul o jeden kolík dolů na prkénko. To mi umožnilo propojit adresovou sběrnici přímo, ale o tom později. AT28C64B je EEPROM, což znamená, že může být naprogramován vícekrát vypnutím a zapnutím některých pinů. Nechceme, aby se naše EEPROM omylem přeprogramovala, když je v obvodu. Jakmile tedy budete mít připojené napájecí lišty, zapojte kolík 27 (/WE) na 5V kolejnici, čímž zcela deaktivujete funkci zápisu.

Můj program je tak malý, potřeboval jsem připojit pouze spodních 5 adresních řádků (A0-A4), ale stejně jsem zapojil A5, A6 a A7, abych mohl psát větší programy bez další práce. Další adresní řádky (A8-A12) jsou svázány přímo se zemí, aby se zabránilo nežádoucímu přístupu k vyšším adresám z plovoucích vstupů. S nepoužitými vstupy adresy svázanými se zemí a řízením zápisu s 5V je zapojení zbytku poměrně jednoduché. Najděte A0 na procesoru a připojte jej k A0 na ROM. Poté najděte A1 na procesoru a připojte jej k A1 na ROM. Udělejte to, dokud nezapojíte všechny adresy dohromady. Na obrázku je moje adresová sběrnice do ROM provedena v modrém zapojení. Adresní sběrnice vedoucí do RAM je provedena červeným zapojením. Tyto dráty byly předem nastříhané a odizolované, když přišly v elektroinstalační sadě a byly pro toto zapojení ideální.

Poté, co získáte kabelové adresy (toto se nazývá adresová sběrnice), proveďte přesně to samé pro piny označené D0, pak D1, D2 atd. Udělejte to pro všechny datové piny (D0 - D7) a máte svůj datová sběrnice drátová. S připojením ROM jsme téměř hotovi. Najděte pin ROM /CE (umožňující čip) a zapojte jej na pin 19 procesoru /MREQ (požadavek na paměť) a poté najděte ROM /OE (povolení výstupu) a zapojte jej na pin 21 procesoru /RD (čtení). Nyní jsme hotovi. To vše se provádí pomocí propojovacích vodičů, protože musí jít na druhou stranu procesoru a prkénko nenabízí dostatek prostoru k tomu, aby bylo možné použít takové úhledné zapojení.

Krok 5: Zapojení výstupu

Zapojení výstupu
Zapojení výstupu
Zapojení výstupu
Zapojení výstupu

Protože to bylo neobydlené, vybral jsem pro výstup část desky vlevo od Z80. Umístěte žabku a připojte napájecí lišty. Pin 1, /MR (reset) se může připojit přímo k resetovacímu kolíku procesoru, ale můžete jej ponechat svázaný s 5V kolejnicí. To způsobí pouze to, že bude zobrazovat nevyžádaná data až do prvního zápisu. Všimněte si, jak má čip hodinový vstup na pinu 11. Tento vstup je zvláštní v tom, že je aktivován, když kolík stoupne vysoko. Všimněte si také, že tento pin NENÍ stejné hodiny, které pohání procesor. Tyto hodiny zachycují data uplatněná na datové sběrnici.

Pamatujete si, jak jsme připojili D0 - D7 na ROM ke stejným pinům na procesoru? Udělejte to samé pro tento čip. Jeho D0 jde na D0 na datové sběrnici a tak dále. Piny, které začínají na „Q“, jsou výstupy. Než je zapojíme, musíme přidat další čipy. Použil jsem čtyřbranové brány NOR, protože jich mám trubku a jednu jsem již potřeboval, ale jakýkoli čip bude fungovat, pokud jej zapojíte správně. Mohl jsem svázat jeden vstup na všech branách se zemí a ostatní vstupy použít také jako vstupy, ale pro jednoduchost jsem se rozhodl propojit oba vstupy dohromady.

Čipy jsem umístil pod klopný obvod, aby bylo snazší zapojit přímo bez propojek, ale v tomto místě mi došel drát, takže na tom nakonec nezáleželo. Q0, Q1….. Q7 na klopném obvodu jde na vstupy na jednotlivých branách. Se 4 branami v každém balíčku/čipu jsem potřeboval 2 balíčky a použil všechny brány. Pokud najdete verzi klopného obvodu, která dokáže pohánět diody LED, aniž by bylo nutné takto ukládat do vyrovnávací paměti, tyto dva čipy nejsou potřeba. Pokud používáte brány jako vyrovnávací paměť, které nemají převrácené výstupy (AND/OR/XOR), můžete zapojit diody LED tak, jak byste očekávali. Pokud používáte stejné části jako já a/nebo jsou výstupy invertovány, LED diody by měly být zapojeny podle níže uvedeného popisu. První obrázek ukazuje IC část výstupu.

Pomocí rezistorů 330 Ohm spojte LED diody kladné (anoda) s 5V kolejnicí a připojte záporné (katody) k výstupu bran. Na druhém obrázku můžete vidět, že jsem použil dvě sběrnice odporů, z nichž každá měla pouze pět vnitřních odporů. Takto zapojené LED diody se rozsvítí, když je výstup vypnutý. Děláme to, protože výstup je vypnutý, když je vstup zapnutý. Absolutně se ujistěte, že sledujete, které brány vaše výstupy z ovládacího prvku flip-flop. Pokud vaše LED diody nebudou rozptýleny nebo jejich pořadí bude bezvýznamné, jejich ztráta přehledu může později způsobit zmatek, když se ptáte, proč je výstup špatný.

Krok 6: Zapojení vstupu

Zapojení vstupu
Zapojení vstupu

Vezměte ten klopný obvod 74HC374 a umístěte ho někam. Můj byl někde pod Z80 směrem ke spodní části desky. Pamatujete si minule, kdy jsme připojili D0 k D0 a D1 k D1 a tak dále? Tentokrát připojíme Q0 k D0 a Q1 k D1 a tak dále. Naštěstí tentokrát nemusíme přidávat žádné vyrovnávací paměti, haha. Místo toho připojíme 10K Ohm ke každému kolíku „D“(D0-D7) a uzemnění a poté tlačítko ke stejným kolíkům a 5V kolejnici. Nebo můžete použít sběrnici odporů a výrazně snížit počet součástí. Pomůže také matice tlačítek 3x4 (bez maticového výstupu !!). Obrázek ukazuje celistvost vstupního obvodu spolu s logikou lepidla (tato část je další).

Krok 7: Lepicí logika

Zbývá nám ještě jedna poslední věc. Říká se tomu „lepicí logika“, protože se používá k dekódování řídicích signálů, aby vše fungovalo; to je to, co drží obvod pohromadě. Když chce procesor zapsat data na výstup, /IORQ a /WR (20 respektive 22) se sníží a odesílaná data se uplatní na datové sběrnici. Hodinový pin na obou klopných obvodech je aktivní vysoko, což znamená, že data jsou zablokována, když pin obdrží vysoký signál. Používáme bránu NOR a drát /IORQ na jeden vstup brány a /WR na druhý vstup. Když je buď vysoká, což znamená, že nejsou vybrány obvody IO nebo není prováděna operace zápisu, výstup napájející hodiny klopného obvodu zůstává nízký. Když jsou oba vstupy nízké a pouze když výstup stoupne a klopný obvod uzamkne data.

Nyní musíme zapojit vstupní klopný obvod. Hodinový kolík můžeme zapojit stejným způsobem jako předchozí, ale pomocí /IORQ a /RD. Ale na rozdíl od ostatních klopných obvodů máme také pin /OE, který je třeba brát nízko, pouze když /IORQ a /RD jsou nízké. Mohli bychom použít bránu OR. Nebo můžeme jednoduše vzít signál, který již pro hodiny máme, a převrátit ho jednou ze dvou invertujících bran, které již máme k dispozici. V době, kdy jsem uváděl tento pokyn, jsem neměl k dispozici bránu OR, a tak jsem použil tu druhou možnost. Použití druhé možnosti znamenalo, že jsem stejně nepotřeboval přidávat žádné další části.

Krok 8: Programování

Pokud je vaše zapojení správné a moje vysvětlení jasné, nezbývá než naprogramovat ROM. Existuje několik způsobů, jak toho dosáhnout. Mohli byste to udělat jednoduše a objednat si nový čip z Digikey. Při objednávání dílu budete mít možnost nahrát soubor HEX a naprogramují jej před odesláním. Použijte soubory HEX nebo OBJ připojené k tomuto pokynu a počkejte, až dorazí poštou. Možnost 2 je postavit programátor s Arduinem nebo tak něco. Zkoušel jsem tuto rutinu a nepodařilo se mi správně zkopírovat určitá data a trvalo mi týdny, než jsem na to přišel. Nakonec jsem udělal možnost 3, což je ruční programování a přepínání přepínačů pro ovládání adresových a datových linek.

Po převedení přímo na OP kód procesoru spočívá celý tento program pouze na 17 bytech adresního prostoru, takže ruční programování nebylo příliš hrozné. Program načte do obecného registru B hodnotu 00. Register B slouží k uložení výsledku předchozího přidání. Jelikož se v registru A vyskytuje matematika, nebudeme jej používat k ukládání dat.

Když už mluvíme o registru A, provedeme příkaz IN, který načte vstup, a uloží načtená data do A. Poté přidáme obsah registru B a vydáme výsledek.

Poté se registr A zkopíruje do registru B. A poté provedeme sérii příkazů pro skok. Protože všechny skoky směřují do dolního bajtu adresních řádků a protože horní bajt instrukce skoku je uveden ve druhém argumentu a je „00“, můžeme vynutit, aby po každém skoku následovalo NOP. Děláme to, abychom poskytli čas mezi zobrazením výstupu a čtením vstupu, abychom zabránili náhodnému vstupu. Každý skok používá deset hodinových cyklů a každý NOP používá čtyři. Pokud smyčka trvá příliš dlouho podle vašich představ, můžete zvýšit rychlost hodin nebo ji můžete přeprogramovat tak, aby používala o jeden skok méně.

Krok 9: Testování

Pokud jste vše zapojili správně a vaše ROM je správně naprogramována, zbývá udělat poslední krok: zapojte jej a zjistěte, zda funguje. Stiskněte tlačítko a počkejte několik sekund. Programu trvá 81 hodinových cyklů, než program dosáhne své první smyčky, a každá smyčka zabere 74 hodinových cyklů.

Pokud to nefunguje, zkontrolujte zkraty a nespojené piny (rozepne) a další problémy s kabeláží. Pokud jste se odhlásili z resetu při zapnutí, budete muset provést ruční reset, než procesor něco udělá. K adresové sběrnici můžete také připojit LED diody, abyste zjistili, zda se chovají. Sám jsem s tím měl problémy, takže jsem je místo toho nalepil přímo na datovou sběrnici. To mi umožnilo vidět, co se komunikuje mezi procesorem a ROM, aniž bych se musel starat o to, jestli se ROM čte správně, což by vyžadovalo časové diagramy a já jsem to nechtěl zapojit. Ukázalo se, že to byla dobrá volba, protože jsem konečně zachytil problematické OP kódy, které byly uloženy nesprávně.

Doporučuje: