Sadržaj:

6502 & 6522 Minimalni računar (sa Arduino MEGA) 2. dio: 4 koraka
6502 & 6522 Minimalni računar (sa Arduino MEGA) 2. dio: 4 koraka

Video: 6502 & 6522 Minimalni računar (sa Arduino MEGA) 2. dio: 4 koraka

Video: 6502 & 6522 Minimalni računar (sa Arduino MEGA) 2. dio: 4 koraka
Video: 6502 computer build, adding spit and polish to the videos, 3D modelling. 2024, Novembar
Anonim
6502 & 6522 Minimalni računar (sa Arduino MEGA -om) 2. dio
6502 & 6522 Minimalni računar (sa Arduino MEGA -om) 2. dio

Nastavljajući sa mojim prethodnim Instructable -om, sada sam 6502 stavio na strip ploču i dodao 6522 prilagodljivi interfejs adapter (VIA). Opet, koristim WDC verziju 6522, jer savršeno pristaje njihovoj 6502. Ne samo da ovi novi čipovi troše mnogo manje energije od originalnih MOS verzija, već se mogu raditi i sporijim brzinama ili čak proći kroz njih program bez ikakvih problema.

Arduino program izvorno je napisao Ben Eater (koji ima mnogo video zapisa na YouTubeu), a ja sam ga izmijenio kako bih postigao ovaj rezultat.

Supplies

1 x WDC W65C02 procesor

1 x WDC W65C22 svestrani adapter za sučelje

1 x 74HC00N IC (Quad 2-input NAND gate) ili slično

1 x 10 cm široka (35 linija) ploča

2 x 40 pin DIL utičnice

1 x 14 -polna DIL utičnica

Igle zaglavlja PCB -a 2,54 mm

Utičnice za PCB zaglavlje 2,54 mm

1 x 12 mm trenutni taktilni prekidač sa pritiskom na dugme PCB montiran na SPST ili slično

1 x 1K otpornik

1 x 3K3 otpornik

2 x 0,1 uF keramički kondenzatori

1 x 8 -smjerna šalica za svjetlo za vodu 5 mm crvena LED

Žice različitih boja za povezivanje

8 žica muško - muško povezivanje

Korak 1: Ploča

Ploča
Ploča
Ploča
Ploča

Ploča je prilično kompaktna, a donja strana se direktno priključuje na Arduino MEGA. Da bi se to postiglo, igle se guraju što je više moguće u plastične držače prije nego što se zaleme na donju stranu ploče. Za to su se mogli koristiti duži igle, ali standardni igle znače da ploča čvrsto leži na vrhu MEGA -e.

Postrojio sam IC -e 6502 i 6522 tako da koriste tračnice za spajanje na MEGA -u. Ispod IC -a postoje i neke veze za 6502. Prilikom izrade ploče prvo je trebalo izrezati 16 traka koje će se spojiti na Arduino dvostruki niz utičnica. Vanjska 2 ne moraju se rezati jer su 5v i Gnd s obje strane. Zatim lemite u 2 reda po 18 pinova s donje strane i 2 reda s 18 utičnica s gornje strane.

Nakon toga DIL utičnice su lemljene na mjestu i gusjenice su presječene između njih. Mogao sam sačuvati vezu postavljanjem pina 14 74HC00 na istu stazu kao i 5V. Prerezao sam tragove samo kad sam bio siguran da to moraju biti dok sam lemio spojne žice. Međutim, stvari ne idu uvijek po planu, prvobitno sam dizajnirao strip traku od prethodne ploče za kruh koristeći iglice 2, 3 i 7 Arduina, ali se one ne poravnavaju s rupama na traci, pa sam morao koristiti pinovi 18, 31 i 37. Otuda veze na mojoj ploči 31 i 37. Možda se pitate zašto za sat nisam koristio jednu od neiskorištenih pinova (23, 24 itd.) jer to ne podržava prekida, pa sam morao koristiti pin 18, 19, 20 ili 21 koji to rade. Na sreću, ove 4 igle se poravnavaju s rupama na traci i drže sve kompaktno. Pin 18 je takođe najudaljeniji od svih ostalih žica.

Možda ćete primijetiti i da moja završena ploča nije potpuno ista kao moj dijagram. To je zato što sam pratio tuđi dijagram. Otuda i veze sa 74HC00. Dodao sam i LED za napajanje i dodatna 2 reda utičnica za Gnd i 5v, kao i još par kondenzatora.

Mogao sam spojiti 2 podatkovne utičnice, ali to bi značilo mnogo više žica koje prelaze ploču. Odlučio sam se za 8 žica veze kako bih to učinio kao privremenu mjeru.

6522 priključci A i B imaju utičnice lemljene na svojim stazama tako da se LED oznake mogu lako umetnuti.

Sada ima mnogo manje žica nego što je to bilo na verziji na ploči za hljeb.

Korak 2: Teorija programiranja

Teorija programiranja
Teorija programiranja

6522 ima dva I/O porta kao i mnoge druge značajke, ali su portovi A i B lako dostupni. Za ispis podataka na port, potrebno je u skladu s tim postaviti Data Direction Register (DDR) i podatke poslati na sam port.

Sa gore postavljenim postavkama, 6522 se nalazi po cijeni od E000 USD.

Za izlaz podataka na port B, DDR na $ E002 je postavljen na $ FF (255 - svi izlazi), a podaci se šalju na $ E000.

Za izlaz podataka na priključak A, DDR na $ E003 je postavljen na $ FF (255 - svi izlazi), a podaci se šalju na $ E001.

Donji kôd učitava $ FF u registar 6502 A i zapisuje ga u DDR B na $ E002. Zatim učita 55 USD i upiše ih u ORB. Kôd se rotira (daje $ AA) i upisuje se u ORB. Program skače unazad 1005 USD i ponavlja se beskonačno. NAPOMENA: DDR se mora pokrenuti samo jednom.

Adresa 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 100b $ 8d 00 e0 STA $ e000 $ 100e 4c 05 10 JMP $ 1005

55 USD u binarnom obliku je 010101010, a AA AA je 10101010 što uzrokuje da se LED diode naizmjenično 4 uključuju, 4 isključuju.

Brzo i prljavo popravljanje:

Zamijenite 74HC00 (Quad 2 ulazna NAND kapija) sa 74HC08 (Quad 2 ulaz i kapija) i 6522 se sada nalazi na 6000 USD umjesto E000 USD. Ovo ga pomiče s gornjih 32K na donjih 32K adresabilne memorije 6502.

Korak 3: Arduino program i izlaz

Arduino program i izlaz
Arduino program i izlaz

Kako 6502 nema RAM -a za čitanje, Arduino isporučuje program za čitanje. Kada se impuls sata otkrije na pinu 18, Arduino stavlja podatke programa na sabirnicu podataka (Arduino pinovi 39, 41, 43, 45, 47, 49, 51 i 53). 6502 generira vlastite adrese koje Arduino nadzire samo na parnim pinovima 22 do 52. Arduino također napaja taktni impuls na pinu 37. R/W linija 6502 se nadzire na pinu 31.

Kako Arduino isporučuje podatke, do sada nije bilo moguće dobiti 6502 za unos podataka iz VIA -e (osim ako ne znate bolje).

Arduino program je ispod, a uzorak iz Serijskog monitora je gore.

Korak 4: Zaključak

Ponovo sam pokušao pokazati kako postaviti minimalni "6502 računar".

U ovoj fazi 6502 se još uvijek oslanja na Arduino da mu isporuči program i impuls takta kako bi mogao raditi.

To je korak dalje nego kad sam ga postavio na ploču za kruh.

Ovaj put nisam koristio 74HC373, već složeniji 6522 za zaključavanje izlaznih podataka. Takođe 6522 ima dva I/O porta.

Namjeravam nastaviti ovaj projekt instaliranjem SRAM -a ili EEPROM -a.

Preporučuje se: