Obsah:

6502 Minimálny počítač (s Arduino MEGA), časť 1: 7 krokov
6502 Minimálny počítač (s Arduino MEGA), časť 1: 7 krokov

Video: 6502 Minimálny počítač (s Arduino MEGA), časť 1: 7 krokov

Video: 6502 Minimálny počítač (s Arduino MEGA), časť 1: 7 krokov
Video: Příběhy z historie českého internetu: Internetoví pionýři, kteří přišli příliš brzy 2024, Júl
Anonim
6502 Minimálny počítač (s Arduino MEGA), časť 1
6502 Minimálny počítač (s Arduino MEGA), časť 1

Mikroprocesor 6502 sa prvýkrát objavil v roku 1975 a navrhol ho malý tím vedený Chuckom Peddleom pre technológiu MOS. V tej dobe sa používal vo video konzolách a domácich počítačoch vrátane Atari, Apple II, Nintendo Entertainment System, BBC Micro, Commodore VIC20 a 64. V tej dobe bol jedným z najlacnejších na trhu. Nikdy skutočne nezmizol a teraz ho používajú nadšenci a profesionáli na mnohé aplikácie.

Verzia, ktorú používam, je W65C02S6TPG-14 od spoločnosti Western Design Center a používa desaťkrát menej energie ako originál. Je špeciálny tým, že nemusí bežať na 1 MHz ako pôvodný čip. Môže bežať oveľa pomalšie alebo môže byť použitý na jeden krok v programe a dokonca sa zvyšuje až na 14 MHz. Údajový list k čipu vysvetľuje jeho možnosti. Ostatné čipy 6502 túto schopnosť nemajú a nebudú fungovať týmto spôsobom. Čipy sú v súčasnej dobe k dispozícii na Ebay a ďalších zdrojoch.

Zásoby

Všetky použité diely sú v súčasnej dobe k dispozícii na Ebay, AliExpress a ďalších.

Krok 1: Koncept

Inšpiroval som sa Benom Eaterom, ktorý na YouTube vytvoril sériu videí o modeli 6502 a mnohých ďalších aspektoch stavby počítačov a obvodov. Program pôvodne napísal on a ja som upravil tento a niektoré z jeho návrhov tak, aby prišli s týmto pokynom. Ďalším človekom, ktorý ma inšpiroval, bol Andrew Jacobs, ktorý má sekciu na GitHub, kde na ovládanie svojho 6502 používa mikroskop PIC.

Rovnako ako Ben, aj ja používam Arduino MEGA na monitorovanie 6502. Tiež používam MEGA na poskytovanie hodinového signálu na rozdiel od Ben. V súčasnosti nepoužívam žiadne pamäte EEPROM ani RAM.

Krok 2: Požiadavky

Požiadavky
Požiadavky

Ak chcete zostaviť tento „počítač“, zoznam položiek je nasledujúci:

1 x Arduino MEGA

1 x Western Design Center W65C02S6TPG-14

1 x 74HC00N IC (Quad 2-input NAND gate) alebo podobný

1 x 74HC373N IC (priehľadná západka typu Octal D) alebo podobné

2 x 830 otvorov na chlebové dosky (1 na štipku)

Rôzne vodiče a prepojovacie vodiče Dupont - mužské a mužské

2 x LED (použil som 5 mm modrú, pretože sa môžete dostať preč bez rezistorov)

1 x 12 mm momentálny hmatový tlačidlový spínač SPST namontovaný na PCB alebo podobný

1 x 1K odpor

2 x 0,1 uF keramické kondenzátory

1 x 8 -cestná vodná svetelná značka 5 mm červená LED (ako vyššie) alebo 8 LED a rezistorov

POZNÁMKA: Ak dostanete nespájkovanú súpravu, môžete diódy LED vložiť nesprávne, aby boli bežnou katódou. Pripevňujem mušľový kábel (namiesto kolíka), aby sa mohol ľahko pripojiť inde. VCC sa teraz stáva Ground. LED diódy môžete samozrejme otočiť (na zmontovanom predmete) a znova ich spájkovať, ale je to veľa problémov! Sady sú v súčasnej dobe k dispozícii na AliExpress.

Krok 3: Spojte to dohromady

Dať to dohromady
Dať to dohromady
Dať to dohromady
Dať to dohromady

Zistilo sa mi jednoduchšie používať nové káble DuPont, ktoré neboli oddelené od pásky, pre zbernice adries a údajov.

Pripojte kolík 9 (A0) 6502 k kolíku 52 MEGA, pin 10 (A1) z 6502 na pin 50 atď …

Pripojte kolík 25 (A15) 6502 k kolíku 22 MEGA.

Zatiaľ 16 spojení.

Rovnako

Pripojte kolík 26 (D7) 6502 k kolíku 39 MEGA, pin 27 (D6) z 6502 na pin 41 atď …

Pripojte pin 33 (D0) 6502 na pin 53 MEGA.

8 ďalších spojení.

Pripojte pin 8 (VDD) k 5v na MEGA.

Tu môže byť užitočný kondenzátor 0,1 uF pripojený od pinu 8 k Gnd dosky na chlieb, ale nie je potrebný.

Pripojte pin 21 (VSS) k Gnd na MEGA.

Kolíky 2, 4, 6, 36 a 38 je možné uviazať na 5v

Pripojte pin 37 (hodiny) k pinom 2 a 7 k MEGA.

Pripojte kolík 34 (RWB) k pinu 3 MEGA.

Pripojte kolík 40 (Reset) podľa schémy vyššie.

Krok 4: Testovanie obvodu

Testovanie obvodu
Testovanie obvodu

V tejto fáze bude 6502 fungovať a bude možné použiť program1. Ak používate 8 -way markýzu (ako vyššie), môže byť vložená priamo do dosky a prepojovací vodič pripojený k zemi, alebo môžete použiť 8 LED a odpory. LED diódy ukážu, čo je na dátovej zbernici.

V tejto fáze by bolo tiež vhodné nastaviť meškanie v cykle () na 500 alebo viac, aby bolo možné sledovať, čo sa deje.

Na sériovom monitore by ste mali dostať podobný výstup, ako je uvedený vyššie. Keď stlačíte Reset, procesor prejde 7 cyklov a potom vyhľadá spustenie programu na miestach $ FFFC a $ FFFD. Pretože neexistujú žiadne fyzické adresy na čítanie 6502, musíme ich zadať z MEGA.

Vo vyššie uvedenom výstupe 6502 číta $ FFFC a $ FFFD a dostane $ 00 a $ 10 (nízky bajt, vysoký bajt), čo je začiatok programu na 1 000 $. Procesor potom začne vykonávať program na mieste 1 000 dolárov (ako je uvedené vyššie). V tomto prípade to číta A9 dolárov a 55 dolárov, t. J. LDA#55 dolárov (vložte 85 do akumulátora). Pretože opäť neexistuje žiadne umiestnenie fyzickej pamäte, MEGA simuluje to, čo sa číta z dátovej zbernice.

55 dolárov (85) dáva binárny vzorec 01010101 a pri otočení o 1 bit doľava dáva AA (170) 10101010 dolárov.

Program ukazuje, že procesor pracuje správne, ale čoskoro sa stane nudným, takže pokračujte ďalšou časťou.

Krok 5: Ďalší krok

Ďalši krok
Ďalši krok
Ďalši krok
Ďalši krok

„Hromada špagiet“vyššie je pravdepodobne niečo podobné tomu, čo budete mať po tejto fáze.

Ďalej musíte na integrovanú dosku pridať integrované obvody 74HC373N a 74HC00N.

Piny 373 bohužiaľ nie sú v súlade s dátovou zbernicou, takže budú musieť byť zapojené káblami.

Pripojte 5v na pin 20.

Pripojte uzemnenie na pin 10.

Pripojte kolík 33 (D0) modelu 6502 k kolíku 3 (D0) zariadenia 74HC373N

a podobne s kolíkmi D1 až D7.

Výstupy sú Q0 až Q7 a tieto budú potrebovať pripojenie k LED dióde alebo k jednotlivým LED a odporom.

S 74HC00 sú potrebné iba 2 jeho brány

Pripojte 5v na pin 14.

Pripojte uzemnenie na pin 7.

Pripojte kolík 17 (A8) modelu 6502 k kolíku 1 (1A) zariadenia 74HC00

Pripojte kolík 25 (A15) modelu 6502 k kolíku 2 (1B) zariadenia 74HC00

Pripojte kolík 34 (R/W) 6502 k pinu 5 (2B) 74HC00

Pripojte pin 3 (1Y) na 74HC00 k pinu 4 (2A) na 74HC00

Pripojte pin 6 (2Y) na 74HC00 k pinu 11 (LE) na 74HC373N

Pripojte kolík 11 (LE) na 74HC373N k pinu 1 (OE) na 74HC373N

Modrú LED diódu môžete pripojiť k 1R a uzemneniu, ako aj 2R k zemi, čo bude znamenať, že brána je aktívna.

Nakoniec zmeňte riadok v procedúre onClock z programu1 na program2

setDataPins (program2 [offset]);

Krok 6: Program

Program
Program
Program
Program

Program 6502-Monitor obsahuje dve rutiny 6502 popísané vyššie.

Program je stále vo vývoji a je trochu neupravený.

Pri spustení programu2 môže byť oneskorenie v slučke () 50 alebo menej a dokonca ho možno úplne odstrániť. Komentovaním riadkov Serial.print () tiež 6502 beží rýchlejšie. Odpojením kolíka 1 (OE) 373 od kolíka 11 (LE) získate rôzne výsledky. Odpojenie pinov 1 a 11 z 373 od brán NAND vám umožní vidieť, čo je na dátovej zbernici v každom hodinovom cykle.

Možno budete musieť priviazať OE k zemi, a nie nechať ho plávať, pretože 8 výstupných liniek bude deaktivovaných, ak tento kolík pôjde vysoko. Keď je kolík LE vysoký, výstupné kolíky sú rovnaké ako vstupy. Znížením kolíka LE na západky sa výstupy zaistia, tj. Ak sa zmenia vstupné kolíky, výstupy zostanú rovnaké.

Snažil som sa udržať program čo najjednoduchší, aby bol zrozumiteľnejší.

Experimentovanie s časovými oneskoreniami vám umožňuje presne sledovať, čo 6502 robí.

Nasledujú dva programy (oba bežia na adrese 1 000 dolárov) v 6502 Assembler:

program 1

LDA#55 dolárov

NOP

ROL

STA 1010 dolárov

1 000 dolárov

ROL otáča obsah akumulátora o jeden bit vľavo, čo znamená, že z 55 dolárov sa teraz stáva AA.

V strojovom kóde (hex): A9 55 EA 2A 8D 10 10 4C 00 10

program 2

LDA#01 dolárov

STA 8100 dolárov

ADC#03 USD

STA 8100 dolárov

ŽMP 1005 dolárov

V strojovom kóde (hex): A9 01 8D 00 81 69 03 8D 00 81 4C 05 10

V programe2 je teraz fyzická adresa 8100 dolárov, čo je miesto, kde sa 74HC373 nachádza na adresovej zbernici.

t.j. A15 z 6502 je 32768 (8 000 dolárov) a A8 je 256 (0100 dolárov) = 33024 (8100 dolárov).

Keď teda 6502 zapíše do 8 100 dolárov (STA 8 100 dolárov), R/W 6502 je nízka a údaje na dátovej zbernici 6502 sa uzamknú, keď 373 LE klesne. Vzhľadom na bránu NAND 74HC00 sú signály obrátené.

Na vyššie uvedenej sieťotlači sa druhý zápis zvýšil o 3 (ADC#$ 03) - zo 7 $ na 82 $.

V skutočnosti by boli pre konkrétne umiestnenie 373 použité viac ako 2 riadky adresovej zbernice. Pretože toto je jediná fyzická adresa z možných 65536, ukazuje to, ako funguje adresová zbernica. Môžete experimentovať s rôznymi adresnými kolíkmi a umiestniť ich na iné miesto. Samozrejme, budete musieť zmeniť operandy STA na nové miesto. napr. Ak by ste použili riadky adresy A15 a A9, adresa by bola 8200 dolárov (32768 + 512).

Krok 7: Záver

Záver
Záver

Pokúsil som sa predviesť, aké ľahké je uvedenie 6502 do prevádzky.

Nie som odborník v tejto oblasti, takže uvítam akékoľvek konštruktívne pripomienky alebo informácie.

Môžete to ďalej rozvíjať a zaujímalo by ma, čo ste urobili.

Mám v úmysle pridať do projektu EEPROM, SRAM a 6522 a v budúcnosti ho umiestniť na pásovú dosku.

Odporúča: