Kazalo:
- Zaloge
- 1. korak: vezje
- 2. korak: Teorija programiranja
- Korak 3: Program in izhod Arduino
- 4. korak: Zaključek
Video: 6502 in 6522 Minimalni računalnik (z Arduino MEGA) 2. del: 4 koraki
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:04
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 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
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
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:
Držalo za ušesne popke (tablični računalnik, računalnik, telefon): 4 koraki
Držalo za ušesne popke (tablični računalnik, računalnik, telefon): Vedno sem razočaran, ko se slušalke zapletejo ali izgubijo. Odločil sem se, da naredim nekaj, kar lahko položite na hrbtno stran tabličnega računalnika itd. Predstavljam vam držalo za ušesne čepke
6502 Minimalni računalnik (z Arduino MEGA) 3. del: 7 korakov
6502 Minimalni računalnik (z Arduino MEGA) 3. del: Če gremo še dlje, sem na glavno ploščo dodal oktalno zaponko, 8 pravokotnih LED in 220 ohmsko matriko uporov. Med skupnim zatičem matrike in maso je tudi mostiček, tako da lahko LED izklopite. Vrata 74HC00 NAND h
6502 Minimalni računalnik (z Arduino MEGA) 1. del: 7 korakov
6502 Minimal Computer (z Arduino MEGA) 1. del: Mikroprocesor 6502 se je prvič pojavil leta 1975 in ga je oblikovala majhna ekipa pod vodstvom Chucka Peddlea za tehnologijo MOS. Takrat so ga uporabljali v video konzolah in domačih računalnikih, vključno z Atari, Apple II, Nintendo Entertainment System, BBC Micr
Kombinirana torba za prenosni računalnik in prenosni računalnik: 3 koraki
Kombinirana torba za prenosni računalnik in prenosni računalnik: To je zelo preprosto navodilo za izdelavo kombinirane torbice in rokava za prenosni računalnik. Lapdesk ščiti moje noge in kramo pred vročino, ravna površina pa prenosniku omogoča boljše zračenje. Lapdesk, ki sem ga imel, je veliko večji, kot je potrebno za mojo majhno
Papirno stojalo za prenosni računalnik, najcenejše stojalo za prenosni računalnik .: 4 koraki
Papirno stojalo za prenosni računalnik, najcenejše stojalo za prenosni računalnik. Obožujem quake3 in sem precej zaskrbljen zaradi vzdržljivosti svojega MacBook -a. Nikoli mi ne pride na misel, da bi kupil stojalo za prenosnik z ventilatorji, ker MacBooks na dnu nima luknje. Mislil sem, da bi te polkrogice morda upognile moj prenosnik c