Tartalomjegyzék:
- Kellékek
- 1. lépés: A koncepció
- 2. lépés: Követelmények
- 3. lépés: Összerakás
- 4. lépés: Az áramkör tesztelése
- 5. lépés: Következő lépés
- 6. lépés: A program
- 7. lépés: Következtetés
Videó: 6502 Minimális számítógép (Arduino MEGA -val) 1. rész: 7 lépés
2024 Szerző: John Day | [email protected]. Utoljára módosítva: 2024-01-30 09:40
A 6502 mikroprocesszor először 1975 -ben jelent meg, és egy kis csapat tervezte, Chuck Peddle vezetésével a MOS Technology számára. Akkoriban videokonzolokon és otthoni számítógépeken használták, beleértve az Atarit, az Apple II -t, a Nintendo Entertainment System -et, a BBC Micro -t, a Commodore VIC20 -at és a 64 -et. Akkoriban ez volt az egyik legolcsóbb a piacon. Soha nem szűnt meg igazán, és most hobbisták és szakemberek használják számos alkalmazáshoz.
Az általam használt verzió a W65C02S6TPG-14, amelyet a Western Design Center készített, és tízszer kevesebb energiát fogyaszt, mint az eredeti. Különlegessége, hogy nem kell 1 MHz -en futnia, mint az eredeti chipnek. Sokkal lassabban is futtatható, vagy egyetlen lépésben használható egy programon, és akár 14 MHz -ig is fokozható. A chip adatlapja elmagyarázza a képességeit. Más 6502 chipek nem rendelkeznek ezzel a képességgel, és nem fognak így futni. A chipek jelenleg az Ebay -en és más forrásokban is elérhetők.
Kellékek
Az összes használt alkatrész jelenleg elérhető az Ebay -en, az AliExpress -en és másokon.
1. lépés: A koncepció
Az inspirációt Ben Eater -től kaptam, aki számos videót készített a YouTube -on a 6502 -ről és a számítógépek és áramkörök építésének számos más aspektusáról. A programot eredetileg ő írta, és ezt és néhány tervét módosítottam, hogy elkészítsem ezt az Instructable -t. Egy másik személy, aki inspirált, Andrew Jacobs volt, akinek van egy GitHub -szekciója, ahol egy PIC mikro segítségével vezérli 6502 -jét.
Benhez hasonlóan én is egy Arduino MEGA -t használok a 6502 monitorozásához. Én is a MEGA -t használom az órajel biztosítására, ellentétben Bennel. Jelenleg sem EEPROM -okat, sem RAM -ot nem használok.
2. lépés: Követelmények
Ennek a "számítógépnek" az elkészítéséhez az elemek listája a következő:
1 x Arduino MEGA
1 x Western Design Center W65C02S6TPG-14
1 x 74HC00N IC (négy bemenetű NAND kapu) vagy hasonló
1 x 74HC373N IC (Octal D típusú átlátszó retesz) vagy hasonló
2 x 830 lyukú kenyérlap (1 csipetnyi)
Különböző Dupont dugó - férfi vezetékek és összekötő vezetékek
2 x LED (én 5 mm -es kéket használtam, mivel ellenállások nélkül megúszhatja)
1 x 12 mm -es pillanatnyi tapintható nyomógombos kapcsoló NYÁK -ra szerelt SPST vagy hasonló
1 x 1K ellenállás
2 x 0,1 uF kerámia kondenzátor
1 x 8 -utas vízfény sátor 5 mm -es piros LED (mint fent) vagy 8 LED és ellenállás
MEGJEGYZÉS: Ha megkapja a nem forrasztott készletet, akkor a LED -eket rossz irányba helyezheti be, így azok közös katódok. Rögzítek egy légyvezetéket (a csap helyett), hogy könnyen összeköthessem máshol. A VCC mostantól Ground lesz. Természetesen megfordíthatja a LED-eket (egy összeszerelt elemen) és újra forraszthatja őket, de ez sok faff! A készletek jelenleg az AliExpressen érhetők el.
3. lépés: Összerakás
Könnyebbnek találtam az új DuPont vezetékek használatát, amelyeket nem választottak el a szalagtól a cím- és adatbuszokhoz.
Csatlakoztassa a 6502 9. tűjét (A0) a MEGA 52. tűjéhez, a 6502 10 -es csapja (A1) az 50 -es csaphoz stb …
amíg
Csatlakoztassa a 6502 25. tűjét (A15) a MEGA 22. tűjéhez.
Eddig 16 kapcsolat.
Hasonlóképpen
Csatlakoztassa a 6502 26. tűjét (D7) a MEGA 39. tűjéhez, a 6502 27. csapja (D6) a 41 -es csaphoz stb.
amíg
Csatlakoztassa a 6502 33. (D0) tűjét a MEGA 53. tűjéhez.
8 további kapcsolat.
Csatlakoztassa a 8. tüskét (VDD) az 5 V -hoz a MEGA -n.
Ebben az esetben hasznos lehet egy 0,1uF kondenzátor, amely a kenyértábla 8 -as érintkezőjéhez és Gnd -jéhez van csatlakoztatva.
Csatlakoztassa a 21 -es csapot (VSS) a GEG -hez a MEGA -n.
A 2, 4, 6, 36 és 38 csapok 5v -ra köthetők
Csatlakoztassa a 37. tűt (óra) a MEGA 2. és 7. tűjéhez.
Csatlakoztassa a 34. tűt (RWB) a MEGA 3. tűjéhez.
Csatlakoztassa a 40 -es csapot (Reset) a fenti ábra szerint.
4. lépés: Az áramkör tesztelése
Ebben a szakaszban a 6502 működik, és a program1 használható. Ha a nyolcirányú sátrat használja (a fentiek szerint), akkor egyenesen behelyezhető a kenyértáblába, és a légyvezeték a földhöz csatlakoztatható, vagy használhat 8 LED -et és ellenállást. A LED -ek megmutatják, hogy mi van az adatbuszon.
Ebben a szakaszban a Loop () késleltetését is 500 -ra vagy többre kell állítani, hogy követni lehessen a történéseket.
A soros monitoron hasonló kimenetet kell kapnia, mint a fenti. Amikor megnyomja a Reset gombot, a processzor 7 cikluson megy keresztül, majd megkeresi a program kezdetét a $ FFFC és $ FFFD helyeken. Mivel a 6502 -nek nincs fizikai olvasható címe, ezeket a MEGA -ból kell megadnunk.
A fenti kimeneten a 6502 $ FFFC és $ FFFD értékeket olvas, és 00 és 10 dollárt (Alacsony bájt, Magas bájt) kap, ami a program kezdete 1000 dollárnál. A processzor ezután elkezdi végrehajtani a programot $ 1000 helyen (a fentiek szerint). Ebben az esetben $ A9 és $ 55, azaz LDA#$ 55 (85 -ös betöltése az akkumulátorba). Ismét, mivel nincs fizikai memóriahely, a MEGA szimulálja az adatbuszon olvasottakat.
$ 55 (85) a 01010101 bináris mintát adja, és 1 bit balra forgatva $ AA (170) 10101010 értéket ad.
A program azt mutatja, hogy a processzor megfelelően működik, de hamarosan unalmassá válik, így tovább a következő részhez.
5. lépés: Következő lépés
A fenti "spagettihalom" valószínűleg valami hasonló lesz ahhoz, ami a szakasz után lesz.
Ezután hozzá kell adnia a 74HC373N és 74HC00N IC -ket a kenyértáblához.
Sajnos a 373 csapjai nem egyeznek az adat busszal, ezért vezetékekkel kell bekötni.
Csatlakoztassa az 5V -ot a 20 -as érintkezőhöz.
Csatlakoztassa a földet a 10 -es tűhöz.
Csatlakoztassa a 6502 -es 33 -as (D0) tüskét a 74HC373N 3 -as (D0) -hoz
és hasonlóképpen a D1 -D7 csapokkal.
A Q0 -tól a Q7 -ig terjedő kimenetek a kimenetek, amelyeket csatlakoztatni kell a LED -sátorhoz vagy az egyes LED -ekhez és ellenállásokhoz.
A 74HC00 csak két kapujára van szükség
Csatlakoztassa az 5V -ot a 14 -es tűhöz.
Csatlakoztassa a földet a 7 -es érintkezőhöz.
Csatlakoztassa a 6502 17. (A8) tüskéjét a 74HC00 1. tűjéhez (1A)
Csatlakoztassa a 6502 25. tűjét (A15) a 74HC00 2. tűjéhez (1B)
Csatlakoztassa a 6502 34. (R/W) érintkezőjét a 74HC00 5. (2B) tűjéhez
Csatlakoztassa a 74HC00 3. tűjét (1Y) a 74HC00 4. tűjéhez (2A)
Csatlakoztassa a 74HC00 6. tűjét (2Y) a 74HC373N 11. tűjéhez (LE)
Csatlakoztassa a 74HC373N 11. tűjét (LE) a 74HC373N 1. tűjéhez (OE)
Kék LED -et csatlakoztathat az 1Y és a földeléshez, valamint a 2Y a földhöz, ez jelzi, amikor a kapu aktív.
Végül változtassa meg az onClock eljárás sorát program1 -ről program2 -re
setDataPins (program2 [eltolás]);
6. lépés: A program
A 6502-monitor program tartalmazza a fent leírt két 6502 rutinot.
A program még fejlesztés alatt áll, és egy kicsit rendezetlen.
A program2 futtatásakor a ciklus () késleltetése legfeljebb 50 lehet, és akár teljesen megszüntethető. A Serial.print () sorok megjegyzése szintén gyorsítja a 6502 futását. A 373 -as első csapjának (OE) leválasztása a 11 -es tűről (LE) különböző eredményeket eredményez. A 373 -as 1. és 11. csapjának leválasztása a NAND -kapukról lehetővé teszi, hogy minden órajel alatt láthassa, mi van az adatbuszon.
Előfordulhat, hogy az OE -t a földhöz kell kötnie, ahelyett, hogy lebegne, mivel a 8 kimeneti vonal le van tiltva, ha ez a csap magas lesz. Ha a LE csap magas, a kimeneti csapok megegyeznek a bemenetekkel. Ha az LE csapot alacsonyan tartja, rögzíti a kimeneteket, azaz ha a bemeneti csapok megváltoznak, a kimenetek változatlanok maradnak.
Megpróbáltam a programot a lehető legegyszerűbbé tenni, hogy könnyebben érthető legyen.
Az időkésleltetéssel végzett kísérletezés lehetővé teszi, hogy pontosan kövesse a 6502 munkáját.
Az alábbiakban bemutatjuk a 6502 Assembler két programját (mindkettő 1000 dolláros címen fut):
program1
LDA#55 dollár
NOP
ROL
1010 USD
1000 JMP
A ROL egy bitnyit elforgatja az akkumulátor tartalmát, ami azt jelenti, hogy az 55 dollár most AA dollár lesz.
Gépkódban (hexadecimális): A9 55 EA 2A 8D 10 10 4C 00 10
program2
LDA#$ 01
8100 USD
ADC#$ 03
8100 USD
1005 JMP dollár
Gépkódban (hexadecimális): A9 01 8D 00 81 69 03 8D 00 81 4C 05 10
A program2 -ben már van egy fizikai cím $ 8100, ahol a 74HC373 található a címbuszon.
azaz a 6502 -ből A15 32768 (8000 USD), az A8 pedig 256 (0100 USD) = 33024 (8100 USD).
Tehát amikor a 6502 8100 dollárra ír (STA $ 8100), a 6502 R/W értéke alacsony, és a 6502 -es adatbuszon lévő adatok reteszelnek, amikor a 373 LE alacsony. A 74HC00 NAND kapu miatt a jelek megfordulnak.
A fenti szitanyomaton a második írás 3 -mal nőtt (ADC#$ 03) - 7F dollárról 82 USD -ra nőtt.
A valóságban a címbusz több mint 2 sorát használnák a 373 -as készülék konkrét helyére. Mivel ez az egyetlen fizikai cím a lehetséges 65536 közül, bemutatja a címbusz működését. Kísérletezhet különböző címtűkkel, és más helyre teheti. Természetesen módosítania kell az STA operandusokat az új helyre. például. Ha az A15 és A9 címsort használná, a cím 8200 dollár lenne (32768 + 512).
7. lépés: Következtetés
Megpróbáltam demonstrálni, hogy milyen egyszerű a 6502 üzembe helyezése.
Nem vagyok szakértő ezen a területen, ezért minden építő jellegű észrevételt vagy információt szívesen fogadok.
Szívesen továbbfejleszti ezt, és kíváncsi lennék arra, amit tett.
EEPROM -ot, SRAM -ot és 6522 -et kívánok hozzáadni a projekthez, valamint a jövőben a szalaglapra helyezni.
Ajánlott:
6502 Minimális számítógép (Arduino MEGA -val) 3. rész: 7 lépés
6502 Minimális számítógép (Arduino MEGA -val) 3. rész: Tovább haladva most hozzáadtam egy oktális reteszt, 8 téglalap alakú LED -et és egy 220 ohmos ellenállást az alaplaphoz. Van egy jumper is a tömb közös csapja és a föld között, így a LED -ek kikapcsolhatók. A 74HC00 NAND kapu h
6502 és 6522 minimális számítógép (Arduino MEGA -val) 2. rész: 4 lépés
6502 és 6522 Minimális számítógép (Arduino MEGA -val) 2. rész: Az előző Instructable -t követve most a 6502 -et egy szalaglapra tettem, és hozzáadtam egy 6522 -es sokoldalú interfész adaptert (VIA). Ismét a 6522 WDC verzióját használom, mivel tökéletesen illeszkedik a 6502 -hez. Nem csak ezek az új c
A PSP használata számítógép -botkormányként, majd a számítógép vezérlése a PSP -vel: 5 lépés (képekkel)
A PSP használata számítógép -botkormányként, majd a számítógép vezérlése a PSP -vel: Sok jó dolgot tehet a PSP homebrew segítségével, és ebben az oktatható útmutatóban megtanítom, hogyan kell használni a PSP -t joystickként a játékokhoz, de van egy program, amely lehetővé teszi, hogy a joystickot egérként használja. Itt vannak az anyák
A számítógép ablakának bevésése (1. rész): 6 lépés
Számítógépes ablak gravírozása (1. rész): Sok esetet láttam a gravírozott átlátszó ablakokkal. Elhatároztam, hogy bevésem a házamat, hogy új külsőt nyújtsak nekik. Ez nem olyan nehéz, mint amilyennek látszik, csak szánjon időt, és jó eredményeket fog elérni. Egyéb esetablak -utasítások megtalálhatók az Instru
Számítógép RE rendszerekhez (1/2. Rész) (hardver): 5 lépés
Számítógép RE rendszerekhez (1/2. Rész) (Hardver): Itt megmutatom, hogyan készítettem egy teljesen működő mini asztali számítógépet a megújuló energiaforrások kisméretű rendszereihez. A tervezett RE rendszer elsősorban 12 voltos rendszer lesz 6 vagy 8 golfkocsi akkumulátorral, és lesz egy 700 wattos teljesítményem