
Мазмұны:
2025 Автор: John Day | [email protected]. Соңғы өзгертілген: 2025-01-23 14:51

Алдыңғы нұсқаулықтан кейін мен 6502 -ді жолақ тақтасына салып, 6522 әмбебап интерфейс адаптерін (VIA) қостым. Тағы да, мен WDC 6522 нұсқасын қолданамын, себебі бұл олардың 6502 нұсқасына сәйкес келеді. Бұл жаңа чиптер MOS -тың түпнұсқаларына қарағанда әлдеқайда аз қуатты ғана пайдаланбайды, сонымен қатар оларды баяу жылдамдықта немесе тіпті қадаммен өткізуге болады. еш қиындықсыз бағдарлама.
Arduino бағдарламасын Бен Этер (YouTube -те көптеген бейнелері бар) жазған және мен бұл нәтижеге жету үшін оны өзгерттім.
Жабдықтар
1 x WDC W65C02 процессоры
1 x WDC W65C22 әмбебап интерфейс адаптері
1 x 74HC00N IC (2 кірісті NAND қақпасы) немесе ұқсас
Ені 1 х 10 см (35 сызық) Жолақ тақтасы
2 x 40 істікшелі DIL розеткалары
1 x 14 істікшелі DIL ұясы
ПХД тақырыптық түйреуіштері 2,54 мм
ПХД басындағы розеткалар 2,54 мм
1 x 12 мм лездік тактильді батырмалы қосқыш PCB орнатылған SPST немесе ұқсас
1 x 1K резистор
1 x 3K3 резисторы
2 x 0,1 uF керамикалық конденсаторлар
1 х 8 жолды су жарығы 5 мм қызыл жарықдиодты
Қосылуға арналған түрлі түсті сымдар
8 ер - еркек байланыстырушы сымдар
1 -қадам: Электр тізбегі


Электр тақтасы өте жинақы және төменгі жағы тікелей Arduino MEGA -ға қосылады. Бұған жету үшін, түйреуіштерді тақтаның астына дәнекерлеу алдында пластикалық ұстағыштарға мүмкіндігінше итеріледі. Бұл үшін ұзын түйреуіштер қолданылуы мүмкін еді, бірақ стандартты түйреуіштер тақтаның MEGA үстіне берік орналасқанын білдіреді.
Мен MEGA -ға қосылу үшін жолақ тақтасының жолдарын пайдалану үшін 6502 және 6522 IC -лерді қойдым. IC астында жасырылған 6502 үшін кейбір қосылымдар бар. Тақтаны жасағанда бірінші кезекте Ардуиноның қос розеткасына қосылатын 16 жолақты кесу керек болды. Сыртқы 2 -ді кесудің қажеті жоқ, себебі 5v және Gnd екі жақта. Келесі дәнекерлеу төменгі жағында 18 түйреуіштің 2 қатарында, ал жоғарғы жағында 18 розеткадан тұратын 2 қатарда.
Осыдан кейін DIL розеткалары орнына дәнекерленіп, олардың арасындағы жолдар кесілді. Мен 74HC00 -дің 14 -ші түйреуішін 5v -ге ұқсас жолға қою арқылы қосылымды сақтай алар едім. Мен жолдарды жалғаушы сымдарды дәнекерлеу кезінде қажет екеніне сенімді болғанда ғана кесіп алдым. Алайда, бәрі де жоспар бойынша бола бермейді, мен бастапқыда Arduino -ның 2, 3 және 7 түйреуіштерін қолдана отырып, алдыңғы нан тақтасының жолақ тақтасын жасадым, бірақ олар жолақ тақтасындағы тесіктерге сәйкес келмейді, сондықтан қолдануға тура келді. 18, 31 және 37 түйреуіштер. Сондықтан 31 және 37 тақталарындағы сілтемелер. Неліктен мен қолданылмаған түйреуіштердің бірін (23, 24 және т.б.) сағат үшін пайдаланбадым деп ойлайтын шығарсыз, себебі олар қолдамайды. үзіледі, сондықтан 18, 19, 20 немесе 21 түйреуішті қолдануға тура келді. Бақытымызға орай, бұл 4 түйреуіш таспадағы тесіктерге сәйкес келеді және бәрін ықшам етеді. 18 -түйреуіш басқа сымдардан ең алыс орналасқан.
Сіз сондай -ақ менің толтырылған тақтаның менің диаграммаға сәйкес келмейтінін байқай аласыз. Себебі, мен басқа біреудің схемасына сүйендім. Сондықтан 74HC00 қосылымдары. Мен сондай -ақ қуат светодиоды мен Gnd және 5v үшін қосымша 2 қатар розеткаларды, тағы бірнеше конденсаторларды қостым.
Мен 2 деректер розеткасын қосар едім, бірақ бұл тақтаны кесіп өтетін көп сымдарды білдіреді. Мен мұны уақытша шара ретінде 8 байланыс сымын таңдадым.
6522 А және В порттары жарықдиодты маркаларды оңай кіргізу үшін өз жолдарына дәнекерленген.
Қазіргі уақытта сымдар нан тақтасының нұсқасына қарағанда әлдеқайда аз.
2 -қадам: Бағдарламалау теориясы

6522 -де екі енгізу -шығару порттары бар, сонымен қатар басқа да көптеген мүмкіндіктер бар, бірақ А және В порттарына оңай қол жетімді. Порттағы деректерді шығару үшін Деректерді бағыттау регистрін (DDR) сәйкес орнату керек және деректерді порттың өзіне жіберу қажет.
Жоғарыда көрсетілгендей, 6522 E000 долларында орналасқан.
В портындағы деректерді шығару үшін $ E002 DDR $ FF (255 - барлық шығыс) мәніне қойылады және деректер $ E000 жіберіледі.
А портындағы деректерді шығару үшін $ E003 DDR $ FF (255 - барлық шығыс) мәніне орнатылады және деректер $ E001 жіберіледі.
Төмендегі код 6502 A регистріне $ FF жүктейді және оны DDR B -ге $ E002 жазады. Содан кейін ол 55 доллар жүктейді және оны ORB -ге жазады. Код бұрылады ($ AA береді) және ORB -ге жазылады. Бағдарлама $ 1005 артқа секіреді және шексіз қайталанады. ЕСКЕРТПЕ: DDR тек бір рет инициализациялануы керек.
Hexdump бөлшектеу мекенжайы
$ 1000 a9 ff LDA #$ ff $ 1002 8d 02 e0 STA $ e002 $ 1005 a9 55 LDA #55 $ 1007 8d 00 e0 STA $ e000 $ 100a 6а ROR A $ 100b 8d 00 e0 STA $ e000 $ 100e 4c 05 10 JMP $ 1005
$ 55 екілік жүйеде - 010101010 және $ AA - 10101010, бұл светодиодтардың 4 қосулы, 4 өшірулі болуына әкеледі.
Тез және лас түзету:
74HC00 (Quad 2 input NAND Gate) орнына 74HC08 (Quad 2 input AND Gate) ауыстырыңыз, ал 6522 қазір $ E000 орнына 6000 долларға орналасқан. Бұл оны 6502 адрестік жадының жоғарғы 32K -дан төменгі 32K -ға жылжытады.
3 -қадам: Arduino бағдарламасы мен шығысы

6502 -де оқылатын ЖЖҚ жоқ болғандықтан, Arduino оны оқуға арналған бағдарламамен қамтамасыз етеді. 18 -істікте сағат импульсі анықталған кезде, Arduino бағдарлама деректерін деректер шинасына қояды (Arduino түйрегіштері 39, 41, 43, 45, 47, 49, 51 және 53). 6502 өзінің жеке мекен -жайларын жасайды, оларды тек 22 -ден 52 -ге дейінгі жұп санды түйреуіштер арқылы бақылайды. Arduino сонымен қатар 37 -істіктегі сағат импульсін береді. 6502 -дің R/W желісі 31 -істікте бақыланады.
Arduino деректерді беретіндіктен, әзірге VIA -дан деректерді енгізу үшін 6502 алу мүмкін болмады (егер сіз жақсы білмесеңіз).
Arduino бағдарламасы төменде және сериялық монитордан шығатын үлгі жоғарыда.
4 -қадам: Қорытынды
Мен қайтадан «6502 компьютерін» қалай орнатуға болатынын көрсетуге тырыстым.
Бұл кезеңде 6502 әлі де Arduino -ға жұмыс істеуі үшін оны бағдарлама мен сағат импульсімен қамтамасыз етеді.
Бұл мен оны нан тақтасына орнатқаннан гөрі бір қадам.
Мен бұл жолы 74HC373 қолданған жоқпын, бірақ деректерді шығару үшін күрделі 6522. Сондай -ақ 6522 -де екі енгізу -шығару порттары бар.
Мен SRAM немесе EEPROM орнату арқылы бұл жобаны одан әрі дамытуға ниеттімін.
Ұсынылған:
ATBOY минималды ретро ойын консолі: 5 қадам

ATBOY минималды ретро ойын консолі: ATtiny85 x 0.96 OLED-ге негізделген шағын ретро-консоль тәрізді қондырғы ғарыштық басқыншыларды, тетристі және т
Rainmeter - минималды жұмыс үстелін орнату (Win 10): 30 қадам

Rainmeter - минималды жұмыс үстелін орнату (Win 10): Бұл нұсқаулықты қарағаныңыз үшін рахмет! Бұл нұсқаулық сізге жұмыс үстелін қоқыстардан тазартуға көмектесетін кейбір пайдалы виджеттермен жұмыс үстелінің минималды конфигурациясын құруға көмектеседі. Бұл нұсқаулық Windows 10 үшін жасалғанын ұмытпаңыз
GoBILDA бар минималды төрт X 12 вольтты Rover шассиі: 10 қадам

GoBILDA бар минималды төрт X 12 вольтты Rover шассиі: Мен сізге goBILDA компоненттерін қолдана отырып RC немесе автономды ровер шассиін қалай құрғанымды көрсетемін. Мен мұнда goBILDA -мен ешқандай қанағаттанарлықтай тұтынушылардан басқа ешқандай байланысым жоқ екенін қосуым керек, мен қосалқы бөлшектердің толық тізімін енгіздім
Минималды Arduino дыбыстық әсерлер қорабы: 5 қадам

Minimal Arduino Sound Effect Box: Бұл дыбыстық эффект қорапшасының жылдам жобасы. Құрылғы белгілі бір батырмаға тағайындалған microSD картасынан алдын ала жазылған wav файлын оқиды және оны басқан кезде ойнатады
Жалаңаш минималды Raspberry Pi торрент машинасының оқулығы: 4 қадам (суреттермен)

Жалаңаш минималды Raspberry Pi торрент машинасының оқулығы: Хай адамдар. Торрентинг - бұл әрқашан өмірді құтқарушы және Raspberry Pi басы қосылмаған жағдайда сізге керемет болады деп үміттенемін. Оқу құралының көмегімен мен барлығына басы жоқ жүретін Pi көмегімен торрент машинасын құруға көмектесемін, ал сен біздің Андроны қолдана аласың