Sadržaj:
- Pribor
- 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 Minimalno računalo (s Arduino MEGA -om) 1. dio: 7 koraka
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:34
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 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. Posebna je po tome što ne mora raditi na 1 MHz kao izvorni č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.
Pribor
Svi korišteni dijelovi trenutno su dostupni na Ebayu, AliExpressu i drugima.
Korak 1: Koncept
Inspiraciju sam dobio od Bena Eatera koji je na YouTubeu proizveo niz video zapisa o 6502 i mnogim drugim aspektima izgradnje računala i sklopova. Program je on izvorno napisao, a ja sam izmijenio ovaj i neke njegove dizajne kako bih došao do ovog Instructable -a. Još jedna osoba koja me inspirirala bio je Andrew Jacobs koji ima odjeljak na GitHub -u gdje koristi PIC mikro za upravljanje svojim 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 niti EEPROM -ove niti RAM memoriju.
Korak 2: Zahtjevi
Za izradu ovog "računala" popis stavki je sljedeći:
1 x Arduino MEGA
1 x Western Design Center W65C02S6TPG-14
1 x 74HC00N IC (Quad 2-input NAND vrata) ili slično
1 x 74HC373N IC (oktalni prozirni zasun D-tipa) ili slično
2 ploče za kruh s 830 rupa (1 u malo)
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č s gumbom SPST ili slično
1 x 1K otpornik
2 x 0,1 uF keramički kondenzatori
1 x 8 -smjerna oznaka za svjetlo vode 5 mm crvena LED dioda (kao gore) ili 8 LED dioda i otpornika
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 sastavljenom predmetu) i ponovno ih lemiti, ali ovo je puno fafa! 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.
Do sada 16 veza.
Također
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 mogao bi biti koristan ovdje, ali nije nužan.
Spojite pin 21 (VSS) na Gnd na MEGA -i.
Igle 2, 4, 6, 36 i 38 mogu se vezati 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 izravno u ploču s krugom i spojiti uzemljeni kabel s masom, ili možete koristiti 8 LED dioda i otpornika. LED diode će pokazati što se nalazi na podatkovnoj sabirnici.
U ovoj fazi bilo bi dobro postaviti kašnjenja u Loop -u () na 500 ili više, kako bi pratili što se događa.
Trebali biste dobiti sličan izlaz na serijskom monitoru poput gornjeg. Kada se pritisne Reset, procesor prolazi kroz 7 ciklusa, a zatim traži početak programa na lokacijama $ FFFC i $ FFFD. Budući da 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 od 1000 USD. Procesor tada počinje izvršavati program na mjestu 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 nema fizičke memorije, MEGA simulira ono što se čita s podatkovne sabirnice.
$ 55 (85) daje binarni uzorak 01010101, a kada se okrene 1 bit ulijevo daje $ AA (170) 10101010.
Program pokazuje da procesor radi ispravno, ali uskoro postaje pomalo dosadan, pa idemo 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 slažu s podatkovnom sabirnicom, 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 s iglama 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 potrebna su samo 2 vrata
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.
Na kraju promijenite redak u postupku 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. Komentirajući redove Serial.print () također 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 vrata omogućuje vam da vidite što se nalazi na podatkovnoj sabirnici u svakom ciklusu takta.
Možda ćete morati vezati OE za masu, a ne ostavljati je u plutajućem položaju jer je 8 izlaznih linija onemogućeno ako ovaj pin ide visoko. Kad je pin LE 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 točno pratite što 6502 radi.
Ispod su dva programa (oba rade na adresi 1000 USD) u 6502 Assembleru:
program1
LDA#55 USD
NOP
ROL
STA 1010 USD
1000 JMP
ROL rotira sadržaj akumulatora za jedan bit ulijevo, što znači da 55 USD sada postaje AA AA.
U strojnom 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 programu 2 sada postoji fizička adresa 8100 USD na kojoj se 74HC373 nalazi na sabirnici adresa.
tj. A15 od 6502 je 32768 (8000 USD), a A8 256 (0100 USD) = 33024 (8100 USD).
Dakle, kada 6502 piše na 8100 USD (STA 8100 USD), R/W 6502 je niska, a podaci na podatkovnoj sabirnici 6502 blokirani su kada 373 LE padne. Zbog vrata 74HC00 NAND, signali su obrnuti.
U gornjem otisku zaslona drugi upis je povećan za 3 (ADC#$ 03) - sa 7 $ na 82 USD.
U stvarnosti, više od 2 retka 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 za adresu i postaviti ih na drugo mjesto. Naravno, morat ćete promijeniti STA operande na novo mjesto. npr. Ako ste koristili retke 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 ovom području pa bih pozdravio sve konstruktivne komentare ili informacije.
Dobrodošli ste da to dodatno razvijete i zanimalo bi me što ste učinili.
Namjeravam projektu dodati EEPROM, SRAM i 6522, te ga ubuduće staviti na strip ploču.
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 & 6522 Minimalno računalo (s Arduino MEGA -om) 2. dio: 4 koraka
6502 i 6522 Minimalno računalo (s Arduino MEGA -om) 2. dio Opet, koristim WDC verziju 6522, jer se savršeno uklapa u njihovu 6502. Ne samo da ovi novi
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