Tartalomjegyzék:

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: 4 lépés

Videó: 6502 és 6522 minimális számítógép (Arduino MEGA -val) 2. rész: 4 lépés

Videó: 6502 és 6522 minimális számítógép (Arduino MEGA -val) 2. rész: 4 lépés
Videó: 6502 Значок Фестиваля старинных компьютеров на Среднем Западе 2017 г. 2024, November
Anonim
6502 és 6522 minimális számítógép (Arduino MEGA -val) 2. rész
6502 és 6522 minimális számítógép (Arduino MEGA -val) 2. rész

A korábbi 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 chipek sokkal kevesebb energiát fogyasztanak, mint az eredeti MOS verziók, de lassabb sebességgel is futtathatók vagy akár át is léphetők programot minden probléma nélkül.

Az Arduino programot eredetileg Ben Eater írta (akinek sok videója van a YouTube -on), és én módosítottam, hogy elérjem ezt az eredményt.

Kellékek

1 db WDC W65C02 processzor

1 x WDC W65C22 sokoldalú interfész adapter

1 x 74HC00N IC (négy bemenetű NAND kapu) vagy hasonló

1 x 10 cm széles (35 vonal) szalagdeszka

2 x 40 tűs DIL foglalat

1 x 14 tűs DIL foglalat

NYÁK fejlécek 2,54 mm

NYÁK csatlakozóaljzatok 2,54 mm

1 x 12 mm -es pillanatnyi tapintható nyomógombos kapcsoló NYÁK -ra szerelt SPST vagy hasonló

1 x 1K ellenállás

1 x 3K3 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

Különböző színű huzal a csatlakozásokhoz

8 db férfi - férfi összekötő vezeték

1. lépés: Az áramkör

Az áramkör
Az áramkör
Az áramkör
Az áramkör

Az áramköri lap meglehetősen kompakt, és az alsó része közvetlenül az Arduino MEGA -ba csatlakozik. Ennek elérése érdekében a csapokat a lehető legmesszebbre tolják a műanyag tartóba, mielőtt a tábla alsó oldalához forrasztják. Ehhez hosszabb csapokat is lehetett volna használni, de a szabványos csapok azt jelentik, hogy a tábla szilárdan a MEGA tetején nyugszik.

A 6502 -es és a 6522 -es IC -ket úgy sorakoztattam fel, hogy a szalaglemez -sávokat használják a MEGA -hoz való csatlakozáshoz. Van néhány kapcsolat a 6502 -hez az IC alatt. A tábla készítésekor először le kellett vágni azt a 16 csíkot, amelyek az Arduino kettős foglalatsorához csatlakoznak. A külső 2 -t nem kell vágni, mivel az 5v és a Gnd mindkét oldalon található. Következő forrasztás a 2 sorban, 18 tűvel az alsó oldalon, és a 2 sorban lévő 18 foglalattal a felső oldalon.

Ezt követően a DIL aljzatokat a helyükre forrasztották, és a vágányokat elvágták közöttük. Megmenthettem volna egy kapcsolatot, ha a 74HC00 14. tűjét ugyanahhoz a sávhoz helyeztem, mint az 5v. Csak akkor vágtam el a vágányokat, amikor biztos voltam benne, hogy azoknak kell lenniük, miközben forrasztottam az összekötő vezetékeket. Azonban a dolgok nem mindig a tervek szerint alakulnak, eredetileg az előző kenyértábláról készített szalagdeszkát terveztem az Arduino 2., 3. és 7. csapja segítségével, de ezek nem illeszkednek a szalaglapon lévő lyukakhoz, ezért 18., 31. és 37. csap. Innen származnak a 31. és a 37. táblámon található linkek. Lehet, hogy vajon miért nem használtam fel az egyik fel nem használt tűt (23, 24 stb.) az órához, ez azért van, mert nem támogatják megszakítja, ezért a 18, 19, 20 vagy 21 tűt kellett használni. Szerencsére ez a 4 csap egy vonalban van a szalaglap lyukaival, és mindent tömörít. A 18 -as csap is a legtávolabb van az összes többi vezetéktől.

Azt is észreveheti, hogy a kész táblám nem pontosan ugyanaz, mint a diagramom. Ez azért van, mert valaki más diagramját követtem. Ezért a 74HC00 csatlakozói. Hozzáadtam egy tápellátás LED -et és további 2 soros aljzatot a Gnd és az 5v számára, valamint további pár kondenzátort.

Csatlakoztathattam volna a 2 adatcsatlakozót, de ez sokkal több vezetéket jelentene a táblán. Ehhez ideiglenes intézkedésként 8 összekötő vezetéket választottam.

A 6522 A és B portok aljzatai forrasztva vannak a pályákhoz, így a LED -jelzők könnyen behelyezhetők.

Most sokkal kevesebb vezeték van, mint a kenyértáblás változatban.

2. lépés: Programozási elmélet

Programozáselmélet
Programozáselmélet

A 6522 két I/O porttal, valamint számos más funkcióval rendelkezik, de az A és B port könnyen elérhető. Ahhoz, hogy adatokat küldjön a porton, az adatirány -nyilvántartást (DDR) ennek megfelelően kell beállítani, és az adatokat magának a portnak kell elküldeni.

A fenti beállításokkal a 6522 E000 dollárnál található.

A B porton történő adatkimenethez a DDR $ E002 értéken $ FF értékre van állítva (255 - minden kimenet), és az adatokat E000 $ értékre küldi.

Az A porton történő adatkimenethez a DDR $ E003 értéken $ FF értékre van állítva (255 - minden kimenet), és az adatokat $ E001 értékre küldi.

Az alábbi kód betölti a $ FF -et a 6502 A regiszterbe, és a DDR B -be írja E002 dolláron. Ezután 55 dollárt tölt be, és írja az ORB -nak. A kódot elforgatják ($ AA), és az ORB -nak írják. A program 1005 dollárral ugrik vissza, és végtelenül ismétlődik. MEGJEGYZÉS: A DDR -t csak egyszer kell inicializálni.

Cím Hexdump Bontás

$ 1000 a9 ff LDA #$ ff $ 1002 8d 02 e0 STA $ e002 $ 1005 a9 55 LDA #$ 55 $ 1007 8d 00 e0 STA $ e000 $ 100a 6a ROR A $ 100b 8d 00 e0 STA $ e000 $ 100e 4c 05 10 JMP $ 1005

A $ 55 bináris értéke 010101010, az AA dollár pedig 10101010, ami miatt a LED -ek váltakozva 4 be, 4 ki.

Gyors és piszkos javítás:

Cserélje ki a 74HC00 (Quad 2 bemenetű NAND Gate) egy 74HC08 (Quad 2 bemenet ÉS kapu) elemre, és a 6522 most 6000 dollárnál található. Ez a 6502 címzett memóriájának felső 32K -ról az alsó 32K -ra mozgatja.

3. lépés: Az Arduino program és kimenet

Az Arduino program és kimenet
Az Arduino program és kimenet

Mivel a 6502 -nek nincs RAM -ja, amelyből olvashat, az Arduino szolgáltatja a programot az olvasáshoz. Amikor óraimpulzust észlel a 18. érintkezőn, az Arduino a programadatokat az adatbuszra helyezi (Arduino 39., 41., 43., 45., 47., 49., 51. és 53. tű). A 6502 saját címeket állít elő, amelyeket csak az Arduino figyel a páros számozott 22–52 -es tűkön. Az Arduino az óraimpulzust is szolgáltatja a 37 -es tűn. A 6502 -es vonal/vonal a 31 -es tűn figyelhető meg.

Mivel az Arduino szolgáltatja az adatokat, eddig nem sikerült elérni, hogy a 6502 bemenjen adatokat a VIA -tól (hacsak nem tudja jobban).

Az Arduino program az alábbiakban található, a minta kimenet pedig a soros monitor felett.

4. lépés: Következtetés

Ismét megpróbáltam megmutatni, hogyan kell minimális "6502 számítógépet" beállítani.

Ebben a szakaszban a 6502 még mindig az Arduino -ra támaszkodik, hogy programot és óraimpulzust adjon neki a működéshez.

Ez egy lépéssel tovább, mint amikor a kenyértáblára állítottam.

Ezúttal nem a 74HC373 -at használtam, hanem a bonyolultabb 6522 -et az adatkimenetek rögzítésére. A 6522 két I/O porttal is rendelkezik.

Szándékomban áll továbbvinni ezt a projektet egy SRAM vagy egy EEPROM telepítésével.

Ajánlott: