Përmbajtje:
- Furnizimet
- Hapi 1: Koncepti
- Hapi 2: Kërkesat
- Hapi 3: Vendosja së bashku
- Hapi 4: Testimi i qarkut
- Hapi 5: Hapi tjetër
- Hapi 6: Programi
- Hapi 7: Përfundimi
Video: 6502 Kompjuter minimal (me Arduino MEGA) Pjesa 1: 7 Hapa
2024 Autor: John Day | [email protected]. E modifikuara e fundit: 2024-01-30 12:16
Mikroprocesori 6502 u shfaq për herë të parë në 1975 dhe u projektua nga një ekip i vogël i udhëhequr nga Chuck Peddle për MOS Technology. Atëherë ai përdorej në konzollat video dhe kompjuterët shtëpiak duke përfshirë Atari, Apple II, Nintendo Entertainment System, BBC Micro, Commodore VIC20 dhe 64. Në atë kohë ishte një nga më të lirëit në treg. Nuk është zhdukur kurrë dhe tani përdoret nga hobistët dhe profesionistët për shumë aplikime.
Versioni që po përdor është W65C02S6TPG-14 i cili është bërë nga Western Design Center dhe përdor dhjetë herë më pak energji se origjinali. Specialshtë e veçantë në atë që nuk ka pse të punojë në 1 MHz si çipi origjinal. Mund të funksionojë shumë më ngadalë ose të përdoret për një hap të vetëm përmes një programi dhe madje të rritet deri në 14 MHz. Fleta e të dhënave për çipin shpjegon aftësitë e tij. Çipat e tjerë 6502 nuk e kanë këtë aftësi dhe nuk do të funksionojnë në këtë mënyrë. Patate të skuqura janë aktualisht të disponueshme në Ebay, si dhe burime të tjera.
Furnizimet
Të gjitha pjesët e përdorura janë aktualisht të disponueshme në Ebay, AliExpress dhe të tjerët.
Hapi 1: Koncepti
Frymëzimin e kam nga Ben Eater i cili ka prodhuar një seri videosh në YouTube për 6502 dhe shumë aspekte të tjera të ndërtimit të kompjuterëve dhe qarqeve. Programi u shkrua nga ai fillimisht dhe unë e kam modifikuar këtë dhe disa nga modelet e tij për të dalë me këtë Udhëzues. Një person tjetër që më frymëzoi ishte Andrew Jacobs i cili ka një seksion në GitHub ku ai përdor një mikro PIC për të kontrolluar 6502 -in e tij.
Ashtu si Ben, unë jam duke përdorur një Arduino MEGA për të monitoruar 6502. Unë jam gjithashtu duke përdorur MEGA për të siguruar sinjalin e orës ndryshe nga Ben. Për momentin unë nuk jam duke përdorur asnjë EEPROM ose RAM.
Hapi 2: Kërkesat
Për të ndërtuar këtë "kompjuter" një listë artikujsh janë si më poshtë:
1 x Arduino MEGA
1 x Qendra e Dizajnit Perëndimor W65C02S6TPG-14
1 x 74HC00N IC (Porta NAND me katër hyrje) ose e ngjashme
1 x 74HC373N IC (shul transparent oktal i tipit D) ose të ngjashme
2 dërrasa buke me xham 830 (1 në majë)
Meshkuj të ndryshëm Dupont - meshkuj dhe tela lidhës
2 x LED (kam përdorur blu 5 mm pasi mund të largoheni pa rezistencë)
Çelës 1 x 12mm Tastile Tactile Push Button PCB i montuar SPST ose i ngjashëm
1 x 1K rezistencë
2 x 0.1 uF kondensatorë qeramikë
1 x 8 Way Light Water Marquee 5mm LED e kuqe (si më sipër) ose 8 LED dhe rezistorë
SHENIM: Nëse merrni kompletin e pashitur, mund t'i futni LED -të në mënyrë të gabuar në mënyrë që ato të jenë katodë e zakonshme. Unë bashkoj një plumb mizash (në vend të kunjit) në mënyrë që të lidhet lehtësisht diku tjetër. KQV tani bëhet Ground. Sigurisht që mund t'i ktheni LED-të përreth (në një artikull të montuar) dhe t'i lidhni përsëri, por kjo është shumë e gabuar! Komplete janë aktualisht në dispozicion në AliExpress.
Hapi 3: Vendosja së bashku
E kisha më të lehtë të përdorja telat e rinj DuPont që nuk ishin ndarë nga shiriti i tyre për autobusët e adresave dhe të dhënave.
Lidhni pinin 9 (A0) të 6502 me kunjin 52 të MEGA, pin 10 (A1) nga 6502 në pin 50 etj…
derisa
Lidhni pinin 25 (A15) të 6502 me kunjin 22 të MEGA.
16 lidhje deri më tani.
Po kështu
Lidhni kunjin 26 (D7) të 6502 me kunjin 39 të MEGA, pin 27 (D6) nga 6502 në pin 41 etj…
derisa
Lidhni kunjin 33 (D0) të 6502 me kunjin 53 të MEGA.
8 lidhje të tjera.
Lidhni pinin 8 (VDD) me 5v në MEGA.
Një kondensator 0.1uF i lidhur nga kunja 8 në Gnd të tabelës së bukës mund të jetë i dobishëm këtu, por jo i nevojshëm.
Lidhni pinin 21 (VSS) me Gnd në MEGA.
Kunjat 2, 4, 6, 36 dhe 38 mund të lidhen me 5v
Lidhni pinin 37 (Ora) me kunjin 2 dhe kunjin 7 të MEGA.
Lidhni kunjin 34 (RWB) me kunjin 3 të MEGA.
Lidhni pin 40 (Rivendos) si diagramin e mësipërm.
Hapi 4: Testimi i qarkut
Në këtë fazë 6502 do të funksionojë dhe programi 1 mund të përdoret. Nëse jeni duke përdorur raketë me 8 drejtime (si më sipër), ajo mund të futet drejt në tabelën e bukës dhe plumbi i mizës të lidhet me tokën, ose mund të përdorni 8 LED dhe rezistorë. LEDS do të tregojë atë që është në autobusin e të dhënave.
Në këtë fazë do të ishte gjithashtu të vendosnim vonesat në Loop () në 500 ose më shumë, për të ndjekur atë që po ndodh.
Ju duhet të merrni një dalje të ngjashme në Monitor Serial si ajo e mësipërme. Kur shtypet Reset, procesori kalon 7 cikle dhe pastaj kërkon fillimin e programit në vendet $ FFFC dhe $ FFFD. Meqenëse nuk ka adresa fizike për leximin e 6502, ne duhet t'i furnizojmë ato nga MEGA.
Në daljen e mësipërme, 6502 lexon $ FFFC dhe $ FFFD dhe merr $ 00 dhe $ 10 (Bajt i ulët, Bajt i lartë) që është fillimi i programit në $ 1000. Procesori pastaj fillon të ekzekutojë programin në vendndodhjen $ 1000 (si më sipër). Në këtë rast lexon $ A9 dhe $ 55, dmth LDA#$ 55 (Ngarkoni 85 në akumulator). Përsëri pasi nuk ka vendndodhje të kujtesës fizike, MEGA simulon atë që lexohet nga autobusi i të dhënave.
$ 55 (85) jep modelin binar 01010101 dhe kur rrotullohet 1 bit majtas jep $ AA (170) 10101010.
Programi tregon se procesori po punon si duhet, por së shpejti bëhet pak i mërzitshëm, kështu që në pjesën tjetër.
Hapi 5: Hapi tjetër
"Grumbulli i spagetit" më sipër është ndoshta diçka si ajo që do të keni pas kësaj faze.
Tjetra ju duhet të shtoni IC -të 74HC373N dhe 74HC00N në tabelën e bukës.
Fatkeqësisht kunjat e 373 nuk përputhen me autobusin e të dhënave, kështu që do të duhet të lidhen me tela.
Lidhni 5v me pin 20.
Lidhni Ground me pin 10.
Lidhni kunjin 33 (D0) të 6502 me kunjin 3 (D0) të 74HC373N
dhe gjithashtu me kunjat D1 deri D7.
Q0 në Q7 janë daljet dhe këto do të kenë nevojë të lidhen me raketë LED ose LED dhe rezistorë individualë.
Me 74HC00 nevojiten vetëm 2 porta të tij
Lidhni 5v me kunjin 14.
Lidhni Ground me pin 7.
Lidhni kunjin 17 (A8) të 6502 me kunjin 1 (1A) të 74HC00
Lidhni pinin 25 (A15) të 6502 me kunjin 2 (1B) të 74HC00
Lidhni kunjin 34 (R/W) të 6502 me pin 5 (2B) të 74HC00
Lidhni kunjin 3 (1Y) të 74HC00 me kunjin 4 (2A) të 74HC00
Lidhni kunjin 6 (2Y) të 74HC00 me kunjin 11 (LE) të 74HC373N
Lidhni pinin 11 (LE) të 74HC373N me pin 1 (OE) të 74HC373N
Ju mund të lidhni një LED blu në 1Y dhe tokë, si dhe 2Y në tokë, kjo do të tregojë kur porta është aktive.
Së fundi ndryshoni vijën në procedurën onClock nga program1 në program2
setDataPins (program2 [offset]);
Hapi 6: Programi
Programi 6502-Monitor përmban dy rutinat 6502 të përshkruara më sipër.
Programi është ende në zhvillim dhe është pak i çrregullt.
Kur ekzekutoni programin2, vonesat në lakin () mund të jenë 50 ose më pak dhe madje të hiqen krejt. Komentimi i linjave Serial.print () gjithashtu e bën 6502 të funksionojë më shpejt. Shkëputja e kunjit 1 (OE) të 373 nga kunja 11 (LE) prodhon rezultate të ndryshme. Shkëputja e kunjave 1 dhe pinit 11 të 373 nga portat NAND ju mundëson të shihni se çfarë ka në autobusin e të dhënave në çdo cikël të orës.
Ju mund të keni nevojë të lidhni OE me tokën në vend që ta lini atë të lundrojë pasi 8 linjat e daljes janë të çaktivizuara nëse kjo kunj shkon lart. Kur kunja LE është e lartë, kunjat e daljes janë të njëjta me hyrjet. Marrja e kapëses së ulët të LE çelësat e daljeve, domethënë nëse kunjat e hyrjes ndryshojnë, daljet qëndrojnë të njëjta.
Unë jam përpjekur ta mbaj programin sa më të thjeshtë për ta bërë më të lehtë për t’u kuptuar.
Eksperimentimi me vonesat në kohë ju mundëson të ndiqni saktësisht atë që po bën 6502.
Më poshtë janë dy programet (të dy drejtohen në adresën $ 1000) në 6502 Assembler:
programi 1
LDA#55 dollarë
JO
ROL
STA 1010 dollarë
JMP 1000 dollarë
ROL rrotullon përmbajtjen e akumulatorit një bit të mbetur, që do të thotë se 55 $ tani bëhen $ AA.
Në kodin e makinës (gjashtëkëndësh): A9 55 EA 2A 8D 10 10 4C 00 10
programi2
LDA#$ 01
STA 8100 dollarë
ADC#$ 03
STA 8100 dollarë
JMP 1005 dollarë
Në kodin e makinës (gjashtëkëndësh): A9 01 8D 00 81 69 03 8D 00 81 4C 05 10
Në programin2 tani ekziston një adresë fizike 8100 $ e cila është vendi ku 74HC373 ndodhet në autobusin e adresave.
dmth A15 e 6502 është 32768 (8000 dollarë) dhe A8 është 256 (0100 dollarë) = 33024 (8100 dollarë).
Pra, kur 6502 shkruan në 8100 dollarë (STA 8100 dollarë) R/W e 6502 është e ulët dhe të dhënat në autobusin e të dhënave 6502 mbyllen kur 373 LE zbret. Për shkak të Portës 74HC00 NAND, sinjalet përmbysen.
Në shtypjen e ekranit të mësipërm shkrimi i dytë është shtuar me 3 (ADC#$ 03) - shkoi nga $ 7F në 82 $.
Në realitet, më shumë se 2 linja të autobusit të adresave do të përdoren për vendndodhjen specifike të 373. Meqenëse kjo është adresa e vetme fizike nga 65536 e mundshme, ajo demonstron se si funksionon autobusi i adresës. Ju mund të eksperimentoni me kunja të ndryshme adresash dhe t'i vendosni në një vend tjetër. Sigurisht, do t'ju duhet të ndryshoni operandët STA në vendndodhjen e re. p.sh. Nëse përdorni linjat e adresave A15 dhe A9 adresa do të ishte 8200 dollarë (32768 + 512).
Hapi 7: Përfundimi
Unë jam përpjekur të demonstroj se sa e lehtë është të fillosh një 6502.
Unë nuk jam ekspert në këtë fushë, kështu që do të mirëprisja çdo koment apo informacion konstruktiv.
Jeni të mirëpritur ta zhvilloni këtë më tej dhe do të isha i interesuar për atë që keni bërë.
Kam ndërmend të shtoj një EEPROM, SRAM dhe një 6522 në projekt, si dhe ta vendos atë në tabelë në të ardhmen.
Recommended:
6502 Kompjuter minimal (me Arduino MEGA) Pjesa 3: 7 Hapa
6502 Kompjuter minimal (me Arduino MEGA) Pjesa 3: Duke vazhduar akoma më tej, tani kam shtuar një shtrëngim oktal, 8 LED drejtkëndëshe dhe një grup rezistence 220 Ohm në tabelën kryesore. Ekziston gjithashtu një kërcyes midis kunjit dhe tokëzimit të zakonshëm të grupit, në mënyrë që LED -të të fiken. Porta 74HC00 NAND h
6502 & 6522 Kompjuter minimal (me Arduino MEGA) Pjesa 2: 4 Hapa
Kompjuter minimal 6502 & 6522 (me Arduino MEGA) Pjesa 2: Duke ndjekur udhëzimet e mia të mëparshme, tani e kam vendosur 6502 në një tabelë shiriti dhe shtova një përshtatës ndërfaqe të gjithanshëm 6522 (VIA). Përsëri, unë jam duke përdorur një version WDC të 6522, pasi është një ndeshje perfekte për 6502. Jo vetëm që këto c
Kompjuter për sistemet RE (Pjesa 1 nga 2) (Pajisje kompjuterike): 5 hapa
Kompjuter për Sistemet RE (Pjesa 1 nga 2) (Pajisje kompjuterike): Këtu do t'ju tregoj se si kam bërë një kompjuter Mini Desktop që funksionon plotësisht për sistemet e vogla të Energjisë së Rinovueshme. Sistemi RE që planifikoj të përdor do të jetë kryesisht një sistem 12 Volt me 6 ose 8 bateri të Kartës së Golfit, dhe unë do të kem një fuqi të brendshme 700 vat
Kompjuter për sistemet RE (Pjesa 2 nga 2) (Softuer): 6 hapa
Kompjuter për Sistemet RE (Pjesa 2 nga 2) (Softuer): Në pjesën e parë të këtij Udhëzuesi të vendosur këtu https://www.instructables.com/id/Computer-for-RE-Systems-Part-1-of-2 -Hardware/, shtova të gjithë harduerin që doja të merrja një sistem të mirë desktop. Tani për softuerin, por para softuerit
Përdorni SSH dhe XMing për të shfaqur programe X nga një kompjuter Linux në një kompjuter Windows: 6 hapa
Përdorni SSH dhe XMing për të shfaqur programe X nga një kompjuter Linux në një kompjuter Windows: Nëse përdorni Linux në punë, dhe Windows në shtëpi, ose anasjelltas, ndonjëherë mund t'ju duhet të regjistroheni në kompjuter në vendndodhjen tuaj tjetër , dhe drejtoni programe. Epo, mund të instaloni një server X dhe të aktivizoni tunelimin SSH me klientin tuaj SSH, dhe një