Cov txheej txheem:

6502 & 6522 Tsawg Lub Computer (nrog Arduino MEGA) Ntu 2: 4 Cov Kauj Ruam
6502 & 6522 Tsawg Lub Computer (nrog Arduino MEGA) Ntu 2: 4 Cov Kauj Ruam

Video: 6502 & 6522 Tsawg Lub Computer (nrog Arduino MEGA) Ntu 2: 4 Cov Kauj Ruam

Video: 6502 & 6522 Tsawg Lub Computer (nrog Arduino MEGA) Ntu 2: 4 Cov Kauj Ruam
Video: 6502 CPU: 6522 VIA output to LEDs 2024, Hlis ntuj nqeg
Anonim
6502 & 6522 Tsawg Lub Computer (nrog Arduino MEGA) Ntu 2
6502 & 6522 Tsawg Lub Computer (nrog Arduino MEGA) Ntu 2

Ua raws li los ntawm kuv Cov Lus Qhia yav dhau los, tam sim no kuv tau muab 6502 rau ntawm lub rooj tsav nkoj thiab ntxiv 6522 Kev Siv Tau Ntau Yam Interface Adapter (VIA). Ib zaug ntxiv, Kuv tab tom siv WDC version ntawm 6522, vim nws yog qhov sib tw zoo tshaj plaws rau lawv 6502. Tsis yog tsuas yog ua cov chips tshiab no siv zog tsawg dua li cov MOS qub, tab sis lawv tuaj yeem khiav ntawm qeeb qeeb lossis txawm tias dhau los ntawm ib qho program yam tsis muaj teeb meem.

Txoj haujlwm Arduino tau pib sau los ntawm Ben Eater (leej twg muaj ntau cov vis dis aus hauv YouTube) thiab tau hloov kho los ntawm kuv kom ua tiav qhov txiaj ntsig no.

Khoom siv

1 x WDC W65C02 Processor

1 x WDC W65C22 Kev Siv Tau Ntau Yam Interface Adapter

1 x 74HC00N IC (Quad 2-nkag NAND rooj vag) lossis zoo sib xws

1 x 10cm dav (35 kab) Sawb board

2 x 40 pin DIL qhov (socket)

1 x 14 pin DIL socket

PCB Header Pins 2.54mm

PCB Header Sockets 2.54mm

1 x 12mm Momentary Tactile Push Button Switch PCB Mounted SPST lossis zoo sib xws

1 x 1K resistor

1 x 3K3 resistor

2 x 0.1 uF ceramic capacitors

1 x 8 Txoj Kev Dej Teeb Marquee 5mm liab LED

Ntau yam xim xaim rau kev sib txuas

8 txiv neej - txiv neej txuas xov hlau

Kauj Ruam 1: Circuit Board

Circuit Board
Circuit Board
Circuit Board
Circuit Board

Lub Rooj Tswjhwm Saib Circuit Court yog qhov me me thiab cov hauv qab ntsaws ncaj qha rau hauv Arduino MEGA. Txhawm rau ua tiav qhov no, cov pins raug thawb kom deb li deb tau rau hauv cov yas tuav ua ntej yuav muab pov rau hauv qab ntawm lub rooj tsavxwm. Cov pins ntev dua tuaj yeem siv rau qhov no, tab sis tus qauv pins txhais tau tias pawg thawj coj tau so ruaj khov rau saum MEGA.

Kuv tau sau kab 6502 thiab 6522 ICs kom lawv siv cov kab txaij sib dhos los txuas rau MEGA. Kuj tseem muaj qee qhov kev sib txuas rau 6502 zais hauv qab IC. Thaum ua lub rooj tsavxwm, thawj qhov uas yuav tsum tau ua yog txhawm rau txiav 16 daim ntawv uas yuav txuas rau Arduino ob kab ntawm cov qhov rooj. Sab 2 tsis tas yuav txiav li 5v thiab Gnd nyob ntawm ob sab. Cov kab laug sab tom ntej hauv 2 kab ntawm 18 tus pin nyob hauv qab, thiab 2 kab ntawm 18 qhov nyob rau sab saum toj.

Tom qab ntawd DIL lub qhov rooj tau muab tso rau hauv qhov chaw thiab cov kab txiav nruab nrab ntawm lawv. Kuv tuaj yeem txuag kev sib txuas los ntawm kev tso tus pin 14 ntawm 74HC00 ntawm tib txoj kev raws li 5v. Kuv tsuas yog txiav cov kab thaum kuv paub tseeb tias lawv yuav tsum yog thaum kuv tab tom txuas cov xov hlau txuas. Txawm li cas los xij, txhua yam tsis tas yuav mus rau txoj kev npaj, kuv tau tsim thawj daim phiaj los ntawm pawg thawj coj noj mov yav dhau los siv tus pin 2, 3 thiab 7 ntawm Arduino, tab sis cov no tsis ua raws li qhov nyob hauv kab txaij, yog li yuav tsum siv pins 18, 31 thiab 37. Yog li ntawv txuas ntawm kuv lub rooj tsavxwm ntawm 31 thiab 37. Koj yuav xav tsis thoob vim li cas kuv thiaj tsis siv tus pin uas tsis siv (23, 24 thiab lwm yam) rau lub moos, qhov no yog vim lawv tsis txhawb cuam tshuam, yog li yuav tsum siv tus pin 18, 19, 20 lossis 21 uas ua. Hmoov zoo cov 4 pins kab nrog lub qhov nyob hauv kab txaij thiab khaws txhua yam kev cog lus. Tus Pin 18 tseem nyob deb tshaj ntawm txhua lwm cov xov hlau.

Koj kuj tseem tuaj yeem pom tias kuv lub rooj tsavxwm ua tiav tsis zoo ib yam li kuv daim duab. Qhov no yog vim kuv tau ua raws lwm tus daim duab. Yog li kev sib txuas rau 74HC00. Kuv kuj tau ntxiv lub zog LED thiab ntxiv 2 kab ntawm qhov nyob rau Gnd thiab 5v ntxiv rau ob peb lub peev xwm ntxiv.

Kuv tuaj yeem txuas nrog 2 cov ntaub ntawv nyob hauv, tab sis qhov no yuav txhais tau ntau ntau cov xov hlau hla lub rooj tsavxwm. Kuv xaiv rau 8 txuas xov hlau los ua qhov no ntsuas ib ntus.

Qhov 6522 chaw nres nkoj A thiab B tau muaj cov thom khwm soldered rau lawv cov ciav hlau kom LED marques tuaj yeem tso tau yooj yim.

Tam sim no muaj cov xov hluav taws xob tsawg dua li muaj nyob hauv daim ntawv qhia zaub mov.

Kauj Ruam 2: Txoj Kev Kawm Txuj Ci

Txoj Kev Kawm Txuj Ci
Txoj Kev Kawm Txuj Ci

6522 muaj ob lub I/O chaw nres nkoj nrog rau ntau yam ntxiv, tab sis chaw nres nkoj A thiab B nkag tau yooj yim. Txhawm rau tso tawm cov ntaub ntawv ntawm chaw nres nkoj, Cov Ntaub Ntawv Qhia Txog Tus Kheej (DDR) yuav tsum tau teeb tsa kom raug thiab cov ntaub ntawv xa mus rau chaw nres nkoj nws tus kheej.

Nrog cov teeb tsa saum toj no, 6522 nyob ntawm $ E000.

Txhawm rau tso tawm cov ntaub ntawv ntawm chaw nres nkoj B, DDR ntawm $ E002 tau teeb tsa rau $ FF (255 - txhua qhov tso tawm) thiab cov ntaub ntawv raug xa mus rau $ E000.

Txhawm rau tso tawm cov ntaub ntawv ntawm chaw nres nkoj A, DDR ntawm $ E003 tau teeb tsa rau $ FF (255 - txhua qhov tso tawm) thiab cov ntaub ntawv raug xa mus rau $ E001.

Cov cai hauv qab no thauj $ FF rau hauv 6502 A rau npe thiab sau nws mus rau DDR B ntawm $ E002. Nws mam li thauj $ 55 thiab sau nws mus rau ORB. Cov cai tau hloov pauv (muab $ AA) thiab sau rau ORB. Qhov kev zov me nyuam dhia rov qab tp $ 1005 thiab rov ua tsis tiav. NCO TSEG: DDR tsuas yog yuav tsum tau pib ua ntej ib zaug.

Chaw Nyob Hexdump Dissassembly

$ 1000 a9 ff LDA #$ ff $ 1002 8d 02 e0 STA $ e002 $ 1005 a9 55 LDA #$ 55 $ 1007 8d 00 e0 STA $ e000 $ 100a 6a ROR A $ 100b 8d 00 e0 STA $ e000 $ 100e 4c 05 10 JMP $ 1005

$ 55 hauv binary yog 010101010 thiab $ AA yog 10101010 uas ua rau LEDs hloov 4 rau, 4 tawm.

Kev kho sai thiab qias neeg:

Hloov 74HC00 (Quad 2 input NAND Gate) nrog 74HC08 (Quad 2 input THIAB Gate) thiab 6522 tam sim no nyob ntawm $ 6000 es tsis yog $ E000. Qhov no txav nws los ntawm sab saud 32K mus rau qis dua 32K ntawm 6502 qhov chaw nyob nco.

Kauj Ruam 3: Txoj Haujlwm Arduino thiab Cov Lus Qhia

Arduino Program thiab Cov Lus Qhia
Arduino Program thiab Cov Lus Qhia

Raws li 6502 tsis muaj RAM nyeem los ntawm, Arduino tab tom muab txoj haujlwm rau nws nyeem. Thaum lub moos ntsuas tau pom ntawm tus pin 18, Arduino tso cov phiaj xwm cov ntaub ntawv mus rau lub tsheb npav (Arduino pins 39, 41, 43, 45, 47, 49, 51 thiab 53). 6502 tsim nws tus kheej chaw nyob uas tsuas yog saib xyuas los ntawm Arduino ntawm tus lej lej lej 22 txog 52. Arduino tseem tab tom muab lub moos mem tes ntawm tus pin 37. R/W kab ntawm 6502 raug saib xyuas ntawm tus pin 31.

Raws li Arduino tab tom muab cov ntaub ntawv, txog tam sim no nws tsis tuaj yeem tau txais 6502 los muab cov ntaub ntawv los ntawm VIA (tshwj tsis yog koj paub zoo dua).

Txoj haujlwm Arduino yog hauv qab no thiab cov qauv tso tawm los ntawm Serial Monitor yog saum toj no.

Kauj Ruam 4: Xaus

Ib zaug ntxiv kuv tau sim qhia yuav ua li cas teeb tsa qhov tsawg kawg nkaus "6502 Computer".

Nyob rau theem no 6502 tseem tso siab rau Arduino los muab nws nrog txoj haujlwm thiab lub moos mem tes kom nws ua haujlwm.

Nws yog ib kauj ruam ntxiv dua li thaum kuv teeb nws ntawm lub rooj mov ci.

Kuv tsis tau siv 74HC373 lub sijhawm no tab sis qhov nyuaj dua 6522 los tuav cov ntaub ntawv tso tawm. Tsis tas li 6522 muaj ob lub I/O chaw nres nkoj.

Kuv npaj siab yuav ua txoj haujlwm no ntxiv los ntawm kev txhim kho qee qhov SRAM lossis EEPROM.

Pom zoo: