Kazalo:

6502 in 6522 Minimalni računalnik (z Arduino MEGA) 2. del: 4 koraki
6502 in 6522 Minimalni računalnik (z Arduino MEGA) 2. del: 4 koraki

Video: 6502 in 6522 Minimalni računalnik (z Arduino MEGA) 2. del: 4 koraki

Video: 6502 in 6522 Minimalni računalnik (z Arduino MEGA) 2. del: 4 koraki
Video: 6502 computer build, adding spit and polish to the videos, 3D modelling. 2024, November
Anonim
6502 in 6522 Minimalni računalnik (z Arduino MEGA) 2. del
6502 in 6522 Minimalni računalnik (z Arduino MEGA) 2. del

V skladu z mojim prejšnjim Instructableom sem zdaj 6502 namestil na ploščo za trakove in dodal vsestranski vmesnik 6522 (VIA). Ponovno uporabljam različico 6522 WDC, saj se odlično ujema z njihovimi 6502. Ne samo, da ti novi čipi porabijo veliko manj energije kot prvotne različice MOS, ampak jih lahko poganjajo počasneje ali celo prestopijo. program brez težav.

Program Arduino je sprva napisal Ben Eater (ki ima veliko videoposnetkov na YouTubu), jaz pa sem ga spremenil, da sem dosegel ta rezultat.

Zaloge

1 x WDC W65C02 procesor

1 x vsestranski vmesnik WDC W65C22

1 x 74HC00N IC (Quad 2-input NAND gate) ali podobno

1 x 10 cm široka (35 vrstica) tračna plošča

2 x 40 -polne DIL vtičnice

1 x 14 -polna DIL vtičnica

Zatiči za PCB glavo 2,54 mm

Vtičnice za PCB glavo 2,54 mm

1 x 12 -milimetrsko stikalno stikalo s pritiskom na gumb, SPST ali podobno

1 x 1K upor

1 x 3K3 upor

2 x 0,1 uF keramični kondenzatorji

1 x 8 -milimetrska rdeča LED lučka za vodno svetlobo 5 mm

Žice različnih barv za povezave

8 žic moški - moški

1. korak: vezje

Vezje
Vezje
Vezje
Vezje

Vezje je precej kompaktno, spodnja stran pa se priključi neposredno v Arduino MEGA. Da bi to dosegli, so zatiči potisnjeni čim dlje v plastična držala, preden jih spajkamo na spodnjo stran plošče. Za to bi lahko uporabili daljše zatiče, vendar standardni zatiči pomenijo, da plošča trdno leži na vrhu MEGA.

Sestavil sem IC2 6502 in 6522, tako da za povezovanje z MEGA uporabljajo trakove. Nekatere povezave za 6502 so skrite pod IC. Pri izdelavi plošče je bilo treba najprej odrezati 16 trakov, ki se bodo povezali z dvojno vrsto vtičnic Arduino. Zunanjih 2 ni treba rezati, saj sta 5v in Gnd na obeh straneh. Nato spajkajte v 2 vrstah 18 zatičev na spodnji strani in 2 vrsti 18 vtičnic na zgornji strani.

Po tem so bile DIL vtičnice spajkane in tiri med njimi prerezani. Povezavo bi lahko shranil tako, da bi pin 14 74HC00 postavil na isto progo kot 5V. Kose sem odrezal le, ko sem bil prepričan, da morajo biti, medtem ko sem spajkal povezovalne žice. Vendar pa stvari ne gredo vedno po načrtih, prvotno sem ploščo iz prejšnje plošče oblikoval s pomočjo zatičev 2, 3 in 7 Arduina, vendar se ti ne ujemajo z luknjami na plošči, zato sem moral uporabiti zatiči 18, 31 in 37. Od tod povezave na moji plošči 31 in 37. Morda se sprašujete, zakaj za uro nisem uporabil enega od neuporabljenih zatičev (23, 24 itd.), ker ne podpirajo prekinitve, zato sem moral uporabiti pin 18, 19, 20 ali 21, ki to počnejo. Na srečo se ti štirje zatiči ujemajo z luknjami na tračni plošči in ohranjajo vse kompaktno. Pin 18 je tudi najbolj oddaljen od vseh drugih žic.

