Мазмұны:

6502 Минималды компьютер (Arduino MEGA көмегімен) 1 бөлім: 7 қадам
6502 Минималды компьютер (Arduino MEGA көмегімен) 1 бөлім: 7 қадам

Бейне: 6502 Минималды компьютер (Arduino MEGA көмегімен) 1 бөлім: 7 қадам

Бейне: 6502 Минималды компьютер (Arduino MEGA көмегімен) 1 бөлім: 7 қадам
Бейне: История CPU: MOS 6502 2024, Қараша
Anonim
6502 Минималды компьютер (Arduino MEGA көмегімен) 1 -бөлім
6502 Минималды компьютер (Arduino MEGA көмегімен) 1 -бөлім

6502 микропроцессоры алғаш рет 1975 жылы пайда болды және оны MOS технологиясына арналған Чак Педдл басқарған шағын топ әзірледі. Ол кезде ол видео консольдарда және үй компьютерлерінде, соның ішінде Atari, Apple II, Nintendo Entertainment System, BBC Micro, Commodore VIC20 және 64 -те қолданылған. Сол кезде бұл нарықтағы ең арзан бірі болды. Ол ешқашан жойылған жоқ және қазір оны әуесқойлар мен кәсіпқойлар көптеген қосымшалар үшін қолданады.

Мен қолданатын нұсқа-бұл W65C02S6TPG-14, оны Батыс дизайн орталығы жасайды және түпнұсқадан он есе аз қуат жұмсайды. Ерекшелігі, ол бастапқы чип сияқты 1 МГц жиілігінде жұмыс істемейді. Ол әлдеқайда баяу жұмыс істей алады немесе оны бағдарламада бір қадамға қолдануға болады, тіпті 14 МГц -ке дейін кеңейтуге болады. Чиптің мәліметтер парағы оның мүмкіндіктерін түсіндіреді. Басқа 6502 чиптерінде мұндай мүмкіндік жоқ және ол осылай жұмыс істемейді. Қазіргі уақытта чиптер Ebay -де және басқа көздерде қол жетімді.

Жабдықтар

Барлық қолданылатын бөлшектер қазіргі уақытта Ebay, AliExpress және басқаларында қол жетімді.

1 -қадам: Тұжырымдама

Мен шабытымды YouTube -те 6502 және компьютерлер мен схемаларды құрудың басқа да көптеген аспектілері туралы бейнеклиптер шығарған Бен Итерден алдым. Бағдарламаны бастапқыда ол жазған, мен осы нұсқаулықты ойлап табу үшін оны және оның кейбір дизайнын өзгерттім. Мені шабыттандырған тағы бір адам - Эндрю Джейкобс, ол GitHub бөлімінде 6502 басқару үшін PIC микрофонын пайдаланады.

Бен сияқты, мен 6502 мониторингі үшін Arduino MEGA қолданамын. Мен Беннен айырмашылығы сағат сигналын беру үшін MEGA қолданамын. Қазіргі уақытта мен EEPROM немесе жедел жады қолданбаймын.

2 -қадам: талаптар

Талаптар
Талаптар

Бұл «компьютерді» құру үшін элементтер тізімі келесідей:

1 x Arduino MEGA

1 x Батыс дизайн орталығы W65C02S6TPG-14

1 x 74HC00N IC (2 кірісті NAND қақпасы) немесе ұқсас

1 x 74HC373N IC (сегіздік сегіздік мөлдір ысырма) немесе ұқсас

2 х 830 тесік нан тақтасы (1 шымшым)

Әр түрлі Дюпон еркек - еркек сымдары мен байланыстырушы сымдар

2 x жарық диоды (мен 5мм көк түсті қолдандым, себебі резисторсыз құтыла аласыз)

1 x 12 мм лездік тактильді батырмалы қосқыш PCB орнатылған SPST немесе ұқсас

1 x 1K резистор

2 x 0,1 uF керамикалық конденсаторлар

1 х 8 жолды су жарығы 5 мм қызыл жарықдиодты (жоғарыдағыдай) немесе 8 жарықдиодты және резистор

ЕСКЕРТПЕ: Егер сіз сатылмаған жинақты алсаңыз, светодиодтарды катодты дұрыс орналастыра аласыз. Мен басқа жерге оңай қосылу үшін ұшты сымды (түйреуіштің орнына) бекітемін. VCC енді жерге айналады. Сіз, әрине, жарық диодты айналдыра аласыз (жиналған затқа) және оларды қайта дәнекерлеуге болады, бірақ бұл өте жақсы! Жинақтар қазіргі уақытта AliExpress -те бар.

3 -қадам: оны біріктіру

Оны біріктіру
Оны біріктіру
Оны біріктіру
Оны біріктіру

Мен адрестер мен деректер шиналары үшін таспасынан бөлінбеген жаңа DuPont сымдарын қолдануды жеңілдеттім.

6502 9 (A0) штырын MEGA 52 штырына қосыңыз, 6502 -нің 10 (A1) штыры 50 -ге дейін және т.б.

дейін

6502 25 (A15) штырын MEGA 22 істігіне жалғаңыз.

Әзірге 16 байланыс.

сияқты

6502 ұяшығының 26 (D7) штырын MEGA 39 штырына жалғаңыз, 6502 -нің 27 (D6) штыры 41 -ге дейін және т.б.

дейін

6502 33 (D0) штырын MEGA 53 штырына жалғаңыз.

Тағы 8 байланыс.

8 -істікті (VDD) MEGA -дегі 5в -ке қосыңыз.

Нан тақтасының 8 -ші нүктесінен Gnd -ге қосылған 0,1uF конденсатор мұнда пайдалы болуы мүмкін, бірақ қажет емес.

21 -пинді (VSS) GEG -ке MEGA -ға қосыңыз.

2, 4, 6, 36 және 38 түйреуіштерді 5в -ке байлауға болады

37 -істікті (Сағат) MEGA -ның 2 -ші және 7 -ші түйреуішіне қосыңыз.

34 -істікті (RWB) MEGA -ның 3 -ші штырына жалғаңыз.

40 -түйреуішті (қалпына келтіру) жоғарыдағы диаграммаға қосыңыз.

4 -қадам: схеманы тексеру

Циклды тексеру
Циклды тексеру

Бұл кезеңде 6502 жұмыс істейді және бағдарламаны 1 қолдануға болады. Егер сіз 8 жақтауды қолдансаңыз (жоғарыда көрсетілгендей), оны тікелей тақтаға және ұшты жерге қосуға болады немесе 8 жарықдиодты және резисторды қолдануға болады. Жарықдиодты деректер шинасында не бар екенін көрсетеді.

Бұл кезеңде Loop () кешігуін 500 немесе одан да көп етіп, не болып жатқанын қадағалау жақсы болар еді.

Сіз сериялық мониторда жоғарыдағыдай шығуды алуыңыз керек. Қалпына келтіру түймесін басқан кезде процессор 7 циклден өтеді, содан кейін $ FFFC және $ FFFD мекен -жайларында бағдарламаның басталуын іздейді. 6502 оқу үшін физикалық мекен -жайлар болмағандықтан, біз оларды MEGA -дан беруіміз керек.

Жоғарыда келтірілген шығарылымда 6502 $ FFFC және $ FFFD оқиды және бағдарламаның басталуы $ 1000 мен $ 10 және $ 10 (төмен байт, жоғары байт) алады. Содан кейін процессор бағдарламаны $ 1000 орнында орындай бастайды (жоғарыдағыдай). Бұл жағдайда ол $ A9 мен $ 55, яғни LDA#$ 55 деп жазады (аккумуляторға 85 жүктеу). Жадтың физикалық орны жоқ болғандықтан, MEGA деректер шинасынан оқылатынды модельдейді.

$ 55 (85) 01010101 екілік үлгісін береді және 1 бит солға бұрылғанда $ AA (170) 10101010 береді.

Бағдарлама процессордың дұрыс жұмыс жасайтынын көрсетеді, бірақ көп ұзамай жалықтырады, келесі бөлімге өтіңіз.

5 -қадам: Келесі қадам

Келесі қадам
Келесі қадам
Келесі қадам
Келесі қадам

Жоғарыдағы «спагетти үйіндісі», мүмкін, осы кезеңнен кейін сізде болатын нәрсе сияқты.

Әрі қарай, 74HC373N және 74HC00N IC -лерін тақтаға қосу керек.

Өкінішке орай, 373 түйреуіштері деректер шинасына сәйкес келмейді, сондықтан оларды сыммен байланыстыру қажет болады.

5 вольтты 20 түйреуішке қосыңыз.

Жерді 10 -түйреуішке қосыңыз.

6502 33 (D0) штырын 74HC373N 3 (D0) істігіне жалғаңыз

және сол сияқты D1 - D7 түйреуіштерімен.

Q0 - Q7 - бұл шығыс және олар жарықдиодты маркаларға немесе жеке жарық диодтар мен резисторларға қосылуы қажет.

74HC00 көмегімен оның тек 2 қақпасы қажет

5 вольтты 14 -ші пинге қосыңыз.

Жерді 7 -пинге қосыңыз.

6502 17 (A8) штырын 74HC00 1 (1А) түйреуішіне жалғаңыз

6502 25 (A15) штырын 74HC00 2 (1B) істігіне жалғаңыз

6502 34 (R/W) түйреуішін 74HC00 5 (2B) істігіне қосыңыз

74HC00 3 (1Y) штырын 74HC00 4 (2A) істігіне жалғаңыз

74HC00 6 (2Y) түйреуішін 74HC373N 11 (LE) істігіне жалғаңыз.

74HC373N 11 (LE) түйреуішін 74HC373N 1 істігіне (OE) жалғаңыз.

Сіз көгілдір жарық диодты 1Y -ге және жерге қосуға, сондай -ақ жерге 2 -ге қосуға болады, бұл қақпаның белсенді болғанын көрсетеді.

Соңында onClock процедурасындағы жолды program1 -ден program2 -ге өзгертіңіз

setDataPins (program2 [offset]);

6 -қадам: Бағдарлама

Бағдарлама
Бағдарлама
Бағдарлама
Бағдарлама

6502-Monitor бағдарламасы жоғарыда сипатталған 6502 екі процедураны қамтиды.

Бағдарлама әзірлену үстінде және сәл тәртіпсіз.

Бағдарлама2 іске қосылғанда, циклдегі () кідірістер 50 немесе одан да аз болуы мүмкін, тіпті мүлде жойылады. Serial.print () жолдарына түсініктеме беру 6502 -ді жылдамырақ етеді. 373 -тің 1 -ші штырын (OE) 11 -ші пиннен (LE) ажырату әр түрлі нәтиже береді. NAND қақпаларынан 373 -тің 1 -ші және 11 -ші түйреуіштерін ажырату сізге әрбір шинада деректер шинасында не бар екенін көруге мүмкіндік береді.

Сізге OE -ді қалқымалы емес, жерге байлау қажет болуы мүмкін, себебі егер бұл түйін жоғары көтерілсе, 8 шығыс желісі ажыратылады. LE түйреуіші жоғары болғанда, шығыс түйреуіштер кірістермен бірдей болады. LE түйреуішін төмен түсіру шығыстарды бекітеді, яғни егер кіріс түйреуіштері өзгерсе, шығыстар өзгеріссіз қалады.

Мен түсінікті болу үшін бағдарламаны мүмкіндігінше қарапайым етуге тырыстым.

Уақыттың кешігуіне тәжірибе жасау сізге 6502 не істеп жатқанын дәл бақылауға мүмкіндік береді.

Төменде 6502 Assembler бағдарламасындағы екі бағдарлама (екеуі де $ 1000 мекен -жайында жұмыс істейді):

бағдарлама1

LDA#55 доллар

ЖОҚ

ROL

STA $ 1010

JMP $ 1000

ROL аккумулятордың мазмұнын бір бит солға айналдырады, яғни 55 доллар енді $ AA болады.

Машиналық кодта (он алтылық): A9 55 EA 2A 8D 10 10 4C 00 10

бағдарлама2

LDA#01 доллар

STA $ 8100

ADC#03

STA $ 8100

JMP $ 1005

Машина кодында (он алтылық): A9 01 8D 00 81 69 03 8D 00 81 4C 05 10

2 бағдарламасында қазір $ 8100 физикалық мекен -жайы бар, онда 74HC373 адрестік шинада орналасқан.

яғни 6502 A15 - 32768 ($ 8000) және A8 - 256 ($ 0100) = 33024 ($ 8100).

6502 8100 долларға (STA $ 8100) жазғанда, 6502 жылдамдығы төмен, ал 6502 деректер шинасындағы деректер 373 LE төмендегенде бекітіледі. 74HC00 NAND Gate арқасында сигналдар кері айналады.

Жоғарыда көрсетілген экранда екінші жазба 3 -ке өсті (ADC#$ 03) - 7F доллардан 82 долларға дейін.

Шындығында, 373 нақты мекен -жайы үшін адрестік шинаның 2 -ден астам желісі пайдаланылатын болады. Бұл 65536 ықтимал мекен -жайының жалғыз физикалық мекен -жайы болғандықтан, ол адрестік шинаның қалай жұмыс істейтінін көрсетеді. Сіз әртүрлі мекен -жай түйреуіштерімен тәжірибе жасап, оны басқа жерге қоюға болады. Әрине, сізге СТА операндтарын жаңа орынға өзгерту қажет болады. мысалы Егер сіз A15 және A9 мекенжай жолдарын қолдансаңыз, мекен -жай $ 8200 (32768 + 512) болады.

7 -қадам: Қорытынды

Қорытынды
Қорытынды

Мен 6502 іске қосудың қаншалықты оңай екенін көрсетуге тырыстым.

Мен бұл саланың маманы емеспін, сондықтан кез келген конструктивті пікірлер мен ақпаратты құптаймын.

Сіз оны одан әрі дамытуға қош келдіңіз, мен сіздің не істегеніңізге қызығамын.

Мен жобаға EEPROM, SRAM және 6522 қосуды және болашақта оны таспа тақтасына салуды жоспарлап отырмын.

Ұсынылған: