Obsah:
- Zásoby
- Krok 1: Obvodová deska
- Krok 2: Teorie programování
- Krok 3: Program a výstup Arduino
- Krok 4: Závěr
Video: Minimální počítač 6502 a 6522 (s Arduino MEGA) Část 2: 4 kroky
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:21
V návaznosti na svůj předchozí Instructable jsem nyní položil 6502 na pásovou desku a přidal 6522 Versatile Interface Adapter (VIA). Opět používám verzi 6522 WDC, protože se perfektně hodí k jejich 6502. Nejen, že tyto nové čipy spotřebují mnohem méně energie než původní verze MOS, ale lze je provozovat i při nižších rychlostech nebo dokonce prošlápnout program bez problémů.
Program Arduino původně napsal Ben Eater (který má mnoho videí na YouTube) a byl jsem upraven tak, abych dosáhl tohoto výsledku.
Zásoby
1 x procesor WDC W65C02
1 x univerzální adaptér WDC W65C22
1 x 74HC00N IC (Quad 2-input NAND gate) nebo podobný
1 x 10 cm široká (35 řádků) Pásová deska
2 x 40 pin DIL zásuvky
1 x 14 pin DIL zásuvka
Kolíky záhlaví desky plošných spojů 2,54 mm
Zásuvky konektoru desky plošných spojů 2,54 mm
1 x 12 mm momentální hmatový tlačítkový spínač SPST namontovaný na desce plošných spojů nebo podobný
1 x 1K odpor
1 x 3K3 odpor
2 x 0,1 uF keramické kondenzátory
1 x 8 Way Water Light Marquee 5 mm červená LED
Různě barevný vodič pro připojení
8 propojovacích kabelů muž - muž
Krok 1: Obvodová deska
Deska s obvody je poměrně kompaktní a spodní strana se zapojuje přímo do Arduino MEGA. Aby se toho dosáhlo, jsou kolíky zasunuty co nejdále do plastových držáků, než jsou připájeny ke spodní straně desky. K tomu mohly být použity delší kolíky, ale standardní kolíky znamenají, že deska pevně spočívá na horní části MEGA.
Seřadil jsem obvody 6502 a 6522 tak, aby využívaly kolejové pásy k připojení k MEGA. Existuje také několik připojení pro 6502 skrytých pod integrovaným obvodem. Při výrobě desky bylo nejprve nutné uříznout 16 pásků, které se budou připojovat k dvojité řadě zásuvek Arduina. Vnější 2 nemusí být řezány, protože 5v a Gnd jsou na obou stranách. Dále pájíme 2 řady po 18 pinech na spodní straně a 2 řady po 18 objímkách na horní straně.
Poté byly zásuvky DIL připájeny na místo a mezi nimi byly proříznuty koleje. Mohl jsem uložit připojení umístěním kolíku 14 74HC00 na stejnou stopu jako 5v. Stopy jsem prořezal, jen když jsem si byl jistý, že je třeba, když jsem pájel spojovací vodiče. Věci však nejdou vždy podle plánu, původně jsem pásovou desku navrhl z předchozího chlebového prkénka pomocí kolíků 2, 3 a 7 Arduina, ale ty se neshodují s otvory v pásové desce, takže jsem musel použít piny 18, 31 a 37. Proto odkazy na mé desce na 31 a 37. Možná se divíte, proč jsem nepoužil jeden z nepoužitých kolíků (23, 24 atd.) pro hodiny, je to proto, že nepodporují přerušuje, takže jsem musel použít kolíky 18, 19, 20 nebo 21, které ano. Naštěstí tyto 4 kolíky jsou v souladu s otvory v desce pásu a udržují vše kompaktní. Kolík 18 je také nejdále od všech ostatních vodičů.
Můžete si také všimnout, že moje dokončená deska není úplně stejná jako moje schéma. Důvodem je, že jsem sledoval diagram někoho jiného. Proto připojení k 74HC00. Také jsem přidal LED napájení a další 2 řady zásuvek pro GND a 5V a několik dalších kondenzátorů.
Mohl jsem připojit 2 datové zásuvky, ale to by znamenalo mnohem více vodičů protínajících desku. Jako dočasné opatření jsem se rozhodl pro 8 propojovacích vodičů.
Porty 6522 A a B mají k dráhám připájené zásuvky, takže lze snadno zasunout značky LED.
Nyní je mnohem méně vodičů, než bylo ve verzi s chlebem.
Krok 2: Teorie programování
6522 má dva I/O porty a mnoho dalších funkcí, ale porty A a B jsou snadno přístupné. K výstupu dat na port je třeba odpovídajícím způsobem nastavit Data Direction Register (DDR) a data odeslat na samotný port.
S výše uvedeným nastavením se 6522 nachází na E000 $.
Pro výstup dat na port B je DDR na $ E002 nastaveno na $ FF (255 - všechny výstupy) a data jsou odesílána na $ E000.
Pro výstup dat na port A je DDR na $ E003 nastaveno na $ FF (255 - všechny výstupy) a data jsou odesílána na $ E001.
Níže uvedený kód načte $ FF do registru 6502 A a zapíše jej do DDR B na $ E002. Poté načte 55 $ a zapíše jej do ORB. Kód se otočí (dává $ AA) a zapíše se do ORB. Program skočí zpět na 1005 $ a opakuje se donekonečna. POZNÁMKA: DDR je třeba inicializovat pouze jednou.
Rozebrání 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 ŽMP $ 1005
55 $ v binárním provedení je 010101010 a $ AA je 10101010, což způsobí, že se diody LED střídavě rozsvítí, 4 zhasnou.
Rychlá a špinavá oprava:
Vyměňte 74HC00 (Quad 2 vstup NAND Gate) za 74HC08 (Quad 2 vstup AND Gate) a 6522 se nyní nachází na 6000 $ místo E000 $. Tím se přesune z horních 32K do dolních 32K adresovatelné paměti 6502.
Krok 3: Program a výstup Arduino
Protože 6502 nemá žádnou RAM, ze které by bylo možné číst, Arduino dodává program, který má číst. Když je na pinu 18 detekován hodinový impuls, Arduino vloží programová data na datovou sběrnici (piny Arduino 39, 41, 43, 45, 47, 49, 51 a 53). 6502 generuje vlastní adresy, které jsou sledovány pouze Arduinem na sudých pinech 22 až 52. Arduino také dodává hodinový impuls na pinu 37. Linka R/W 6502 je monitorována na pinu 31.
Jelikož Arduino dodává data, doposud nebylo možné přimět 6502 ke vstupu dat z VIA (pokud to nevíte lépe).
Program Arduino je níže a ukázkový výstup ze sériového monitoru je nahoře.
Krok 4: Závěr
Znovu jsem se pokusil ukázat, jak nastavit minimální „počítač 6502“.
V této fázi se 6502 stále spoléhá na to, že mu Arduino dodá program a hodinový impuls, aby mohl běžet.
Je to o krok dál, než když jsem to nastavil na chlebové desce.
Tentokrát jsem nepoužil 74HC373, ale složitější 6522 k zablokování datových výstupů. Také 6522 má dva I/O porty.
Mám v úmyslu posunout tento projekt dále instalací nějaké SRAM nebo EEPROM.
Doporučuje:
Pracovní Geigerovo počítadlo W/ minimální díly: 4 kroky (s obrázky)
Pracovní Geigerovo počítadlo s minimem součástí: Zde je, pokud vím, nejjednodušší fungující Geigerovo počítadlo, které můžete postavit. Ten používá ruskou trubku SMB-20 Geiger vyrobenou v Rusku, poháněnou vysokonapěťovým zesilovacím obvodem vyloupeným z elektronické mušky. Detekuje částice beta a hraje
6502 Minimální počítač (s Arduino MEGA) Část 3: 7 kroků
Minimální počítač 6502 (s Arduino MEGA) Část 3: Pokračujeme dále, nyní jsem na hlavní desku přidal Octal Latch, 8 obdélníkových LED a pole odporu 220 Ohm. Mezi společným kolíkem pole a zemí je také propojka, takže LED diody lze vypnout. Brána NAND 74HC00 h
6502 Minimální počítač (s Arduino MEGA) Část 1: 7 kroků
Minimální počítač 6502 (s Arduino MEGA) Část 1: Mikroprocesor 6502 se poprvé objevil v roce 1975 a byl navržen malým týmem vedeným Chuckem Peddleem pro technologii MOS. Tehdy byl používán ve video konzolách a domácích počítačích včetně Atari, Apple II, Nintendo Entertainment System, BBC Micr
Jak vytvořit minimální konektor OTG: 4 kroky (s obrázky)
Jak vytvořit minimální konektor OTG: V tomto elektronickém projektu DIY uvidíte, jak vytvořit minimální konektor OTG za velmi nízkou cenu. Konektor OTG je velmi praktický nástroj, který usnadňuje připojení telefonu Android k rozšíření disku U a připojení myši. Můžete si udělat
Jak zajistit, aby váš notebook šetřil energii baterie s minimální ztrátou výkonu: 4 kroky
Jak zajistit, aby váš notebook šetřil energii baterie s minimální ztrátou výkonu: Kdo říká, že váš notebook musí trpět pomalým výkonem, aby ušetřil trochu energie? Jak moc se změní váš výkon nebo životnost baterie, závisí na stáří vašeho notebooku, stáří baterie a dalších programech a nastaveních. Zde je několik jednoduchých kroků, které vám pomohou zvýšit