Obsah:
- Zásoby
- Krok 1: Koncept
- Krok 2: Požadavky
- Krok 3: Dát to dohromady
- Krok 4: Testování obvodu
- Krok 5: Další krok
- Krok 6: Program
- Krok 7: Závěr
Video: 6502 Minimální počítač (s Arduino MEGA) Část 1: 7 kroků
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:21
Mikroprocesor 6502 se poprvé objevil v roce 1975 a byl navržen malým týmem vedeným Chuckem Peddleem pro technologii MOS. Tehdy se používal ve video konzolách a domácích počítačích včetně Atari, Apple II, Nintendo Entertainment System, BBC Micro, Commodore VIC20 a 64. V té době patřil k nejlevnějším na trhu. Nikdy to opravdu nezmizelo a nyní ho používají fandové a profesionálové pro mnoho aplikací.
Používám verzi W65C02S6TPG-14, kterou vyrobila společnost Western Design Center a spotřebovává desetkrát méně energie než originál. Je speciální tím, že nemusí běžet na 1 MHz jako původní čip. Může běžet mnohem pomaleji nebo může být použit k jednomu kroku v programu a dokonce se zvýšil až na 14 MHz. Datový list čipu vysvětluje jeho možnosti. Ostatní čipy 6502 tuto schopnost nemají a nepoběží tímto způsobem. Čipy jsou v současné době k dispozici na Ebay a dalších zdrojích.
Zásoby
Všechny použité díly jsou aktuálně dostupné na Ebay, AliExpress a dalších.
Krok 1: Koncept
Inspiroval jsem se Benem Eaterem, který na YouTube vytvořil sérii videí o 6502 a mnoha dalších aspektech stavby počítačů a obvodů. Program původně napsal on a já jsem upravil tento a některé jeho návrhy, abych přišel s tímto Instructable. Další osobou, která mě inspirovala, byl Andrew Jacobs, který má sekci na GitHubu, kde používá PIC micro k ovládání svého 6502.
Stejně jako Ben používám Arduino MEGA k monitorování 6502. Také používám MEGA k poskytování hodinového signálu na rozdíl od Bena. V současné době nepoužívám žádné EEPROM ani RAM.
Krok 2: Požadavky
Chcete -li vytvořit tento „počítač“, seznam položek je následující:
1 x Arduino MEGA
1 x Western Design Center W65C02S6TPG-14
1 x 74HC00N IC (Quad 2-input NAND gate) nebo podobný
1 x 74HC373N IC (průhledná západka typu Octal D) nebo podobný
2 x 830 otvorů na chleba (1 na špetku)
Různé Dupont samčí - samčí vodiče a propojovací vodiče
2 x LED (použil jsem 5 mm modrou, protože se můžete dostat pryč bez rezistorů)
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
2 x 0,1 uF keramické kondenzátory
1 x 8 Way Water Light Marquee 5 mm červená LED (viz výše) nebo 8 LED a odpory
POZNÁMKA: Pokud dostanete nepájenou soupravu, můžete diody LED vložit nesprávně, takže jsou běžnou katodou. Připevňuji muškačku (místo špendlíku), aby se mohla snadno připojit jinam. VCC se nyní stává Ground. LED diody můžete samozřejmě otočit (na smontovaném předmětu) a znovu je pájet, ale je to velká chyba! Soupravy jsou v současné době k dispozici na AliExpress.
Krok 3: Dát to dohromady
Zjistil jsem, že je jednodušší použít nové kabely DuPont, které nebyly odděleny od pásu karet, pro sběrnice adres a dat.
Připojte kolík 9 (A0) 6502 ke kolíku 52 MEGA, pin 10 (A1) z 6502 na pin 50 atd …
dokud
Připojte kolík 25 (A15) 6502 ke kolíku 22 MEGA.
Zatím 16 spojení.
Rovněž
Připojte kolík 26 (D7) 6502 ke kolíku 39 MEGA, pin 27 (D6) z 6502 na pin 41 atd …
dokud
Připojte pin 33 (D0) 6502 k pinu 53 MEGA.
8 dalších připojení.
Připojte pin 8 (VDD) k 5v na MEGA.
Zde může být užitečný kondenzátor 0,1 uF připojený od pinu 8 k Gnd desky chleba, ale není nutný.
Připojte pin 21 (VSS) ke Gnd na MEGA.
Kolíky 2, 4, 6, 36 a 38 lze připnout na 5v
Připojte pin 37 (hodiny) k pinům 2 a 7 k MEGA.
Připojte kolík 34 (RWB) ke kolíku 3 MEGA.
Připojte pin 40 (Reset) podle schématu výše.
Krok 4: Testování obvodu
V této fázi bude fungovat 6502 a lze použít program1. Používáte -li 8 -way markýzu (jak je uvedeno výše), může být vložena přímo do prkénka a propojovací kabel připojen k zemi, nebo můžete použít 8 LED a odpory. LED diody zobrazí, co je na datové sběrnici.
V této fázi by bylo také vhodné nastavit zpoždění ve smyčce () na 500 nebo více, aby bylo možné sledovat, co se děje.
Na sériovém monitoru byste měli získat podobný výstup, jako je výše. Po stisknutí tlačítka Reset procesor projde 7 cykly a poté vyhledá spuštění programu v místech $ FFFC a $ FFFD. Protože pro 6502 neexistují žádné fyzické adresy ke čtení, musíme je zadat z MEGA.
Ve výše uvedeném výstupu 6502 čte $ FFFC a $ FFFD a dostává $ 00 a $ 10 (Low byte, High byte), což je začátek programu na $ 1000. Procesor poté začne spouštět program na místě 1 000 $ (jak je uvedeno výše). V tomto případě to čte $ A9 a $ 55, tj. LDA#$ 55 (Vložte 85 do akumulátoru). Protože opět neexistuje umístění fyzické paměti, MEGA simuluje to, co se čte z datové sběrnice.
55 $ (85) dává binární vzor 01010101 a při otočení o 1 bit doleva dává $ AA (170) 10101010.
Program ukazuje, že procesor pracuje správně, ale brzy začne být trochu nudný, takže k další části.
Krok 5: Další krok
„Hromada špaget“výše je pravděpodobně něco jako to, co budete mít po této fázi.
Dále musíte na integrovanou desku přidat integrované obvody 74HC373N a 74HC00N.
Bohužel kolíky 373 nejsou v souladu s datovou sběrnicí, takže budou muset být připojeny pomocí vodičů.
Připojte 5v na pin 20.
Připojte uzemnění na pin 10.
Připojte kolík 33 (D0) 6502 ke kolíku 3 (D0) 74HC373N
a podobně s kolíky D1 až D7.
Výstupy jsou Q0 až Q7 a tyto budou vyžadovat připojení k LED diodám nebo jednotlivým LED diodám a rezistorům.
S 74HC00 jsou potřeba pouze 2 jeho brány
Připojte 5v na pin 14.
Připojte uzemnění na pin 7.
Připojte kolík 17 (A8) 6502 ke kolíku 1 (1A) 74HC00
Připojte kolík 25 (A15) 6502 ke kolíku 2 (1B) 74HC00
Připojte kolík 34 (R/W) 6502 k pinu 5 (2B) 74HC00
Připojte pin 3 (1Y) na 74HC00 ke kolíku 4 (2A) na 74HC00
Připojte kolík 6 (2Y) 74HC00 k pinu 11 (LE) 74HC373N
Připojte pin 11 (LE) 74HC373N ke kolíku 1 (OE) 74HC373N
Můžete připojit modrou LED k 1Y a uzemnění, stejně jako 2Y k zemi, to bude indikovat, kdy je brána aktivní.
Nakonec změňte řádek v proceduře onClock z programu1 na program2
setDataPins (program2 [offset]);
Krok 6: Program
Program 6502-Monitor obsahuje dvě rutiny 6502 popsané výše.
Program je stále ve vývoji a je trochu neuspořádaný.
Při spuštění programu2 může být zpoždění ve smyčce () 50 nebo méně a dokonce odstraněno úplně. Komentování řádků Serial.print () také způsobí, že 6502 poběží rychleji. Odpojením kolíku 1 (OE) 373 od kolíku 11 (LE) získáte různé výsledky. Odpojením pinů 1 a 11 na 373 od bran NAND můžete vidět, co je na datové sběrnici v každém hodinovém cyklu.
Možná budete muset spojit OE se zemí, než abyste ji nechali plovoucí, protože 8 výstupních linek je deaktivováno, pokud se tento pin dostane vysoko. Když je pin LE vysoký, výstupní kolíky jsou stejné jako vstupy. Pokud vezmeme nízký pin LE, zajistí výstupy, tj. Pokud se změní vstupní piny, výstupy zůstanou stejné.
Snažil jsem se udržet program co nejjednodušší, aby byl srozumitelnější.
Experimentování s časovými zpožděními vám umožní přesně sledovat, co 6502 dělá.
Níže jsou uvedeny dva programy (oba běží na adrese 1 000 $) v 6502 Assembler:
program 1
LDA#55 $
NOP
ROL
STA 1010 $
1 000 USD
ROL otočí obsah akumulátoru o jeden bit vlevo, což znamená, že 55 $ se nyní stává $ AA.
Ve strojovém kódu (hex): A9 55 EA 2A 8D 10 10 4C 00 10
program 2
LDA#$ 01
STA 8100 $
ADC#03 USD
STA 8100 $
ŽMP 1005 USD
Ve strojovém kódu (hex): A9 01 8D 00 81 69 03 8D 00 81 4C 05 10
V programu2 je nyní fyzická adresa $ 8100, což je místo, kde je 74HC373 umístěn na adresové sběrnici.
tj. A15 z 6502 je 32768 (8000 $) a A8 je 256 (0100 $) = 33024 (8100 $).
Když tedy 6502 zapisuje na 8 100 $ (STA 8 100 $), R/W 6502 je nízká a data na datové sběrnici 6502 jsou zablokována, když 373 LE klesne. Kvůli bráně NAND 74HC00 jsou signály obráceny.
Na výše uvedeném sítotisku se druhý zápis zvýšil o 3 (ADC#$ 03) - z $ 7F na $ 82.
Ve skutečnosti by pro konkrétní umístění 373 byly použity více než 2 řádky adresové sběrnice. Protože se jedná o jedinou fyzickou adresu z možných 65536, ukazuje, jak funguje adresová sběrnice. Můžete experimentovat s různými adresními piny a umístit je na jiné místo. Samozřejmě budete muset změnit operandy STA na nové umístění. např. Pokud byste použili adresní řádky A15 a A9, adresa by byla 8200 $ (32768 + 512).
Krok 7: Závěr
Pokusil jsem se ukázat, jak snadné je uvést 6502 do provozu.
Nejsem odborník v této oblasti, takže uvítám jakékoli konstruktivní komentáře nebo informace.
Můžete to dále rozvíjet a zajímalo by mě, co jste udělali.
Mám v úmyslu do projektu přidat EEPROM, SRAM a 6522 a v budoucnu jej umístit na pásovou desku.
Doporučuje:
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
Minimální počítač 6502 a 6522 (s Arduino MEGA) Část 2: 4 kroky
Minimální počítač 6502 a 6522 (s Arduino MEGA) Část 2: V návaznosti na můj předchozí Instructable jsem nyní 6502 umístil na páskovou desku a přidal 6522 Versatile Interface Adapter (VIA). Opět používám WDC verzi 6522, protože se perfektně hodí k jejich 6502. Nejen, že tyto nové c
Minimální box zvukových efektů Arduino: 5 kroků
Minimal Arduino Sound Effect Box: Toto je rychlý projekt boxu se zvukovými efekty. Zařízení čte předem nahraný soubor wav z microSD přiřazeného konkrétnímu tlačítku a přehraje jej po stisknutí
Počítač pro systémy RE (část 1 ze 2) (hardware): 5 kroků
Počítač pro systémy RE (část 1 ze 2) (Hardware): Zde vám ukážu, jak jsem vytvořil plně funkční počítač Mini Desktop pro malé systémy obnovitelné energie. Systém RE, který plánuji používat, bude primárně 12voltový systém se 6 nebo 8 golfovými bateriemi a já budu mít 700 wattový invertor
Počítač pro systémy RE (část 2 ze 2) (software): 6 kroků
Počítač pro systémy RE (část 2 ze 2) (software): V první části tohoto instruktážního programu se nachází zde https://www.instructables.com/id/Computer-for-RE-Systems-Part-1-of-2 -Hardware/, přidal jsem veškerý hardware, který jsem chtěl získat dobrý desktopový systém. Nyní pro software, ale před softwarem