Sadržaj:
- Supplies
- Korak 1: Ploča
- Korak 2: Teorija programiranja
- Korak 3: Arduino program i izlaz
- Korak 4: Zaključak
Video: 6502 & 6522 Minimalni računar (sa Arduino MEGA) 2. dio: 4 koraka
2024 Autor: John Day | [email protected]. Zadnja izmjena: 2024-01-30 08:05
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 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
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
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:
Radni Gajgerov brojač W/ minimalni dijelovi: 4 koraka (sa slikama)
Radni Gajgerov brojač W/ minimalni dijelovi: Ovo je, prema mojim saznanjima, najjednostavniji Geiger -ov brojač koji možete izgraditi. Ovaj koristi Gajgerovu cijev SMB-20 ruske proizvodnje, pogonjenu visokonaponskim pojačanim krugom opljačkanim iz elektroničke muholovke. Otkriva beta čestice i gamu
6502 Minimalni računar (sa Arduino MEGA) Dio 3: 7 koraka
6502 Minimalni računar (s Arduino MEGA -om) Dio 3: Idemo dalje, sada sam na glavnu ploču dodao oktalno zasun, 8 pravokutnih LED dioda i niz otpornika od 220 ohma. Postoji i kratkospojnik između zajedničkog pina niza i mase, tako da se LED diode mogu isključiti. 74HC00 NAND kapija h
6502 Minimalni računar (sa Arduino MEGA) 1. dio: 7 koraka
6502 Minimalni računar (sa Arduino MEGA -om) 1. dio: 6502 mikroprocesor se prvi put pojavio 1975. godine, a dizajnirao ga je mali tim predvođen Chuckom Peddleom za MOS tehnologiju. Tada se koristio u video konzolama i kućnim računarima, uključujući Atari, Apple II, Nintendo Entertainment System, BBC Micr
Umjetna inteligencija za društvene igre: minimalni algoritam: 8 koraka
Umjetna inteligencija za društvene igre: Minimaksni algoritam: Jeste li se ikada zapitali kako nastaju računari protiv kojih igrate šah ili dame? Pa ne tražite dalje od ovog Instructable -a jer će vam pokazati kako napraviti jednostavnu, ali efikasnu umjetnu inteligenciju (AI) koristeći Minimax Algoritam! Korišćenjem
Kako napraviti minimalni OTG konektor: 4 koraka (sa slikama)
Kako napraviti minimalni OTG konektor: U ovom elektroničkom DIY projektu vidjet ćete kako napraviti minimalni OTG konektor po vrlo niskim cijenama. OTG konektor je vrlo praktičan alat koji olakšava povezivanje vašeg Android telefona za proširenje U diska i povezivanje miša. Možete napraviti