Indholdsfortegnelse:
- Forbrugsvarer
- Trin 1: Kredsløbskortet
- Trin 2: Programmeringsteori
- Trin 3: Arduino -programmet og output
- Trin 4: Konklusion
Video: 6502 & 6522 Minimal computer (med Arduino MEGA) Del 2: 4 trin
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:27
I forlængelse af min tidligere Instructable, har jeg nu sat 6502 på et stripkort og tilføjet en 6522 alsidig interface -adapter (VIA). Igen bruger jeg en WDC -version af 6522, da det er et perfekt match til deres 6502. Ikke alene bruger disse nye chips meget mindre strøm end de originale MOS -versioner, men de kan køres med lavere hastigheder eller endda trædes igennem et program uden problemer.
Arduino -programmet blev oprindeligt skrevet af Ben Eater (som har mange videoer på YouTube) og er blevet ændret af mig for at opnå dette resultat.
Forbrugsvarer
1 x WDC W65C02 -processor
1 x WDC W65C22 alsidig interface -adapter
1 x 74HC00N IC (Quad 2-input NAND gate) eller lignende
1 x 10 cm bred (35 linje) Stripboard
2 x 40 pin DIL -fatninger
1 x 14 -polet DIL -fatning
PCB Header Pins 2.54mm
Printkortstik 2.54mm
1 x 12 mm Momentary Tactile Push Button Switch PCB -monteret SPST eller lignende
1 x 1K modstand
1 x 3K3 modstand
2 x 0,1 uF keramiske kondensatorer
1 x 8 Way Water Light Marquee 5 mm rød LED
Forskellige farvede ledninger til tilslutninger
8 han -han -ledninger
Trin 1: Kredsløbskortet
Printkortet er ret kompakt, og undersiden tilsluttes direkte til Arduino MEGA. For at opnå dette skubbes stifterne så langt som muligt ind i plastholderne, før de loddes til undersiden af brættet. Længere stifter kunne have været brugt til dette, men standardstifterne betyder, at brættet hviler fast oven på MEGA.
Jeg har opstillet 6502 og 6522 IC'erne, så de gør brug af stripboard -sporene til at oprette forbindelse til MEGA. Der er også nogle forbindelser til 6502 skjult under IC. Når du lavede brættet, var den første ting at gøre at skære de 16 strimler, der vil forbinde til Arduino's dobbelte række stikkontakter. De ydre 2 behøver ikke at blive skåret, da 5v og Gnd er på begge sider. Næste loddemetal i de 2 rækker med 18 ben på undersiden, og de 2 rækker med 18 stikkontakter på oversiden.
Derefter blev DIL -fatningerne loddet på plads, og sporene blev skåret mellem dem. Jeg kunne have gemt en forbindelse ved at placere pin 14 på 74HC00 på samme spor som 5v. Jeg klippede kun sporene, da jeg var sikker på, at de skulle være det, mens jeg lodde forbindelsestrådene. Men tingene går ikke altid efter planen, jeg designede oprindeligt strippladen fra det tidligere brødbræt ved hjælp af ben 2, 3 og 7 på Arduino, men disse er ikke i overensstemmelse med hullerne i strippladen, så jeg måtte bruge pins 18, 31 og 37. Derfor er linkene på mit bord på 31 og 37. Du kan undre dig over, hvorfor jeg ikke brugte en af de ubrugte pins (23, 24 osv.) til uret, dette er fordi de ikke understøtter afbryder, så måtte bruge pin 18, 19, 20 eller 21 som gør. Heldigvis er disse 4 pins på linje med hullerne i strippladen og holder alt kompakt. Pin 18 er også længst væk fra alle de andre ledninger.
Du vil muligvis også bemærke, at mit færdige bord ikke er det samme som mit diagram. Det er fordi jeg fulgte en andens diagram. Derfor forbindelserne til 74HC00. Jeg har også tilføjet en power -LED og ekstra 2 rækker stik til Gnd og 5v samt et par kondensatorer mere.
Jeg kunne have tilsluttet de 2 datastikdåser, men dette ville betyde, at mange flere ledninger krydser tavlen. Jeg valgte 8 forbindelsestråde til at gøre dette som en midlertidig foranstaltning.
6522 port A og B har fået fatninger loddet til deres spor, så LED -mærker let kan indsættes.
Der er langt færre ledninger nu, end der var på brødbrætversionen.
Trin 2: Programmeringsteori
6522 har to I/O -porte samt mange andre funktioner, men port A og B er let tilgængelige. For at sende data på porten skal Data Direction Register (DDR) indstilles i overensstemmelse hermed og dataene sendes til selve porten.
Med ovenstående opsætning er 6522 placeret på $ E000.
For at udsende data på port B, er DDR på $ E002 indstillet til $ FF (255 - alle udgange), og data sendes til $ E000.
For at udsende data på port A sættes DDR ved $ E003 til $ FF (255 - alle udgange), og data sendes til $ E001.
Koden herunder indlæser $ FF i 6502 A -registret og skriver det til DDR B på $ E002. Det indlæser derefter $ 55 og skriver det til ORB. Koden roteres (giver $ AA) og skrives til ORB. Programmet springer tilbage til $ 1005 og gentages uendeligt. BEMÆRK: DDR behøver kun at initialiseres én gang.
Adresse Hexdump -demontering
$ 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 $ 1005
$ 55 i binært er 010101010 og $ AA er 10101010, hvilket får lysdioderne til at skifte 4 til, 4 fra.
Hurtig og beskidt løsning:
Udskift 74HC00 (Quad 2 input NAND Gate) med en 74HC08 (Quad 2 input AND Gate), og 6522 er nu placeret på $ 6000 i stedet for $ E000. Dette flytter det fra den øvre 32K til den nedre 32K i 6502s adresserbare hukommelse.
Trin 3: Arduino -programmet og output
Da 6502 ikke har noget RAM at læse fra, leverer Arduino programmet, så den kan læse. Når en urpuls detekteres på pin 18, sender Arduino programdataene til databussen (Arduino pins 39, 41, 43, 45, 47, 49, 51 og 53). 6502 genererer sine egne adresser, som kun overvåges af Arduino på de lige nummererede ben 22 til 52. Arduino leverer også urpulsen på pin 37. R/W -linjen på 6502 overvåges på pin 31.
Da Arduino leverer dataene, har det hidtil ikke været muligt at få 6502 til at indtaste data fra VIA (medmindre du ved bedre).
Arduino -programmet er nedenfor, og et prøveoutput fra Serial Monitor er ovenfor.
Trin 4: Konklusion
Igen har jeg forsøgt at vise, hvordan man opsætter en minimal "6502 Computer".
På dette stadium er 6502 stadig afhængig af Arduino til at forsyne den med et program og en urpuls, for at den kan køre.
Det er et skridt videre, end da jeg satte det op på brødbræt.
Jeg har ikke brugt 74HC373 denne gang, men den mere komplekse 6522 til at låse dataoutputene. 6522 har også to I/O -porte.
Jeg agter at tage dette projekt videre ved at installere noget SRAM eller en EEPROM.
Anbefalede:
Mega RasPi - en Raspberry Pi i et Sega Mega Drive / Genesis: 13 trin (med billeder)
Mega RasPi - en Raspberry Pi i en Sega Mega Drive / Genesis: Denne guide tager dig gennem konverteringen af et gammelt Sega Mega Drive til en retro -spilkonsol ved hjælp af en Raspberry Pi. Jeg har brugt utallige timer i min barndom på at spille videospil på mit Sega Mega Drive. De fleste af mine venner havde også en, så vi ville
6502 Minimal computer (med Arduino MEGA) Del 3: 7 trin
6502 Minimal Computer (med Arduino MEGA) Del 3: Fremadrettet har jeg nu tilføjet en Octal Latch, 8 rektangulære LED'er og en 220 Ohm modstands array til hovedkortet. Der er også en jumper mellem arrayets fælles pin og jord, så LED'erne kan slukkes. 74HC00 NAND -porten h
6502 Minimal computer (med Arduino MEGA) Del 1: 7 trin
6502 Minimal Computer (med Arduino MEGA) Del 1: 6502 mikroprocessoren optrådte første gang i 1975 og blev designet af et lille team ledet af Chuck Peddle for MOS Technology. Dengang blev det brugt i videokonsoller og hjemmecomputere, herunder Atari, Apple II, Nintendo Entertainment System, BBC Micr
Håndholdt konsol med trådløse controllere og sensorer (Arduino MEGA & UNO): 10 trin (med billeder)
Håndholdt konsol med trådløse controllere og sensorer (Arduino MEGA & UNO): Hvad jeg brugte:- Arduino MEGA- 2x Arduino UNO- Adafruit 3.5 " TFT 320x480 Touchscreen HXD8357D- Buzzer- 4Ohm 3W højttaler- 5mm LED-lamper- Ultimaker 2+ printer m/ sort PLA filament- Laserskærer m/ MDF træ- Sort spraymaling (til træet)- 3x nRF24
Brug af PSP som computer -joystick og derefter kontrollere din computer med PSP: 5 trin (med billeder)
Brug af PSP som computer joystick og derefter styring af din computer med PSP: Du kan gøre mange fede ting med PSP homebrew, og i denne instruktive vil jeg lære dig, hvordan du bruger din PSP som et joystick til at spille spil, men der er også et program, der giver dig mulighed for at bruge dit joystick som din mus. Her er materien