Mundarija:

6502 va 6522 minimal kompyuter (Arduino MEGA bilan) 2 -qism: 4 qadam
6502 va 6522 minimal kompyuter (Arduino MEGA bilan) 2 -qism: 4 qadam

Video: 6502 va 6522 minimal kompyuter (Arduino MEGA bilan) 2 -qism: 4 qadam

Video: 6502 va 6522 minimal kompyuter (Arduino MEGA bilan) 2 -qism: 4 qadam
Video: Сборка и обзор - PE6502 Hobby Computer 2024, Noyabr
Anonim
6502 va 6522 minimal kompyuter (Arduino MEGA bilan) 2 -qism
6502 va 6522 minimal kompyuter (Arduino MEGA bilan) 2 -qism

Oldingi yo'riqnomamdan so'ng, men 6502 -ni lenta taxtasiga qo'ydim va 6522 ko'p qirrali interfeys adapterini (VIA) qo'shdim. Shunga qaramay, men 6522 -ning WDC versiyasidan foydalanmoqdaman, chunki bu ularning 6502 -ga mos keladi. Bu yangi chiplar nafaqat MOS -ning asl versiyalariga qaraganda ancha kam quvvat sarflaydi, balki ularni sekinroq tezlikda ishlatish yoki hatto o'tish mumkin. muammosiz dastur.

Arduino dasturi dastlab Ben Eater tomonidan yozilgan (u YouTube -da ko'plab videolarga ega) va men bu natijaga erishish uchun uni o'zgartirdim.

Ta'minotlar

1 x WDC W65C02 protsessori

1 x WDC W65C22 ko'p qirrali interfeys adapteri

1 x 74HC00N IC (4-kirishli NAND eshigi) yoki shunga o'xshash

1 x 10 sm kengligida (35 qatorli) lenta

2 x 40 pinli DIL uyasi

1 x 14 pinli DIL rozetkasi

PCB sarlavhasi pimi 2,54 mm

PCB sarlavhali rozetkalar 2,54 mm

1 x 12 mm lahzali tegib turadigan tugmachali PCB o'rnatilgan SPST yoki shunga o'xshash

1 x 1K qarshilik

1 x 3K3 qarshilik

2 x 0,1 uF seramika kondansatkichlari

1 x 8 tomonlama suv nuri Marquee 5 mm qizil LED

Ulanish uchun turli xil rangli simlar

8 erkak - erkak aloqa simlari

1 -qadam: O'chirish platasi

O'chirish platasi
O'chirish platasi
O'chirish platasi
O'chirish platasi

Elektron karta juda ixcham va pastki qismi to'g'ridan -to'g'ri Arduino MEGA -ga ulanadi. Bunga erishish uchun pimlarni taxtaning pastki qismiga lehimlashdan oldin iloji boricha plastik ushlagichlarga suriladi. Buning uchun uzunroq pimlardan foydalanish mumkin edi, lekin standart pinlar taxtaning MEGA tepasiga mahkam o'rnashganligini bildiradi.

Men 6502 va 6522 IClarni MEGA ga ulanish uchun lenta taxtasi yo'llaridan foydalanishlari uchun joylashtirdim. IC ostida yashiringan 6502 uchun ba'zi ulanishlar ham mavjud. Taxtani yasashda, birinchi navbatda, Arduino -ning ikki qatorli rozetkasiga ulanadigan 16 ta chiziqni kesib tashlash kerak edi. Tashqi 2 ni kesishning hojati yo'q, chunki 5v va Gnd ikkala tomonda. Keyingi lehim pastki qismidagi 18 ta pimning 2 qatorida va yuqori tomonida 18 ta rozetkaning 2 qatorida.

Shundan so'ng, DIL rozetkalari joyiga lehimlandi va ularning orasidagi yo'llar kesildi. 74HC00 ning 14 -pinini 5v bilan bir xil yo'lga qo'yib, ulanishni saqlab qolishim mumkin edi. Men yo'llarni faqat ulash simlarini lehimlayotganimda kerakligiga amin bo'lganimda kesib tashladim. Biroq, hamma narsa ham doim ham reja bo'yicha ketavermaydi, men avvalgi taxtadan Arduino -ning 2, 3 va 7 -gachasi plyonkalari yordamida tasma taxtasini ishlab chiqardim, lekin ular tasma taxtasidagi teshiklarga to'g'ri kelmaydi, shuning uchun uni ishlatishim kerak edi. pim 18, 31 va 37. Shuning uchun 31 va 37 -sonli bortlarimdagi havolalar. Siz nima uchun men soat uchun ishlatilmaydigan pinlardan (23, 24 va boshqalar) foydalanmaganligimni o'ylashingiz mumkin, chunki ular qo'llab -quvvatlamaydi. uzilishlar, shuning uchun 18, 19, 20 yoki 21 -pinlardan foydalanish kerak edi. Yaxshiyamki, bu 4 pin tasma taxtasidagi teshiklarga to'g'ri keladi va hamma narsani ixcham qilib qo'yadi. 18 -pin ham boshqa simlardan eng uzoqda joylashgan.

Siz ham ko'rishingiz mumkinki, mening to'ldirilgan taxtam diagramma bilan bir xil emas. Buning sababi, men boshqa birovning sxemasiga amal qilganman. Shunday qilib, 74HC00 ga ulanish. Bundan tashqari, men kuch -quvvat LEDini va Gnd va 5v uchun qo'shimcha 2 qatorli rozetkalarni va yana bir nechta kondansatörlarni qo'shdim.

Men 2 ta ma'lumot rozetkasini ulashim mumkin edi, lekin bu simni taxtadan kesib o'tishni anglatardi. Men buni vaqtinchalik chora sifatida 8 ta aloqa simini tanladim.

6522 A va B portlarida rozetkalari o'z yo'llariga lehimlangan, shuning uchun LEDli markalarni osongina qo'yish mumkin.

Hozirgi vaqtda simlar non taxtasi versiyasiga qaraganda ancha kam.

2 -qadam: Dasturlash nazariyasi

Dasturlash nazariyasi
Dasturlash nazariyasi

6522 ikkita kirish/chiqish portiga va boshqa ko'plab xususiyatlarga ega, lekin A va B portlariga osongina kirish mumkin. Ma'lumotlarni portga chiqarish uchun ma'lumotlar yo'nalishi registrini (DDR) mos ravishda o'rnatish va ma'lumotlarni portning o'ziga yuborish kerak.

Yuqoridagi sozlash bilan, 6522 $ E000 da joylashgan.

$ B00 portidagi ma'lumotlarni chiqarish uchun $ E002 DDR $ FF (255 - barcha chiqish) ga o'rnatiladi va ma'lumotlar $ E000 ga yuboriladi.

A portidagi ma'lumotlarni chiqarish uchun $ E003 da DDR $ FF (255 - barcha chiqish) ga o'rnatiladi va ma'lumotlar $ E001 ga yuboriladi.

Quyidagi kod 6502 A registriga $ FF yuklaydi va uni DDR B ga $ E002 da yozadi. Keyin u 55 dollar yuklaydi va uni ORBga yozadi. Kod aylantiriladi ($ AA beradi) va ORBga yoziladi. Dastur 1005 dollarni qaytaradi va cheksiz takrorlanadi. QAYD: DDR -ni faqat bir marta boshlash kerak.

Hexdump demontaj qilish manzili

$ 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 JMP $ 1005

$ 55 ikkilik - bu 010101010 va $ AA - 10101010, bu LEDlarning 4 yoqilishi, 4 o'chirilishiga olib keladi.

Tez va iflos tuzatish:

74HC00 (Quad 2 input NAND Gate) ni 74HC08 (Quad 2 input AND Gate) bilan almashtiring va 6522 hozirda $ E000 o'rniga 6000 $ da joylashgan. Bu uni 6502 manzilining yuqori 32K -dan pastki 32K -ga o'tkazadi.

3 -qadam: Arduino dasturi va chiqishi

Arduino dasturi va chiqishi
Arduino dasturi va chiqishi

6502 -da o'qish uchun RAM yo'qligi sababli, Arduino uni o'qish uchun dastur bilan ta'minlaydi. 18 -pinda soat pulsi aniqlanganda, Arduino dastur ma'lumotlarini ma'lumotlar avtobusiga o'tkazadi (Arduino pinlari 39, 41, 43, 45, 47, 49, 51 va 53). 6502 o'z manzillarini ishlab chiqaradi, ularni faqat Arduino 22 dan 52 gacha bo'lgan juft pimlarda kuzatadi. Arduino 37 -pinli soat impulsini ham etkazib beradi. 6502 -ning R/V chizig'i 31 -pinda kuzatiladi.

Arduino ma'lumotlarni etkazib berayotgani uchun, hozircha 6502 -ni VIA -dan ma'lumotlarni kiritish imkoni bo'lmadi (bilmasangiz).

Arduino dasturi quyida va ketma -ket monitordan namuna chiqishi yuqorida.

4 -qadam: Xulosa

Yana men minimal "6502 kompyuter" ni qanday o'rnatishni ko'rsatishga harakat qildim.

Bu bosqichda 6502 hali ham Arduino -ga dastur va soat impulsini ishga tushirishga tayanadi.

Bu men uni non taxtasiga o'rnatganimdan bir qadam oldinga.

Men bu safar 74HC373 -dan foydalanmadim, lekin 6522 -ni yanada murakkabroq qilib, ma'lumotlarni chiqarish uchun. Shuningdek, 6522 ikkita kirish -chiqish portiga ega.

Men SRAM yoki EEPROM o'rnatish orqali ushbu loyihani davom ettirish niyatidaman.

Tavsiya: