Obsah:

Minimálny počítač 6502 a 6522 (s Arduino MEGA), časť 2: 4 kroky
Minimálny počítač 6502 a 6522 (s Arduino MEGA), časť 2: 4 kroky

Video: Minimálny počítač 6502 a 6522 (s Arduino MEGA), časť 2: 4 kroky

Video: Minimálny počítač 6502 a 6522 (s Arduino MEGA), časť 2: 4 kroky
Video: STARY PROCESOR + NOWA KARTA? ❌ | Blackwhite sprawdza Core i5-6600 z kartami z 2020! 2024, November
Anonim
Minimálny počítač 6502 a 6522 (s Arduino MEGA), časť 2
Minimálny počítač 6502 a 6522 (s Arduino MEGA), časť 2

V nadväznosti na môj predchádzajúci Instructable som teraz položil 6502 na pásovú dosku a pridal som univerzálny adaptér rozhrania 6522 (VIA). Opäť používam WDC verziu 6522, pretože sa perfektne hodí k ich 6502. Nielenže tieto nové čipy spotrebúvajú oveľa menej energie ako pôvodné verzie MOS, ale je možné ich prevádzkovať aj pri nižších rýchlostiach alebo dokonca prejsť cez program bez problémov.

Program Arduino pôvodne napísal Ben Eater (ktorý má veľa videí na YouTube) a bol som ním upravený, aby som dosiahol tento výsledok.

Zásoby

1 x procesor WDC W65C02

1 x WDC W65C22 Všestranný adaptér rozhrania

1 x 74HC00N IC (Quad 2-input NAND gate) alebo podobný

1 x 10 cm široký (35 riadkov) Odizolovacia doska

2 x 40 kolíkové zásuvky DIL

1 x 14 -pinová zásuvka DIL

Kolíky záhlavia DPS 2,54 mm

Zásuvky záhlavia na DPS 2,54 mm

1 x 12 mm momentálny hmatový tlačidlový spínač SPST namontovaný na PCB alebo podobný

1 x 1K odpor

1 x 3K3 odpor

2 x 0,1 uF keramické kondenzátory

1 x 8 -cestná vodná svetelná značka 5 mm červená LED

Rôzne farebné vodiče na pripojenie

8 prepojovacích káblov mužského a mužského pohlavia

Krok 1: Obvodová doska

Obvodová doska
Obvodová doska
Obvodová doska
Obvodová doska

Doska plošných spojov je pomerne kompaktná a spodná strana sa zapája priamo do Arduino MEGA. Aby sa to dosiahlo, kolíky sa pred spájkovaním so spodnou stranou dosky zatlačia čo najďalej do plastových držiakov. Na to mohli byť použité dlhšie kolíky, ale štandardné kolíky znamenajú, že doska pevne spočíva na vrchu MEGA.

Zostavil som integrované obvody 6502 a 6522 tak, aby na pripojenie k MEGA využívali pásy pásovej dosky. Existuje aj niekoľko spojení pre 6502 skrytých pod integrovaným obvodom. Pri výrobe dosky bolo potrebné najskôr odrezať 16 prúžkov, ktoré sa budú spájať s dvojitým radom zásuviek Arduina. Vonkajšie 2 nie je potrebné rezať, pretože 5v a Gnd sú na oboch stranách. Ďalej spájkujte v 2 radoch 18 kolíkov na spodnej strane a 2 radoch 18 zásuviek na hornej strane.

Potom boli zásuvky DIL spájkované na mieste a medzi nimi boli prerezané koľaje. Mohol som uložiť pripojenie umiestnením kolíka 14 74HC00 na rovnakú stopu ako 5v. Koľaje som prerezával, len keď som si bol istý, že musia byť, zatiaľ čo som spájkoval spájacie vodiče. Veci však nejdú vždy podľa plánu, pôvodne som pásovú dosku navrhol z predchádzajúcej dosky na pečenie pomocou kolíkov 2, 3 a 7 Arduina, ktoré sa však nezhodujú s otvormi v pásovej doske, takže som musel použiť piny 18, 31 a 37. Preto tie odkazy na mojej doske 31 a 37. Možno sa čudujete, prečo som na hodiny nepoužil jeden z nepoužitých pinov (23, 24 atď.), pretože nepodporujú prerušuje, takže som musel použiť kolíky 18, 19, 20 alebo 21, ktoré áno. Našťastie tieto 4 kolíky zodpovedajú otvorom v doske a udržujú všetko kompaktné. Kolík 18 je tiež najďalej od všetkých ostatných vodičov.

Môžete si tiež všimnúť, že moja dokončená doska nie je úplne rovnaká ako môj diagram. Dôvodom je, že som sledoval diagram niekoho iného. Preto sú pripojenia k 74HC00. Tiež som pridal výkonovú LED a ďalšie 2 rady zásuviek pre GND a 5V, ako aj niekoľko ďalších kondenzátorov.

Mohol som pripojiť 2 dátové zásuvky, ale to by znamenalo oveľa viac drôtov prechádzajúcich po doske. Ako dočasné opatrenie som sa rozhodol pre 8 prepojovacích káblov.

Porty 6522 A a B majú na svojich koľajniciach spájkované zásuvky, aby sa dali ľahko vložiť značky LED.

Teraz je oveľa menej drôtov, ako bolo vo verzii s chlebom.

Krok 2: Teória programovania

Teória programovania
Teória programovania

6522 má dva I/O porty a mnoho ďalších funkcií, ale porty A a B sú ľahko dostupné. Na výstup údajov na porte je potrebné zodpovedajúcim spôsobom nastaviť register DDR (Data Direction Register) a odosielať údaje na samotný port.

Po vyššie uvedenom nastavení sa zariadenie 6522 nachádza na úrovni E000 $.

Na výstup údajov na porte B je DDR na $ E002 nastavená na $ FF (255 - všetky výstupy) a dáta sú odoslané na $ E000.

Na výstup údajov na porte A je DDR na $ E003 nastavená na $ FF (255 - všetky výstupy) a údaje sú odoslané na $ E001.

Nasledujúci kód načíta $ FF do registra 6502 A a zapíše ho do DDR B za $ E002. Potom sa načíta 55 dolárov a zapíše sa do ORB. Kód sa otočí (čo dáva $ AA) a zapíše sa do ORB. Program skočí späť na 1005 dolárov a opakuje sa donekonečna. POZNÁMKA: DDR je potrebné inicializovať iba raz.

Demontáž adresy Hexdump

$ 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

55 dolárov v binárnom čísle je 010101010 a AA je 10101010, čo spôsobuje, že sa diódy LED striedavo zapínajú a 4 vypínajú.

Rýchla a špinavá oprava:

Vymeňte 74HC00 (vstupná brána NAND Quad 2 za vstup) za 74HC08 (vstup a hradlo Quad 2 a brána) a 6522 sa teraz nachádza na úrovni 6 000 dolárov namiesto E 000 dolárov. To ho presunie z horných 32 K do dolných 32 K adresovateľnej pamäte 6502.

Krok 3: Program a výstup Arduino

Program a výstup Arduino
Program a výstup Arduino

Pretože 6502 nemá pamäť RAM na čítanie, Arduino dodáva program na čítanie. Keď je na pine 18 detekovaný hodinový impulz, Arduino vloží programové dáta do dátovej zbernice (piny Arduino 39, 41, 43, 45, 47, 49, 51 a 53). 6502 generuje svoje vlastné adresy, ktoré Arduino monitoruje iba na párnych kolíkoch 22 až 52. Arduino tiež dodáva hodinový impulz na pine 37. Riadok R/W 6502 je monitorovaný na pine 31.

Pretože Arduino dodáva údaje, doteraz nebolo možné dosiahnuť, aby 6502 zadával údaje z VIA (pokiaľ to nepoznáte lepšie).

Program Arduino je nižšie a hore je ukážkový výstup zo sériového monitora.

Krok 4: Záver

Opäť som sa pokúsil ukázať, ako nastaviť minimálny „počítač 6502“.

V tejto fáze sa 6502 stále spolieha na to, že mu Arduino dodá program a hodinový impulz, aby mohol fungovať.

Je to o krok ďalej, ako keď som to postavil na dosku chleba.

Tentoraz som nepoužil 74HC373, ale zložitejší 6522 na zablokovanie dátových výstupov. 6522 má tiež dva I/O porty.

Mám v úmysle posunúť tento projekt ďalej inštaláciou nejakej pamäte SRAM alebo EEPROM.

Odporúča: