Съдържание:
- Консумативи
- Стъпка 1: Концепцията
- Стъпка 2: Изисквания
- Стъпка 3: Сглобявайки го заедно
- Стъпка 4: Тестване на веригата
- Стъпка 5: Следваща стъпка
- Стъпка 6: Програмата
- Стъпка 7: Заключение
Видео: 6502 Минимален компютър (с Arduino MEGA) Част 1: 7 стъпки
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:51
Микропроцесорът 6502 се появява за първи път през 1975 г. и е проектиран от малък екип, ръководен от Чък Педъл за MOS Technology. Тогава той се използва във видеоконзоли и домашни компютри, включително Atari, Apple II, Nintendo Entertainment System, BBC Micro, Commodore VIC20 и 64. По това време той беше един от най -евтините на пазара. Той никога не е изчезвал и сега се използва от любители и професионалисти за много приложения.
Версията, която използвам, е W65C02S6TPG-14, която е направена от Western Design Center и използва десет пъти по-малко енергия от оригинала. Той е специален с това, че не трябва да работи на 1 MHz като оригиналния чип. Той може да работи много по -бавно или да се използва за единична стъпка през програма и дори да се ускори до 14 MHz. Информационният лист за чипа обяснява неговите възможности. Други чипове 6502 нямат тази възможност и няма да работят по този начин. Чиповете в момента са налични в Ebay, както и в други източници.
Консумативи
Всички използвани части в момента са налични в Ebay, AliExpress и други.
Стъпка 1: Концепцията
Вдъхнових се от Бен Ийтър, който е създал поредица от видеоклипове в YouTube за 6502 и много други аспекти на изграждането на компютри и схеми. Програмата е написана от него първоначално и аз промених това и някои от неговите дизайни, за да излезе с тази инструкция. Друг човек, който ме вдъхнови, беше Андрю Джейкъбс, който има раздел в GitHub, където използва PIC микро, за да контролира своя 6502.
Подобно на Бен, аз използвам Arduino MEGA за наблюдение на 6502. Също така използвам MEGA за предоставяне на часовника за разлика от Бен. В момента също не използвам EEPROM или RAM.
Стъпка 2: Изисквания
За да се изгради този "компютър" списък от елементи е както следва:
1 x Arduino MEGA
1 x Western Design Center W65C02S6TPG-14
1 x 74HC00N IC (Quad 2-вход NAND порта) или подобен
1 x 74HC373N IC (осмично прозрачно ключалка тип D) или подобен
2 х 830 дупки за хляб (1 на щипка)
Различни мъжки - мъжки проводници и свързващи проводници Dupont
2 x светодиода (използвах 5 мм синьо, тъй като можете да се измъкнете без резистори)
1 x 12 мм моментен тактилен превключвател с бутон, монтиран на печатна платка SPST или подобен
1 x 1K резистор
2 x 0,1 uF керамични кондензатори
1 x 8 Way Way Light Light Marquee 5 мм червен светодиод (както е посочено по -горе) или 8 светодиода и резистори
ЗАБЕЛЕЖКА: Ако получите разпаяния комплект, можете да поставите светодиодите по грешен начин, така че да са общ катод. Прикрепвам летящ проводник (вместо щифта), така че да може лесно да се свърже на друго място. VCC вече става Ground. Разбира се, можете да обърнете светодиодите (върху сглобен артикул) и да ги запоите отново, но това е много фалшификат! В момента комплектите се предлагат на AliExpress.
Стъпка 3: Сглобявайки го заедно
Открих, че е по -лесно да използвам нови кабели DuPont, които не са били отделени от лентата им за шини за адрес и данни.
Свържете щифт 9 (A0) на 6502 към пин 52 на MEGA, щифт 10 (A1) на 6502 до пин 50 и т.н.
до
Свържете щифт 25 (A15) на 6502 към щифт 22 на MEGA.
16 връзки до момента.
По същия начин
Свържете щифт 26 (D7) на 6502 към щифт 39 на MEGA, щифт 27 (D6) на 6502 до пин 41 и т.н.
до
Свържете щифт 33 (D0) на 6502 към щифт 53 на MEGA.
Още 8 връзки.
Свържете щифт 8 (VDD) към 5v на MEGA.
0.1uF кондензатор, свързан от щифт 8 към Gnd на дъската за хляб, може да бъде полезен тук, но не е необходим.
Свържете щифт 21 (VSS) към Gnd на MEGA.
Пинове 2, 4, 6, 36 и 38 могат да бъдат обвързани с 5v
Свържете щифт 37 (Часовник) към щифт 2 и щифт 7 на MEGA.
Свържете щифт 34 (RWB) към щифт 3 на MEGA.
Свържете щифт 40 (нулиране), както е показано по -горе.
Стъпка 4: Тестване на веригата
На този етап 6502 ще работи и може да се използва програма1. Ако използвате 8 -посочна рамка (както е посочено по -горе), тя може да бъде поставена направо в макетната платка и маховият кабел, свързан към земята, или можете да използвате 8 светодиода и резистори. Светодиодите ще покажат какво има на шината за данни.
На този етап би било също така да зададете забавянията в Loop () на 500 или повече, за да проследите случващото се.
Трябва да получите подобен изход на серийния монитор като този по -горе. Когато се натисне Reset, процесорът преминава през 7 цикъла и след това търси старта на програмата на места $ FFFC и $ FFFD. Тъй като няма физически адреси за четене на 6502, трябва да ги доставим от MEGA.
В горния изход 6502 чете $ FFFC и $ FFFD и получава $ 00 и $ 10 (Low byte, High byte), което е началото на програмата на $ 1000. След това процесорът започва да изпълнява програмата на място $ 1000 (както по -горе). В този случай той чете $ A9 и $ 55, т.е. LDA#$ 55 (Заредете 85 в акумулатора). Отново, тъй като няма местоположение на физическа памет, MEGA симулира това, което се чете от шината за данни.
$ 55 (85) дава двоичен модел 01010101 и при завъртане с 1 бит наляво дава $ AA (170) 10101010.
Програмата показва, че процесорът работи правилно, но скоро става малко скучен, така че преминете към следващата част.
Стъпка 5: Следваща стъпка
„Купчината спагети“по -горе вероятно е нещо подобно на това, което ще имате след този етап.
След това трябва да добавите интегралните схеми 74HC373N и 74HC00N към макета.
За съжаление щифтовете на 373 не са в съответствие с шината за данни, така че ще трябва да бъдат свързани с проводници.
Свържете 5v към щифт 20.
Свържете земята към щифт 10.
Свържете щифт 33 (D0) на 6502 към щифт 3 (D0) на 74HC373N
и по същия начин с щифтове D1 до D7.
Q0 до Q7 са изходите и те ще се нуждаят от свързване към LED панела или отделни светодиоди и резистори.
При 74HC00 са необходими само 2 негови порти
Свържете 5v към щифт 14.
Свържете земята към щифт 7.
Свържете щифт 17 (A8) на 6502 към щифт 1 (1A) на 74HC00
Свържете щифт 25 (A15) на 6502 към щифт 2 (1B) на 74HC00
Свържете щифт 34 (R/W) на 6502 към щифт 5 (2B) на 74HC00
Свържете щифт 3 (1Y) на 74HC00 към щифт 4 (2A) на 74HC00
Свържете щифт 6 (2Y) на 74HC00 към щифт 11 (LE) на 74HC373N
Свържете щифт 11 (LE) на 74HC373N към щифт 1 (OE) на 74HC373N
Можете да свържете син светодиод към 1Y и заземяване, както и 2Y към земя, това ще показва кога портата е активна.
Накрая променете реда в процедурата onClock от program1 на program2
setDataPins (program2 [отместване]);
Стъпка 6: Програмата
Програмата 6502-Monitor съдържа двете описани по-горе подпрограми 6502.
Програмата все още се разработва и е малко разхвърляна.
При стартиране на program2, забавянията в цикъла () могат да бъдат 50 или по -малко и дори да бъдат премахнати напълно. Коментирането на редовете Serial.print () също ускорява работата на 6502. Изключването на щифт 1 (OE) на 373 от щифт 11 (LE) дава различни резултати. Изключването на щифт 1 и щифт 11 на 373 от NAND портата ви позволява да видите какво има на шината за данни при всеки тактов цикъл.
Може да се наложи да свържете OE към земята, вместо да я оставяте плаваща, тъй като 8 -те изходни линии са деактивирани, ако този щифт е висок. Когато щифтът LE е висок, изходните щифтове са същите като входовете. Вземането на LE щифта ниско блокира изходите, т.е. ако входните щифтове се променят, изходите остават същите.
Опитах се да направя програмата възможно най -проста, за да я разбера по -лесно.
Експериментирането със закъсненията ви позволява да следите точно какво прави 6502.
По -долу са двете програми (и двете се изпълняват на адрес $ 1000) в 6502 Assembler:
програма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
В program2 вече има физически адрес $ 8100, където 74HC373 се намира на адресната шина.
A15 от 6502 е 32768 ($ 8000), а A8 е 256 ($ 0100) = 33024 ($ 8100).
Така че, когато 6502 пише до $ 8100 (STA $ 8100), R/W на 6502 е нисък и данните на шината за данни 6502 се блокират, когато 373 LE падне. Поради 74HC00 NAND Gate, сигналите са обърнати.
В горния ситопечат второто записване се е увеличило с 3 (ADC#$ 03) - от $ 7F на $ 82.
В действителност, повече от 2 реда на адресната шина ще бъдат използвани за конкретното местоположение на 373. Тъй като това е единственият физически адрес от възможните 65536, той демонстрира как работи адресната шина. Можете да експериментирате с различни адресни щифтове и да го поставите на различно място. Разбира се, ще трябва да промените STA операндите на новото място. напр. Ако сте използвали адресни редове A15 и A9, адресът ще бъде $ 8200 (32768 + 512).
Стъпка 7: Заключение
Опитах се да покажа колко лесно е да стартирате 6502.
Не съм експерт в тази област, така че ще се радвам на конструктивни коментари или информация.
Добре дошли сте да развиете това по -нататък и ще се интересувам от това, което сте направили.
Възнамерявам да добавя EEPROM, SRAM и 6522 към проекта, както и да го поставя на лента в бъдеще.
Препоръчано:
6502 Минимален компютър (с Arduino MEGA) Част 3: 7 стъпки
6502 Минимален компютър (с Arduino MEGA) Част 3: Продължавайки още по -нататък, сега добавих осмична брава, 8 правоъгълни светодиода и 220 ома резисторен масив към основната платка. Между общия щифт и масата на масива има и джъмпер, така че светодиодите да могат да се изключват. Портът 74HC00 NAND h
6502 & 6522 Минимален компютър (с Arduino MEGA) Част 2: 4 стъпки
6502 и 6522 Минимален компютър (с Arduino MEGA) Част 2: Следвайки предишния си Instructable, сега поставих 6502 върху лента и добавих 6522 универсален интерфейсен адаптер (VIA). Отново използвам WDC версия на 6522, тъй като тя идеално съвпада с техния 6502. Не само, че тези нови c
Rainmeter - Настройване на минимален работен плот (Win 10): 30 стъпки
Rainmeter - Настройка на минимален работен плот (Win 10): Благодаря, че разгледахте тази инструкция! Това ръководство ще ви помогне да създадете минимална настройка на работния плот с някои полезни приспособления, като ви помогне да изчистите работния плот от безпорядъка. Моля, имайте предвид, че това ръководство е създадено за Windows 10
Как да направите минимален OTG конектор: 4 стъпки (със снимки)
Как да си направим минимален OTG конектор: В този електронен DIY проект ще видите как да направите минимален OTG конектор на много ниска цена. OTG конекторът е много практичен инструмент, който улеснява свързването на вашия телефон с Android за разширяване на U диск и връзка с мишката. Можете да направите
Как да гравирате прозорец на компютър (част 1): 6 стъпки
Как да гравирам компютърен прозорец (част 1): Виждал съм много случаи с гравирани прозрачни прозорци. Бях решил да гравирам панталоните си, за да им дам нов облик. Това не е толкова трудно, колкото изглежда, просто отделете време и ще получите добри резултати. Други инструкции за прозореца на случай могат да бъдат намерени на Instru