Morda boste opazili tudi, da moja dokončana plošča ni popolnoma enaka mojemu diagramu. To je zato, ker sem sledil diagramu nekoga drugega. Od tod povezave do 74HC00. Dodal sem tudi LED za napajanje in dodatne 2 vrsti vtičnic za Gnd in 5v ter še nekaj kondenzatorjev.

Lahko bi priključil dve podatkovni vtičnici, vendar bi to pomenilo, da čez ploščo prehaja veliko več žic. Odločil sem se za 8 povezav, da bi to naredil kot začasen ukrep.

Vrata A in B 6522 imata vtičnici, ki sta spajani na tirih, tako da lahko LED oznake enostavno vstavite.

Zdaj je žic veliko manj, kot jih je bilo na različici na plošči za kruh.

2. korak: Teorija programiranja

Teorija programiranja
Teorija programiranja

6522 ima dva vhoda/izhoda in številne druge funkcije, vendar sta vrata A in B zlahka dostopna. Za izhod podatkov na vrata je treba ustrezno nastaviti register smeri podatkov (DDR) in podatke poslati na vrata sama.

Z zgornjo nastavitvijo se 6522 nahaja pri E000 USD.

Za izpis podatkov na vratih B je DDR pri $ E002 nastavljen na $ FF (255 - vsi izhodi), podatki pa se pošljejo na $ E000.

Za izpis podatkov na vratih A je DDR pri $ E003 nastavljen na $ FF (255 - vsi izhodi), podatki pa se pošljejo na $ E001.

Spodnja koda naloži $ FF v register 6502 A in ga zapiše v DDR B pri $ E002. Nato naloži 55 USD in ga zapiše v ORB. Koda se zasuka (da $ AA) in se zapiše v ORB. Program skoči nazaj na 1005 USD in se ponavlja v nedogled. OPOMBA: DDR je treba inicializirati samo enkrat.

Naslov Hexdump Demontaža

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

55 USD v binarnem sistemu je 010101010, AA AA pa 10101010, zaradi česar se LED svetijo 4 vklopljeno, 4 izklopljeno.

Hitro in umazano popravilo:

Zamenjajte 74HC00 (vhodna vrata NAND Quad 2) s 74HC08 (vhod in vrata Quad 2) in 6522 je zdaj namesto 6000 USD namesto E000 USD. S tem se premakne iz zgornjih 32K v spodnjih 32K naslovljivega pomnilnika 6502.

Korak 3: Program in izhod Arduino

Program in izhod Arduino
Program in izhod Arduino

Ker 6502 nima RAM -a za branje, Arduino dobavlja program za branje. Ko na zatiču 18 zazna urni utrip, Arduino posreduje podatke programa na podatkovno vodilo (Arduino zatiči 39, 41, 43, 45, 47, 49, 51 in 53). 6502 ustvari lastne naslove, ki jih Arduino spremlja samo na parnih številkah 22 do 52. Arduino napaja tudi impulz ure na pin 37. R/W linija 6502 se spremlja na pin 31.

Ker Arduino dobavlja podatke, doslej ni bilo mogoče dobiti 6502 za vnos podatkov iz VIA (razen če veste bolje).

Spodaj je program Arduino, zgoraj pa vzorec iz serijskega monitorja.

4. korak: Zaključek

Spet sem poskušal pokazati, kako nastaviti minimalni "računalnik 6502".

Na tej stopnji se 6502 še vedno zanaša na Arduino, da mu dobavi program in impulz ure, da lahko deluje.

To je korak dlje kot takrat, ko sem ga postavil na ploščo za kruh.

Tokrat nisem uporabil 74HC373, ampak bolj zapleteno 6522 za zaklepanje podatkovnih izhodov. Tudi 6522 ima dva I/O vrata.

Ta projekt nameravam nadaljevati z namestitvijo SRAM -a ali EEPROM -a.

Priporočena: