Orodha ya maudhui:

6502 & 6522 Kompyuta ndogo (na Arduino MEGA) Sehemu ya 2: 4 Hatua
6502 & 6522 Kompyuta ndogo (na Arduino MEGA) Sehemu ya 2: 4 Hatua

Video: 6502 & 6522 Kompyuta ndogo (na Arduino MEGA) Sehemu ya 2: 4 Hatua

Video: 6502 & 6522 Kompyuta ndogo (na Arduino MEGA) Sehemu ya 2: 4 Hatua
Video: 6502 CPU: 6522 VIA output to LEDs 2024, Novemba
Anonim
6502 & 6522 Kompyuta ndogo (na Arduino MEGA) Sehemu ya 2
6502 & 6522 Kompyuta ndogo (na Arduino MEGA) Sehemu ya 2

Kufuatia kutoka kwa Agizo langu la awali, sasa nimeweka 6502 kwenye ubao wa strip na kuongeza 6522 Adapter Interface Adapter (VIA). Tena, ninatumia toleo la WDC la 6522, kwani ni mechi inayofaa kwa 6502 yao. Sio tu kwamba chips hizi mpya hutumia nguvu kidogo kuliko matoleo ya awali ya MOS, lakini zinaweza kuendeshwa kwa kasi ndogo au hata kupitia mpango bila shida yoyote.

Programu ya Arduino awali iliandikwa na Ben Eater (ambaye ana video nyingi kwenye YouTube) na imebadilishwa na mimi kufikia matokeo haya.

Vifaa

1 x WDC W65C02 Msindikaji

1 x WDC W65C22 Adapter ya Maingiliano Tofauti

1 x 74HC00N IC (Quad 2-pembejeo NAND lango) au sawa

1 x 10cm upana (35 mstari) Bodi ya ukanda

2 x 40 siri soketi za DIL

1 x 14 pini tundu la DIL

Pini za Kichwa cha PCB 2.54mm

Soketi za Kichwa cha PCB 2.54mm

1 x 12mm Kitufe cha kugusa Kitufe cha Kubadilisha PCB Iliyowekwa SPST au sawa

1 x 1K kupinga

1 x 3K3 kupinga

2 x 0.1 capacitors kauri

1 x 8 Njia ya Mwanga wa Maji Marquee 5mm nyekundu ya LED

Waya wa rangi anuwai kwa unganisho

Waya 8 za kiume - kiume

Hatua ya 1: Bodi ya Mzunguko

Bodi ya Mzunguko
Bodi ya Mzunguko
Bodi ya Mzunguko
Bodi ya Mzunguko

Bodi ya mzunguko ni ngumu kabisa na kuziba kwa chini moja kwa moja kwenye Arduino MEGA. Ili kufanikisha hili, pini zinasukumwa iwezekanavyo kwa wamiliki wa plastiki kabla ya kuuzwa chini ya ubao. Pini ndefu zingeweza kutumika kwa hili, lakini pini za kawaida zinamaanisha kuwa bodi inakaa juu ya MEGA.

Nimeweka safu za IC za 6502 na 6522 ili watumie nyimbo za bodi ya mkanda kuungana na MEGA. Kuna pia unganisho la 6502 lililofichwa chini ya IC. Wakati wa kutengeneza bodi, jambo la kwanza kufanya ilikuwa kukata vipande 16 ambavyo vitaunganishwa na safu mbili za soketi za Arduino. 2 ya nje haiitaji kukatwa kwani 5v na Gnd ziko pande zote mbili. Solder inayofuata katika safu 2 za pini 18 upande wa chini, na safu 2 za soketi 18 upande wa juu.

Baada ya hapo soketi za DIL ziliuzwa mahali na nyimbo zilikatwa kati yao. Ningeweza kuokoa unganisho kwa kuweka pini 14 ya 74HC00 kwenye wimbo sawa na 5v. Nilikata tu nyimbo wakati nilikuwa na hakika kuwa zinahitajika kuwa wakati nilikuwa nikitia waya wa kuunganisha. Walakini, vitu haviendi kila wakati, hapo awali nilibuni bodi ya kuvua kutoka bodi ya mkate iliyotangulia kwa kutumia pini 2, 3 na 7 ya Arduino, lakini hizi haziendani na mashimo kwenye ubao wa strip, kwa hivyo ilitakiwa kutumia pini 18, 31 na 37. Kwa hivyo viungo kwenye ubao wangu tarehe 31 na 37. Unaweza kujiuliza kwanini sikutumia moja ya pini ambazo hazijatumiwa (23, 24 nk) kwa saa, hii ni kwa sababu haziungi mkono huingiliana, kwa hivyo ilibidi kutumia pini 18, 19, 20 au 21 ambayo hufanya. Kwa bahati nzuri pini hizi 4 zinapatana na mashimo kwenye ubao wa strip na weka kila kitu sawa. Pini 18 pia iko mbali zaidi na waya zingine zote.

Unaweza pia kugundua kuwa bodi yangu iliyokamilishwa si sawa kabisa na mchoro wangu. Hii ni kwa sababu nilikuwa nikifuata mchoro wa mtu mwingine. Kwa hivyo unganisho kwa 74HC00. Nimeongeza pia LED ya nguvu na safu 2 za ziada za soketi za Gnd na 5v pamoja na capacitors kadhaa zaidi.

Ningeweza kushikamana na soketi 2 za data, lakini hii ingemaanisha waya nyingi zaidi zinazovuka bodi. Nilichagua waya 8 za kiunga kufanya hii kama hatua ya muda mfupi.

Bandari ya 6522 A na B zimekuwa na soketi zilizouzwa kwa nyimbo zao ili alama za LED ziweze kuingizwa kwa urahisi.

Kuna waya kidogo sasa kuliko ilivyokuwa kwenye toleo la bodi ya mkate.

Hatua ya 2: Programu ya nadharia

Nadharia ya Programu
Nadharia ya Programu

6522 ina bandari mbili za I / O pamoja na huduma zingine nyingi, lakini bandari A na B zinapatikana kwa urahisi. Ili kutoa data kwenye bandari, Rejista ya Uelekezaji wa Takwimu (DDR) inahitaji kuwekwa ipasavyo na data iliyotumwa kwa bandari yenyewe.

Pamoja na usanidi ulio hapo juu, 6522 iko $ E000.

Ili kutoa data kwenye bandari B, DDR kwa $ E002 imewekwa kwa $ FF (255 - matokeo yote) na data inatumwa kwa $ E000.

Ili kutoa data kwenye bandari A, DDR kwa $ E003 imewekwa kwa $ FF (255 - matokeo yote) na data inatumwa kwa $ E001.

Nambari iliyo hapo chini inapakia $ FF kwenye rejista ya 6502 na kuiandikia DDR B kwa $ E002. Halafu hupakia $ 55 na kuiandikia ORB. Nambari inazungushwa (kutoa $ AA) na kuandikiwa ORB. Mpango huo huruka nyuma tp $ 1005 na hurudia bila mwisho. KUMBUKA: DDR inahitaji tu kuanzishwa mara moja.

Anwani ya 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 $ 10055

$ 55 kwa binary ni 010101010 na $ AA ni 10101010 ambayo inasababisha LEDs kubadilisha 4 juu, 4 off.

Kurekebisha haraka na chafu:

Badilisha 74HC00 (Quad 2 ingiza NAND Gate) na 74HC08 (pembejeo ya Quad 2 NA Lango) na 6522 sasa iko $ 6000 badala ya $ E000. Hii inasonga kutoka 32K ya juu hadi 32K ya chini ya kumbukumbu inayoweza kushughulikiwa ya 6502.

Hatua ya 3: Programu ya Arduino na Pato

Programu ya Arduino na Pato
Programu ya Arduino na Pato

Kwa kuwa 6502 haina RAM ya kusoma, Arduino inasambaza programu hiyo ili isome. Wakati mapigo ya saa yanapatikana kwenye pini 18, Arduino huweka data ya programu kwenye basi la data (pini za Arduino 39, 41, 43, 45, 47, 49, 51 na 53). 6502 hutengeneza anwani zake ambazo zinaangaliwa tu na Arduino kwenye pini zilizohesabiwa hata 22 hadi 52. Arduino pia inasambaza saa ya pini 37. Mstari wa R / W wa 6502 unafuatiliwa kwenye pini 31.

Kwa kuwa Arduino inasambaza data, hadi sasa haijawezekana kupata 6502 ya kuingiza data kutoka kwa VIA (isipokuwa unajua bora).

Programu ya Arduino iko chini na pato la sampuli kutoka kwa Serial Monitor iko hapo juu.

Hatua ya 4: Hitimisho

Tena nimejaribu kuonyesha jinsi ya kuanzisha "Kompyuta 6502" ndogo.

Katika hatua hii 6502 bado inategemea Arduino kuipatia programu na mapigo ya saa ili iweze kukimbia.

Ni hatua zaidi kuliko wakati niliiweka kwenye bodi ya mkate.

Sijatumia 74HC373 wakati huu lakini ngumu zaidi 6522 kuweka matokeo ya data. Pia 6522 ina bandari mbili za I / O.

Ninakusudia kuchukua mradi huu zaidi kwa kusanikisha SRAM au EEPROM.

Ilipendekeza: