Sadržaj:
- Supplies
- Korak 1: Koncept
- Korak 2: Zahtjevi
- Korak 3: Sastavite to zajedno
- Korak 4: Testiranje kruga
- Korak 5: Sljedeći korak
- Korak 6: Program
- Korak 7: Zaključak
Video: 6502 Minimalni računar (sa Arduino MEGA) 1. dio: 7 koraka
2024 Autor: John Day | [email protected]. Zadnja izmjena: 2024-01-30 08:05
Mikroprocesor 6502 prvi put se 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 Micro, Commodore VIC20 i 64. U to vrijeme bio je jedan od najjeftinijih na tržištu. Nikada zapravo nije nestao, a sada ga koriste hobisti i profesionalci za mnoge primjene.
Verzija koju koristim je W65C02S6TPG-14 koju je izradio Western Design Center i koristi deset puta manje energije od originala. Poseban je po tome što ne mora raditi na 1 MHz kao originalni čip. Može raditi mnogo sporije ili se može koristiti za jedan korak kroz program, pa čak i pojačan do 14 MHz. Tehnički list za čip objašnjava njegove mogućnosti. Ostali 6502 čipovi nemaju tu mogućnost i neće raditi na ovaj način. Čipovi su trenutno dostupni na Ebayu, kao i u drugim izvorima.
Supplies
Svi korišteni dijelovi trenutno su dostupni na Ebayu, AliExpressu i drugima.
Korak 1: Koncept
Inspiraciju sam dobio od Bena Etera koji je na YouTube -u proizveo niz video zapisa o 6502 i mnogim drugim aspektima izgradnje računara i kola. Program je on izvorno napisao, a ja sam izmijenio ovaj i neke njegove dizajne kako bih došao do ovog uputstva. Još jedna osoba koja me inspirirala je Andrew Jacobs koji ima odjeljak na GitHub -u gdje koristi PIC mikro za kontrolu svog 6502.
Kao i Ben, i ja koristim Arduino MEGA za nadgledanje 6502. Također koristim MEGA za pružanje signala sata za razliku od Bena. Trenutno ne koristim ni EEPROM -ove niti RAM memoriju.
Korak 2: Zahtjevi
Za izradu ovog "računara" lista stavki je sljedeća:
1 x Arduino MEGA
1 x Western Design Center W65C02S6TPG-14
1 x 74HC00N IC (Quad 2-input NAND gate) ili slično
1 x 74HC373N IC (oktalni prozirni zasun D-tipa) ili slično
2 ploče za hleb sa 8 rupa (1 na prstohvat)
Razni Dupont muško - muški vodiči i žice za povezivanje
2 x LED diode (koristio sam 5 mm plavu boju jer možete pobjeći bez otpornika)
1 x 12 mm trenutni taktilni prekidač sa pritiskom na dugme PCB montiran na SPST ili slično
1 x 1K otpornik
2 x 0,1 uF keramički kondenzatori
1 x 8 -smjerna šalica za svjetlo vode 5 mm crvena LED dioda (kao gore) ili 8 LED dioda i otpornici
NAPOMENA: Ako dobijete raspajani komplet, LED diode možete umetnuti na pogrešan način tako da budu zajednička katoda. Pričvršćujem zamajac (umjesto igle) tako da se može lako spojiti na drugo mjesto. VCC sada postaje Ground. Naravno, možete okrenuti LED diode (na sklopljenom predmetu) i ponovno ih lemiti, ali ovo je mnogo nedostataka! Kompleti su trenutno dostupni na AliExpressu.
Korak 3: Sastavite to zajedno
Bilo mi je lakše koristiti nove DuPont žice koje nisu bile odvojene od vrpce za sabirnice adresa i podataka.
Spojite pin 9 (A0) 6502 na pin 52 MEGA -e, pin 10 (A1) 6502 na pin 50 itd …
do
Spojite pin 25 (A15) 6502 na pin 22 MEGA -e.
16 veza do sada.
Isto tako
Spojite pin 26 (D7) 6502 na pin 39 MEGA -e, pin 27 (D6) 6502 na pin 41 itd …
do
Spojite pin 33 (D0) 6502 na pin 53 MEGA -e.
Još 8 veza.
Spojite pin 8 (VDD) na 5v na MEGA -i.
Kondenzator od 0,1 uF spojen s pina 8 na Gnd ploče za kruh može biti koristan ovdje, ali nije nužan.
Spojite iglu 21 (VSS) na Gnd na MEGA -i.
Igle 2, 4, 6, 36 i 38 mogu biti vezane za 5v
Spojite pin 37 (Sat) na pin 2 i pin 7 na MEGA -i.
Spojite pin 34 (RWB) na pin 3 MEGA -e.
Spojite pin 40 (Reset) kao na gornjoj shemi.
Korak 4: Testiranje kruga
U ovoj fazi 6502 će raditi i program1 se može koristiti. Ako koristite 8 -smjerni okvir za izbor (kao gore), može se umetnuti ravno u matičnu ploču i zamajac spojiti na masu, ili možete koristiti 8 LED dioda i otpornika. LED diode će pokazati šta se nalazi na magistrali podataka.
U ovoj fazi bilo bi dobro postaviti kašnjenja u Loop -u () na 500 ili više, kako biste pratili šta se dešava.
Trebali biste dobiti sličan izlaz na serijskom monitoru kao ovaj gore. Kada se pritisne Reset, procesor prolazi kroz 7 ciklusa, a zatim traži početak programa na lokacijama $ FFFC i $ FFFD. Kako ne postoje fizičke adrese za čitanje 6502, moramo ih dostaviti iz MEGA -e.
U gornjem izlazu 6502 čita $ FFFC i $ FFFD i dobiva 00 i 10 USD (niži bajt, visoki bajt) što je početak programa na 1000 dolara. Procesor tada počinje izvršavati program na lokaciji od 1000 USD (kao gore). U ovom slučaju čita A9 i 55 USD, odnosno LDA#55 USD (Učitajte 85 u akumulator). Opet, budući da ne postoji lokacija fizičke memorije, MEGA simulira ono što se čita sa sabirnice podataka.
$ 55 (85) daje binarni obrazac 01010101, a kada se rotira 1 bit lijevo daje $ AA (170) 10101010.
Program pokazuje da procesor radi ispravno, ali uskoro postaje pomalo dosadan, pa pređite na sljedeći dio.
Korak 5: Sljedeći korak
Gore navedena "hrpa špageta" vjerojatno je nešto poput onoga što ćete imati nakon ove faze.
Zatim trebate dodati IC -ove 74HC373N i 74HC00N na matičnu ploču.
Nažalost pinovi 373 se ne podudaraju sa sabirnicom podataka, pa će ih trebati spojiti žicama.
Spojite 5v na pin 20.
Spojite uzemljenje na pin 10.
Spojite pin 33 (D0) 6502 na pin 3 (D0) 74HC373N
i isto tako sa pinovima D1 do D7.
Q0 do Q7 su izlazi i potrebno ih je spojiti na LED okvir ili pojedinačne LED diode i otpornike.
Sa 74HC00 potrebne su samo 2 kapije
Spojite 5v na pin 14.
Spojite uzemljenje na pin 7.
Spojite pin 17 (A8) 6502 na pin 1 (1A) 74HC00
Spojite pin 25 (A15) 6502 na pin 2 (1B) 74HC00
Spojite pin 34 (R/W) 6502 na pin 5 (2B) 74HC00
Spojite pin 3 (1Y) 74HC00 na pin 4 (2A) 74HC00
Spojite pin 6 (2Y) 74HC00 na pin 11 (LE) 74HC373N
Spojite pin 11 (LE) 74HC373N na pin 1 (OE) 74HC373N
Možete spojiti plavu LED diodu na 1Y i masu, kao i 2Y na masu, to će pokazati kada su vrata aktivna.
Konačno promijenite red u proceduri onClock iz programa1 u program2
setDataPins (program2 [pomak]);
Korak 6: Program
Program 6502-Monitor sadrži dvije gore opisane rutine 6502.
Program se još uvijek razvija i pomalo je neuredan.
Prilikom izvođenja programa2, kašnjenja u petlji () mogu biti 50 ili manja, pa čak i potpuno uklonjena. Komentarišući redove Serial.print () takođe ubrzava rad 6502. Odvajanje pina 1 (OE) 373 od pina 11 (LE) daje različite rezultate. Odvajanje pina 1 i pina 11 373 iz NAND kapija omogućuje vam da vidite šta se nalazi na sabirnici podataka u svakom ciklusu takta.
Možda ćete morati vezati OE za uzemljenje umjesto da ga ostavite plutajućeg jer je 8 izlaznih linija onemogućeno ako ovaj pin ide visoko. Kada je LE pin visok, izlazi su isti kao i ulazi. Uzimajući LE pin nisko zaključava izlaze, tj. Ako se ulazni pinovi promijene, izlazi ostaju isti.
Pokušao sam program učiniti što jednostavnijim kako bi ga bilo lakše razumjeti.
Eksperimentiranje s vremenskim kašnjenjima omogućuje vam da tačno pratite šta 6502 radi.
Ispod su dva programa (oba rade na adresi 1000 USD) u 6502 Assembler:
program1
LDA#55 USD
NOP
ROL
STA 1010 USD
JMP $ 1000
ROL rotira sadržaj akumulatora jedan bit ulijevo, što znači da 55 USD sada postaje AA AA.
U mašinskom kodu (šesterokutni): A9 55 EA 2A 8D 10 10 4C 00 10
program2
LDA#01 USD
STA 8100 USD
ADC#03 USD
STA 8100 USD
JMP 1005 USD
U strojnom kodu (šesterokutni): A9 01 8D 00 81 69 03 8D 00 81 4C 05 10
U programu2 sada postoji fizička adresa $ 8100 na kojoj se 74HC373 nalazi na sabirnici adresa.
A15 od 6502 je 32768 (8000 USD), a A8 256 (0100 USD) = 33024 (8100 USD).
Dakle, kada 6502 upisuje na 8100 USD (STA 8100 USD), R/W 6502 je nizak, a podaci na sabirnici podataka 6502 blokirani su kada 373 LE padne. Zbog 74HC00 NAND vrata, signali su obrnuti.
U gornjem sitotisku, drugo pisanje je povećano za 3 (ADC#$ 03) - sa 7 $ na 82 USD.
U stvarnosti, više od 2 linije sabirnice adresa koristilo bi se za određenu lokaciju 373. Budući da je ovo jedina fizička adresa od mogućih 65536, ona pokazuje kako radi sabirnica adresa. Možete eksperimentirati s različitim iglama adresa i postaviti ih na drugo mjesto. Naravno, morat ćete promijeniti STA operande na novu lokaciju. npr. Ako ste koristili redove adresa A15 i A9, adresa bi bila 8200 USD (32768 + 512).
Korak 7: Zaključak
Pokušao sam pokazati kako je lako pokrenuti 6502.
Nisam stručnjak u ovoj oblasti pa bih rado prihvatio bilo kakve konstruktivne komentare ili informacije.
Dobrodošli ste da to dodatno razvijete i zanimalo bi me šta ste učinili.
Nameravam da projektu dodam EEPROM, SRAM i 6522, kao i da ga ubuduće stavljam na strip ploču.
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 & 6522 Minimalni računar (sa Arduino MEGA) 2. dio: 4 koraka
6502 & 6522 Minimalni računar (sa Arduino MEGA -om) 2. dio: Slijedeći moj prethodni Instructable, 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
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