Orodha ya maudhui:
- Vifaa
- Hatua ya 1: Bodi ya Mzunguko
- Hatua ya 2: Programu ya nadharia
- Hatua ya 3: Programu ya Arduino na Pato
- Hatua ya 4: Hitimisho
Video: 6502 & 6522 Kompyuta ndogo (na Arduino MEGA) Sehemu ya 2: 4 Hatua
2024 Mwandishi: John Day | [email protected]. Mwisho uliobadilishwa: 2024-01-30 12:50
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 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
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
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:
Kompyuta ndogo ya 6502 (na Arduino MEGA) Sehemu ya 3: Hatua 7
Kompyuta ndogo ndogo ya 6502 (na Arduino MEGA) Sehemu ya 3: Kuendelea mbele zaidi, sasa nimeongeza Latch ya Octal, LED za mstatili 8 na safu ya kupinga ya Ohm ya 220 kwa bodi kuu. Pia kuna jumper kati ya pini ya kawaida ya safu na ardhi, ili taa ziweze kuzimwa. Lango la 74HC00 NAND h
Kompyuta ndogo ya 6502 (na Arduino MEGA) Sehemu ya 1: Hatua 7
Kompyuta Ndogo 6502 (na Arduino MEGA) Sehemu ya 1: Microprocessor 6502 ilitokea kwanza mnamo 1975 na iliundwa na timu ndogo iliyoongozwa na Chuck Peddle kwa Teknolojia ya MOS. Nyuma ya hapo ilitumika katika koni za video na kompyuta za nyumbani pamoja na Atari, Apple II, Mfumo wa Burudani wa Nintendo, BBC Micr
Elektroniki Ndogo Je! Unaweza Ndogo Jinsi Gani? 6 Hatua
Elektroniki Ndogo Je! Unaweza kwenda Ndogo kiasi gani: wakati fulani uliopita napata taa kidogo (kwenye PCB ya hudhurungi) kutoka kwa mmoja wa rafiki yangu ilikuwa taa ya ishara inayoweza kurejeshwa na mzunguko wa kuchaji uliojengwa, betri ya LiIon, swichi ya DIP kwa kubadilisha rangi kwenye RGB LED na pia kubadili mzunguko mzima wa nini lakini
Bodi ndogo ndogo (Mradi rahisi wa Arduino): Hatua 5
Bodi ndogo ndogo (Mradi rahisi wa Arduino): Bango ndogo: Jifunze Jinsi ya kuonyesha ujumbe wa kawaida kwenye LCD na Mradi huu wa Arduino
Kujenga Roboti Ndogo: Kufanya Roboti Moja za ujazo za Inchi ndogo-ndogo na ndogo: Hatua 5 (na Picha)
Kujenga Roboti Ndogo: Kufanya Roboti Moja za ujazo za Micro-Sumo na Ndogo: Hapa kuna maelezo juu ya ujenzi wa roboti ndogo na nyaya. Mafundisho haya pia yatashughulikia vidokezo na mbinu kadhaa za msingi ambazo ni muhimu katika kujenga roboti za saizi yoyote. Kwangu mimi, moja wapo ya changamoto kubwa katika umeme ni kuona jinsi ndogo ni