Obsah:

Zostavte počítač so základnými znalosťami elektroniky: 9 krokov (s obrázkami)
Zostavte počítač so základnými znalosťami elektroniky: 9 krokov (s obrázkami)

Video: Zostavte počítač so základnými znalosťami elektroniky: 9 krokov (s obrázkami)

Video: Zostavte počítač so základnými znalosťami elektroniky: 9 krokov (s obrázkami)
Video: Ваша материнская плата AMD прослужит дольше - причина найдена 2024, November
Anonim
Zostavte počítač so základnými znalosťami elektroniky
Zostavte počítač so základnými znalosťami elektroniky

Už ste niekedy chceli predstierať, že ste skutočne múdri a postaviť si vlastný počítač od nuly? Neviete nič o tom, čo je potrebné na výrobu počítača s minimom? Je jednoduché, ak viete dostatočne dobre o elektronike správne prepojiť niektoré integrované obvody. Tento pokyn bude predpokladať, že ste v tejto časti dobrý, plus niekoľko ďalších vecí. A ak nie, stále by nemalo byť príliš ťažké sledovať ho, ak viete, ako sa robí chlieb/prototyp. Cieľom tohto pokynu je získať vám fungujúci "počítač" bez toho, aby ste veľa vedeli o tom, ako fungujú. Pokryjem zapojenie a základy programovania a tiež vám poskytnem veľmi krátky program. Začnime teda.

Krok 1: Časti a veci

Časti a veci
Časti a veci
Časti a veci
Časti a veci

„Počítač“vyžaduje: napájanie, vstup, spracovanie, pamäť a výstup. Technicky budeme mať všetky tieto veci. Pokryjem tieto veci v uvedenom poradí.

Na napájanie budete potrebovať zdroj 5 voltov (tu označovaný ako 5V). Odporúčame, aby to bol regulovaný zdroj, aby ste omylom nesmažili časti vo vašom obvode. Našim vstupom budú tlačidlá. Spracovanie je samovysvetľujúce; používame procesor. Pamäť bude pozostávať iba z pamäte ROM. Na použitie ako RAM budú stačiť interné všeobecné registre procesora. Výstupom budú LED diódy.

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 - Brána Quad NOR

1 NE555 - Generátor hodín

2 1K ohmový odpor

1 odpor 10K Ohm

1 odporová sieť 10K Ohm; 8 bussed ALEBO 8 ďalších 10K odporov

1 kondenzátor 1uF

1 100uF kondenzátor

1 Tlačidlo

1 matica tlačidiel 3x4 ALEBO 8 ďalších tlačidiel

8 LED - na výbere farby nezáleží

8 330 Ohm rezistory alebo odporová sieť

1 Naozaj veľký Breadboard alebo niekoľko malých

Veľa a veľa drôtu

V mojej schéme mám nainštalovanú palicu SRAM. O to sa ani nemusíte báť. Pridal som to iba do schémy, aby presne odrážal môj skutočný obvod, a pridal som ho do obvodu na budúce použitie. K schéme je tiež pridaná štvorcestná brána OR (74LS36). Vstupy dvoch nepoužitých brán sú viazané na VCC a ich výstupy zostávajú plávajúce (nie nakreslené). Tiež nie sú nakreslené ani uvedené vyššie dva kondenzátory v napájacom obvode.

Napájam regulované 12V do 5V regulátora, aby som nakŕmil celé pole. Je dosť teplo, a tak som na chladenie pripevnil chladič. Ak na napájanie regulátora použijete menej ako 12 V (použite najmenej 7 V), mal by bežať chladnejšie.

Na Z80 sa deje kúzlo. Berie pokyny uložené v ROM a vykonáva ich. EEPROM ukladá náš program na vykonanie procesora.

Osmičkový klopný obvod, to je naše výstupné zariadenie, ktoré ukladá údaje na dátovej zbernici na svoj vlastný výstup. To nám umožňuje zmeniť to, čo je na zbernici, čo je veľmi dôležitý krok vykonaný viackrát za inštrukciu, bez toho, aby sa zmenilo to, čo vidí používateľ/divák. Klopný obvod nemôže poháňať prúdom potrebným na osvetlenie výstupných diód LED, takže sa napájajú do dvoch zo štyroch čipov NOR gate, ktoré pôsobia na vyrovnávanie 8 dátových liniek na napájanie diód LED. Pretože sú výstupy brán obrátené, musíme tiež zapojiť LED diódy, ktoré majú byť obrátené, ale k tomu prídeme, keď na to prídeme. Druhý čip NOR sa používa na logické dekódovanie, ale používajú sa iba tri brány.

Osmičkový klopný obvod použitý na vstup je v podstate to isté. Výstupné žabky držia svoj výkon buď vysoký alebo nízky, takže ho nemožno použiť na pohon autobusu; uchováva údaje v autobuse. Klopný obvod používaný na vstupe nahrádza pin /RESET /EN, ktoré viac-menej odpojí výstupy (a od) čipu, takže nebude uchovávať údaje (trojstavové výstupy).

Krok 2: Zapojenie obvodov napájania, hodín a resetovania

Zapojenie napájacích, hodinových a resetovacích obvodov
Zapojenie napájacích, hodinových a resetovacích obvodov
Zapojenie obvodov napájania, hodín a resetovania
Zapojenie obvodov napájania, hodín a resetovania
Zapojenie obvodov napájania, hodín a resetovania
Zapojenie obvodov napájania, hodín a resetovania

POZNÁMKA: Pri všetkých častiach najskôr zapojte napájacie koľajnice. Zo všetkého, čo zabudnete na drôt, bude čipom oveľa menšia pravdepodobnosť, že prežijú zabudnuté napájacie pripojenia.

Napájací obvod je najľahší obvod na zapojenie, po ktorom nasledujú resetovacie a hodinové obvody. Na obrázku je vstup 12 V na rozvodke úplne vpravo. Hnedý drôt, ktorý pod sebou skrýva žltý, napája 12 V do regulátora. Výstup regulátora napája každý ďalší predlžovací kábel na doske a každý predlžovací kábel má spoločný základ, pretože tak funguje elektronika.

Na prevádzku procesora je potrebný hodinový obvod. Bez toho tam bude len sedieť v inicializovanom stave a nič nerobiť. Hodiny prevádzkujú vnútorné posuvné registre procesorov, takže môžu generovať signály, ktoré majú robiť veci. Postačí akýkoľvek hodinový vstup, dokonca aj jednoduchý odpor a tlačidlo. Vykonanie pokynov však vyžaduje mnoho hodinových cyklov. Pokyn na zápis na výstup trvá sám 12 cyklov. Pravdepodobne nechcete sedieť a viac ako 100 -krát stlačiť tlačidlo, aby ste získali iba jednu slučku kódu (skutočné čísla sú na konci pokynu). Na to slúži NE555. Vykonáva za vás prepínanie a robí to (relatívne) rýchlym tempom.

Predtým, ako začnete čokoľvek zapojovať, možno budete chcieť pokračovať a zistiť, ako chcete, aby boli vaše komponenty rozložené na doske. Môj hodinový obvod je trochu umiestnený v spodnej časti dosky, takže by prekážal iným komponentom. Budeme predpokladať, že viete, ako vytvoriť základné hodiny s časovačom. Ak to neurobíte, budete si musieť vyhľadať „555 Astable“a postupovať podľa tutoriálu. Rezistor 1K použite na prechod medzi 5V lištu a pin 7 časovača (R1) a 10K medzi pin 7 a pin 2 (R2). Uistite sa, že ste resetovací kolík, kolík 4, uviazali na 5V lištu, aby mohol fungovať časovač. Na svoj výstup som umiestnil LED diódu, aby som mohol overiť, či hodiny skutočne fungujú, ale nie sú potrebné.

Ďalšou možnosťou zariadenia NE555 je nastaviť ho ako bránu NOT a pomocou rezistora 1K prepojiť výstup späť so vstupom. Na tento účel sa zvyčajne odporúča použiť 3 časovače, ale zistil som, že iba 1 by mal fungovať dobre. Vedzte, že ak to urobíte, bude to kmitať veľmi vysokou rýchlosťou a bude veľmi ťažké, dokonca nemožné zistiť, že výstupné diódy LED blikajú. Toto nastavenie sa nazýva „kruhový oscilátor“.

Všimnite si toho, že ešte nepripojujeme hodiny k procesoru. Jednoducho to pripravujeme. Všimnite si tiež logický čip tesne nad hodinami na obrázku. Bolo to pridané neskôr a to bolo jediné polorozumné miesto, ktoré bolo možné umiestniť. Slúži na výber pamäte RAM/ROM. Tento pokyn ignoruje RAM, takže tento čip nebudete mať na doske.

Teraz zapojíme resetovací obvod. Najprv na to musíte nájsť miesto na svojej doske. Vybral som si hneď vedľa hodín. Pridajte svoje tlačidlo na nástenku. 1K odporom pripevnite jednu stranu tlačidla k 5V lište. Naše kolíky RESET sú aktívne nízke, čo znamená, že ich musíme držať vysoko. Na to slúži odpor. Na tomto križovatke sa tiež spájajú resetovacie kolíky. Druhá strana tlačidla smeruje priamo na zem. Ak chcete resetovať zapnutie, pridajte na túto križovatku aj kondenzátor 10uF. Udržiava napätie na resetovacích kolíkoch dostatočne nízke na to, aby aktivovalo resetovacie obvody v procesore a klopnom obvode.

Krok 3: Zapojenie Z80

Teraz sa dostaneme k drzosti. Pripojíme dravú zver, ktorá je Z80. Na svoju dosku som umiestnil Z80 hore na rovnakú časť dosky ako resetovací obvod. Ako bolo uvedené vyššie, najskôr zapojte napájacie koľajnice. 5V ide na kolík 11 vľavo a zem je o jeden kolík nižšie, ale vpravo. Tiež ste si mohli všimnúť nepárnu šírku čipu. Spôsobí to, že budete mať 3 otvorené konektory na jednej strane na doske a 2 na druhej. Menej pohodlné je zasielanie ďalších vecí, ak sa tak rozhodnete.

Nasledujúce čísla pinov-predpokladám, že viete, ako počítať piny na IC-sú nepoužité vstupy a musia byť viazané na 5V lištu: 16, 17, 24, 25.

Pamätáte si naše hodiny? Jeho výstup ide na pin 6 na z80. Resetovací obvod sa pripája na kolík 26. Bez ďalších komponentov na doske vás to dovedie k zapojeniu samotného z80. Ďalšie zapojenie bude vykonané v neskorších krokoch.

Pretože som mal obvod už postavený, ešte než som uvažoval o napísaní tohto návodu, zdržím sa obrazu až do ďalšieho kroku.

Krok 4: Zapojenie pamäte ROM

Zapojenie ROM
Zapojenie ROM

POZNÁMKA: Možno budete chcieť počkať, kým ho skutočne umiestnite na dosku, ak ho stále potrebujete naprogramovať (viac o tom neskôr).

Pokiaľ ide o ROM, umiestnil som ju vedľa Z80 vpravo a tiež som ju posunul o jeden kolík nadol na dosku. To mi umožnilo prepojiť zbernicu adries priamo, ale o tom neskôr. AT28C64B je EEPROM, čo znamená, že ho možno naprogramovať viackrát vypnutím a zapnutím niektorých pinov. Nechceme, aby sa naša EEPROM omylom preprogramovala, keď je v obvode. Akonáhle teda budete mať napájacie koľajnice zapojené, zapojte kolík 27 (/WE) na 5V koľajnicu, aby ste úplne zakázali funkciu zápisu.

Môj program je taký malý, potreboval som pripojiť iba spodných 5 riadkov adresy (A0-A4), ale aj tak som zapojil A5, A6 a A7, aby som mohol písať väčšie programy bez ďalšej práce. Ďalšie riadky adries (A8-A12) sú viazané priamo na zem, aby sa zabránilo nežiaducemu prístupu k vyšším adresám z plávajúcich vstupov. Keďže nepoužité vstupy adresy sú viazané na zem a ovládanie zápisu je viazané na 5 V, zapojenie zvyšku je pomerne jednoduché. Nájdite A0 na procesore a zapojte ho do A0 na ROM. Potom nájdite A1 na procesore a zapojte ho do A1 na ROM. Vykonajte to, kým neprepojíte všetky adresy dohromady. Na obrázku je moja zbernica adries k ROM vedená v modrom zapojení. Adresová zbernica smerujúca do pamäte RAM je vedená červeným káblom. Tieto drôty boli všetky vopred nastrihané a odizolované, keď boli dodané v súprave elektroinštalácií, a boli pre toto zapojenie perfektné.

Potom, čo dostanete adresy (toto sa nazýva adresová zbernica), urobte to isté pre piny označené D0, potom D1, D2 atď. Urobte to pre všetky dátové piny (D0 - D7) a máte svoj dátová zbernica drôtová. S zapojením ROM sme takmer hotoví. Nájdite pin ROM /CE (umožnenie čipu) a zapojte ho na pin 19 procesora /MREQ (požiadavka na pamäť) a potom vyhľadajte ROM /OE (povolenie výstupu) a zapojte ho na pin 21 procesora /RD (čítanie) procesora. Teraz sme hotoví. To všetko sa vykonáva pomocou prepojovacích káblov, pretože musia ísť na druhú stranu procesora a doska na pečenie neponúka dostatok miesta na použitie takto úhľadného zapojenia.

Krok 5: Zapojenie výstupu

Zapojenie výstupu
Zapojenie výstupu
Zapojenie výstupu
Zapojenie výstupu

Pretože bol neobývaný, vybral som si pre výstup časť dosky naľavo od Z80. Nasaďte žabku a pripojte napájacie koľajnice. Pin 1, /MR (reset) sa môže pripojiť priamo k resetovaciemu kolíku procesora, ale môžete ho nechať viazaný na 5V lištu. Ak to urobíte, bude sa zobrazovať iba nevyžiadaná pošta až do prvého zápisu. Všimnite si, ako má čip hodinový vstup na pine 11. Tento vstup je zvláštny v tom, že sa aktivuje, keď sa pin zvýši. Všimnite si tiež, že tento pin NIE JE ten istý, ktorý poháňa procesor. Tieto hodiny zablokujú údaje potvrdené na dátovej zbernici.

Pamätáte si, ako sme prepojili D0 - D7 na ROM s rovnakými pinmi na procesore? Urobte to isté pre tento čip. Jeho D0 ide na D0 na dátovej zbernici a podobne. Kolíky, ktoré začínajú na „Q“, sú výstupy. Predtým, ako ich zapojíme, musíme pridať ďalšie čipy. Použil som štyri brány NOR, pretože ich mám tubu a jednu som už potreboval, ale akýkoľvek čip bude fungovať, ak ho zapojíte správne. Mohol som prepojiť jeden vstup na všetkých bránach so zemou a použiť ostatné vstupy ako vstupy, ale pre jednoduchosť som sa rozhodol prepojiť oba vstupy dohromady.

Čipy som umiestnil pod žabku, aby bolo jednoduchšie prepojiť priamo bez prepojok, ale v tomto mieste mi dochádzal kábel, takže na tom nakoniec nezáležalo. Q0, Q1 ….. Q7 na klopnom obvode ide na vstupy na jednotlivých bránach. So 4 bránami v každom balíku/čipe som potreboval 2 balíčky a použil som všetky brány. Ak nájdete verziu klopného obvodu, ktorá dokáže poháňať diódy LED bez toho, aby potrebovala vyrovnávaciu pamäť, tieto dva čipy nie sú potrebné. Ak ako vyrovnávaciu pamäť použijete brány, ktoré nemajú invertované výstupy (AND/OR/XOR), môžete LED diódy zapojiť tak, ako by ste očakávali. Ak používate rovnaké diely ako ja a/alebo sú výstupy invertované, diódy LED by mali byť zapojené podľa nižšie uvedeného popisu. Prvý obrázok zobrazuje IC časť výstupu.

Odpormi 330 Ohm zapojte kladné LED (anóda) na 5V lištu a pripojte záporný (katóda) k výstupu brán. Na druhom obrázku môžete vidieť, že som použil dve zbernice odporov, z ktorých každá mala iba päť vnútorných odporov. Takto zapojené LED diódy rozsvietia, keď je výstup vypnutý. Robíme to, pretože výstup je vypnutý, keď je vstup zapnutý. Uistite sa, že absolútne sledujete, ktoré brány sú vaše výstupy z ovládača flip-flop. Pokiaľ vaše LED diódy nebudú rozptýlené alebo ich poradie bude bezvýznamné, strata ich prehľadu môže neskôr spôsobiť zmätok, keď sa pýtate, prečo je výstup zlý.

Krok 6: Zapojenie vstupu

Zapojenie vstupu
Zapojenie vstupu

Vezmite ten klopný obvod 74HC374 a umiestnite ho niekam. Ten môj bol niekde pod Z80 smerom k spodnej časti dosky. Pamätáte si minule, keď sme prepojili D0 s D0 a D1 s D1 a tak ďalej? Tentokrát spojíme Q0 až D0 a Q1 až D1 a tak ďalej. Našťastie tentokrát nemusíme pridávať žiadne vyrovnávacie pamäte, haha. Namiesto toho ideme pripojiť 10K Ohm ku každému kolíku „D“(D0-D7) a uzemneniu a potom tlačidlo k rovnakým kolíkom a 5V koľajnici. Alebo môžete použiť zbernicu rezistorov a výrazne znížiť počet svojich súčiastok. Pomôže aj matica tlačidiel 3x4 (bez maticového výstupu !!). Obrázok ukazuje celistvosť vstupného obvodu spolu s logikou lepidla (táto časť je ďalšou).

Krok 7: Lepiaca logika

Máme ešte poslednú vec na zapojenie. Hovorí sa mu „lepiaca logika“, pretože sa používa na dekódovanie riadiacich signálov, aby všetko fungovalo; to je to, čo drží obvod pohromade. Keď chce procesor zapisovať údaje na výstup, hodnoty /IORQ a /WR (20, respektíve 22) klesnú a odosielané údaje sa uplatňujú na dátovej zbernici. Hodinový kolík na oboch klopných obvodoch je aktívny vysoko, čo znamená, že údaje sú zaistené, keď kolík dostane vysoký signál. Na jeden vstup brány používame bránu NOR a vodič /IORQ a na druhý vstup /WR. Keď je buď vysoká, to znamená, že nie sú zvolené obvody IO alebo sa nevykonáva operácia zápisu, výstup napájajúci hodiny klopného obvodu zostáva nízky. Keď sú obidva vstupy nízke a iba vtedy, ak výstup stúpne a klopný obvod uzamkne údaje.

Teraz musíme zapojiť vstupný klopný obvod. Hodinový kolík môžeme zapojiť rovnakým spôsobom ako predchádzajúci, ale pomocou /IORQ a /RD. Na rozdiel od ostatných klopných obvodov však máme aj pin /OE, ktorý je potrebné znížiť iba vtedy, ak sú hodnoty /IORQ a /RD nízke. Mohli by sme použiť bránu OR. Alebo môžeme jednoducho vziať signál, ktorý už pre hodiny máme, a prevrátiť ho jednou z dvoch invertujúcich brán, ktoré už máme k dispozícii. V čase, keď som uviedol tento pokyn, nemal som k dispozícii bránu OR, a tak som použil jednu z uvedených možností. Použitie druhej možnosti znamenalo, že som aj tak nepotreboval pridávať žiadne ďalšie diely.

Krok 8: Programovanie

Ak je vaše zapojenie správne a moje vysvetlenie jasné, zostáva iba naprogramovať ROM. Na to existuje niekoľko spôsobov. Môžete to urobiť jednoducho a objednať si nový čip z Digikey. Pri objednávaní súčiastky budete mať možnosť nahrať súbor HEX a naprogramujú ho pred odoslaním. Použite súbory HEX alebo OBJ pripojené k tomuto pokynu a počkajte, kým príde poštou. Možnosť 2 je postaviť programátor s Arduinom alebo niečím takým. Skúsil som tento postup a nepodarilo sa mi správne skopírovať určité údaje a trvalo mi týždne, kým som na to prišiel. Nakoniec som urobil možnosť 3, ktorou je ručne ju naprogramovať a preklopiť prepínače na ovládanie riadkov adresy a údajov.

Po konverzii priamo na OP kód procesora spočíva celý tento program iba na 17 bytoch adresného priestoru, takže ručné programovanie nebolo také hrozné. Program načíta do univerzálneho registra B hodnotu 00. Register B slúži na uloženie výsledku predchádzajúceho pridania. Pretože v registri A dochádza k matematike, nebudeme ho používať na ukladanie údajov.

Keď už hovoríme o registri A, vykonáme príkaz IN, ktorý načíta vstup a uložené údaje uloží do A. Potom pridáme obsah registra B a výstup vynesieme.

Potom sa register A skopíruje do registra B. A potom urobíme sériu príkazov na skok. Pretože všetky skoky smerujú do dolného bajtu riadkov adresy a pretože horný bajt inštrukcie skoku je uvedený v druhom argumente a je „00“, môžeme vynútiť, aby po každom skoku nasledovalo NOP. Robíme to, aby sme poskytli čas medzi zobrazením výstupu a čítaním vstupu, aby sme zabránili náhodnému vstupu. Každý skok používa desať hodinových cyklov a každý NOP používa štyri. Ak slučka trvá príliš dlho podľa vášho vkusu, môžete zvýšiť rýchlosť hodín alebo ju môžete preprogramovať tak, aby používala o jeden skok menej.

Krok 9: Testovanie

Ak ste všetko zapojili správne a ROM je naprogramovaná správne, musíte urobiť jeden posledný krok: zapojte ho a zistite, či funguje. Stlačte tlačidlo a počkajte niekoľko sekúnd. Programu trvá 81 hodinových cyklov, kým program dosiahne svoju prvú slučku, a každá slučka trvá 74 hodinových cyklov.

Ak to nefunguje, skontrolujte skraty a nepripojené kolíky (otvára sa) a ďalšie problémy s zapojením. Ak ste sa odhlásili z resetu pri zapnutí, budete musieť pred vykonaním niečoho vykonať manuálny reset. K adresovej zbernici môžete tiež pripojiť LED diódy, aby ste zistili, či sa správajú. Sám som s tým mal problémy, a tak som ich namiesto toho prilepil priamo na dátovú zbernicu. To mi umožnilo vidieť, čo sa komunikuje medzi procesorom a ROM, bez toho, aby som sa musel starať o to, či sa ROM číta správne, čo by vyžadovalo časové diagramy a ja som to nechcel zapájať. Ukázalo sa, že to bola dobrá voľba, pretože som konečne zachytil problematické OP kódy, ktoré boli uložené nesprávne.

Odporúča: