Sadržaj:
- Pribor
- Korak 1: Ploča
- Korak 2: Teorija programiranja
- Korak 3: Arduino program i izlaz
- Korak 4: Zaključak
Video: 6502 & 6522 Minimalno računalo (s Arduino MEGA -om) 2. dio: 4 koraka
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:34
Nastavljajući s mojim prethodnim Instructable -om, sada sam 6502 stavio na strip ploču i dodao 6522 svestrani adapter za sučelje (VIA). Opet, koristim WDC verziju 6522, jer se savršeno uklapa u njihovu 6502. Ne samo da ovi novi čipovi troše mnogo manje energije od izvornih MOS verzija, već se mogu pokrenuti sporijim brzinama ili čak proći kroz njih program bez ikakvih problema.
Program Arduino izvorno je napisao Ben Eater (koji ima mnogo videozapisa na YouTubeu), a ja sam ga izmijenio kako bih postigao ovaj rezultat.
Pribor
1 x WDC W65C02 procesor
1 x WDC W65C22 svestrani adapter za sučelje
1 x 74HC00N IC (Quad 2-input NAND vrata) ili slično
1 x 10 cm široka (35 redaka) 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č s gumbom SPST ili slično
1 x 1K otpornik
1 x 3K3 otpornik
2 x 0,1 uF keramički kondenzatori
1 x 8 -way Way Light Light Marquee 5mm crvena LED
Žice u boji za povezivanje
8 žica muško - muško povezivanje
Korak 1: Ploča
Ploča je prilično kompaktna, a donja strana se priključuje izravno u 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 dulji zatičići, ali standardni zatiči znače da ploča čvrsto leži na vrhu MEGA -e.
Postavio sam IC -ove 6502 i 6522 tako da koriste tračnice za spajanje na MEGA -u. Postoje i neke veze za 6502 skrivene ispod IC -a. 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. Sljedeće lemljenje u 2 reda sa 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. Rezao sam tračnice samo kad sam bio siguran da to trebaju biti dok sam lemio spojne žice. Međutim, stvari ne idu uvijek po planu, izvorno sam dizajnirao trakastu ploču od prethodne ploče za kruh koristeći iglice 2, 3 i 7 Arduina, ali one se 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 upotrijebio jednu od neiskorištenih pinova (23, 24 itd.) jer to ne podržava prekida, pa smo morali koristiti pin 18, 19, 20 ili 21 koji to rade. Srećom, ove 4 igle poravnavaju se s rupama na traci i drže sve kompaktno. Pin 18 je također najudaljeniji od svih ostalih žica.
Možda ćete također primijetiti da moja dovršena ploča nije potpuno ista kao moj dijagram. To je zato što sam slijedio tuđi dijagram. Otuda i veze sa 74HC00. Također sam dodao 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 puno 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 daleko manje žica nego što je to bilo na verziji na ploči za kruh.
Korak 2: Teorija programiranja
6522 ima dva I/O priključka kao i mnoge druge značajke, ali priključci A i B su lako dostupni. Za izlaz podataka na priključak, Registar smjera podataka (DDR) potrebno je postaviti u skladu s tim i podatke poslati na sam priključak.
S gore postavljenim postavkama, 6522 nalazi se na E000 USD.
Za izlaz podataka na priključak B, DDR na $ E002 postavljen je na $ FF (255 - svi izlazi), a podaci se šalju na $ E000.
Za izlaz podataka na priključak A, DDR na $ E003 postavljen je 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 unatrag 1005 USD i beskonačno se ponavlja. NAPOMENA: DDR se mora inicijalizirati samo jednom.
Adresa Hexdump Demontaža
1000 USD 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 10101010 zbog čega se LED diode naizmjenično 4 uključuju, 4 isključuju.
Brzo i prljavo rješenje:
Zamijenite 74HC00 (Quad 2 ulazna NAND vrata) sa 74HC08 (Quad 2 ulaz i vrata) i 6522 se sada nalazi na 6000 USD umjesto E000 USD. Time se 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 impulsni sat 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 nadzire se 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 iznad.
Korak 4: Zaključak
Opet sam pokušao pokazati kako postaviti minimalno "6502 računalo".
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đer 6522 ima dva I/O porta.
Namjeravam nastaviti ovaj projekt instaliranjem SRAM -a ili EEPROM -a.
Preporučeni:
6502 Minimalno računalo (s Arduino MEGA -om) 3. dio: 7 koraka
6502 Minimalno računalo (s Arduino MEGA -om) 3. dio: Idući 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 vrata h
6502 Minimalno računalo (s Arduino MEGA -om) 1. dio: 7 koraka
6502 Minimalno računalo (s Arduino MEGA -om) 1. dio: Mikroprocesor 6502 prvi se 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čunalima, uključujući Atari, Apple II, Nintendo Entertainment System, BBC Micr
Minimalno četiri X 12 Volt Rover šasije s GoBILDA: 10 koraka
Minimalna četiri X 12 Volt Rover šasije s GoBILDA -om: Pokazat ću vam kako sam izgradio RC ili autonomnu šasiju rovera koristeći goBILDA komponente. Ovdje bih trebao dodati da nemam nikakve veze s goBILDA -om osim kao uglavnom zadovoljan kupac. Uključio sam kompletan popis dijelova pod Suppl
USB ventilator hlađen, ugrađen USB koncentrator, torba za prijenosno računalo 1. dio: 6 koraka
USB ventilator hlađen, ugrađen USB koncentrator, torba za prijenosno računalo 1. dio: Torbe za prijenosno računalo su skupe. oni jeftini su totalno sranje. Jedva pristojni počinju od 69,99 USD i teško mi je potrošiti taj novac kad uopće nije ono što želim, pa sam odlučio to učiniti sam i vidjeti što
Računalo za sustave RE (dio 1 od 2) (hardver): 5 koraka
Računalo za sustave RE (dio 1 od 2) (hardver): Ovdje ću vam pokazati kako sam napravio potpuno ispravno mini stolno računalo za male sustave obnovljive energije. Sustav RE koji planiram koristiti bit će prvenstveno 12 voltni sustav sa 6 ili 8 Golf Cart baterija, a ja ću imati invert snage 700 W