Mundarija:
- Ta'minotlar
- 1 -qadam: Kontseptsiya
- 2 -qadam: talablar
- 3 -qadam: uni birlashtirish
- 4 -qadam: O'chirish tizimini sinovdan o'tkazish
- 5 -qadam: Keyingi qadam
- 6 -qadam: Dastur
- 7 -qadam: Xulosa
Video: 6502 minimal kompyuter (Arduino MEGA bilan) 1 -qism: 7 qadam
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:24
6502 mikroprotsessori birinchi marta 1975 yilda paydo bo'lgan va uni MOS texnologiyasi uchun Chak Peddl boshchiligidagi kichik guruh ishlab chiqqan. O'sha paytda u video pristavkalarda va Atari, Apple II, Nintendo Entertainment System, BBC Micro, Commodore VIC20 va 64 kabi uy kompyuterlarida ishlatilgan. O'sha paytda u bozorda eng arzonlaridan biri edi. U hech qachon yo'q bo'lib ketmagan va hozirda havaskorlar va professionallar uni ko'plab ilovalar uchun ishlatishadi.
Men foydalanadigan versiya W65C02S6TPG-14 bo'lib, u Western Design Center tomonidan ishlab chiqarilgan va originaldan o'n baravar kam quvvat sarflaydi. Buning o'ziga xos xususiyati shundaki, u asl chip kabi 1 MGts da ishlashi shart emas. U ancha sekin ishlashi yoki dastur orqali bir qadam bosish uchun ishlatilishi mumkin va hatto 14 MGts gacha tezlashishi mumkin. Chip uchun ma'lumotlar varaqasi uning imkoniyatlarini tushuntiradi. Boshqa 6502 chiplari bunday imkoniyatga ega emas va bunday ishlamaydi. Hozirgi vaqtda chiplar Ebayda ham, boshqa manbalarda ham mavjud.
Ta'minotlar
Hozirda ishlatilgan barcha qismlar Ebay, AliExpress va boshqalarda mavjud.
1 -qadam: Kontseptsiya
Men ilhomni Ben Eaterdan oldim, u YouTube -da 6502 va kompyuterlar va sxemalarni qurishning boshqa jihatlari haqida bir qator videolarni tayyorladi. Dasturni u o'zi yozgan va men uni va uning ba'zi dizaynlarini ushbu yo'riqnomani ishlab chiqish uchun o'zgartirdim. Meni ilhomlantirgan yana bir kishi - GitHub -da bo'limi bor Endryu Jeykobs, u 6502 -ni boshqarish uchun PIC mikro -dan foydalanadi.
Benga o'xshab, men 6502 -ni kuzatish uchun Arduino MEGA -dan foydalanmoqdaman. Men Ben -dan farqli o'laroq soat signalini berish uchun MEGA -dan ham foydalanayapman. Hozir men hech qanday EEPROM yoki RAMdan foydalanmayapman.
2 -qadam: talablar
Ushbu "kompyuter" ni yaratish uchun elementlar ro'yxati quyidagicha:
1 x Arduino MEGA
1 x G'arbiy dizayn markazi W65C02S6TPG-14
1 x 74HC00N IC (4-kirishli NAND eshigi) yoki shunga o'xshash
1 x 74HC373N IC (sakkizlik D tipidagi shaffof mandal) yoki shunga o'xshash
2 x 830 teshikli non taxtasi (1 chimdimda)
Har xil Dupont erkak - erkak simlar va aloqa simlari
2 x LED (men 5 mm ko'k rangdan foydalanardim, chunki siz qarshiliksiz qutulib ketishingiz mumkin)
1 x 12 mm lahzali tegib turadigan tugmachali PCB o'rnatilgan SPST yoki shunga o'xshash
1 x 1K qarshilik
2 x 0,1 uF seramika kondansatkichlari
1 x 8 tomonlama suv nuri marquee 5 mm qizil LED (yuqoridagi kabi) yoki 8 LED va rezistorlar
ESLATMA: Agar siz sotilmagan to'plamni olsangiz, siz LEDlarni noto'g'ri katlama qilib qo'yishingiz mumkin, shunda ular umumiy katod bo'ladi. Men boshqa joyga osongina ulanishi uchun chivinni (pin o'rniga) biriktiraman. VCC endi Groundga aylanadi. Siz, albatta, LEDlarni aylantira olasiz (yig'ilgan narsada) va ularni qayta lehimlashingiz mumkin, lekin bu juda ko'p! To'plamlar hozirda AliExpress -da mavjud.
3 -qadam: uni birlashtirish
Manzil va ma'lumotlar avtobuslari uchun tasmasidan ajratilmagan yangi DuPont simlaridan foydalanish osonroq bo'ldi.
6502 ning 9 (A0) pinini MEGA 52 piniga ulang, 6502 -sonli 10 -A (A1) pin 50 -pingacha va boshqalar …
qadar
6502 raqamli 25 (A15) pinni MEGA 22 piniga ulang.
Hozircha 16 ta ulanish.
Xuddi shunday
6502 -sonli 26 -sonli (D7) pinni MEGA -ning 39 -piniga ulang, 6502 -sonli 27 -sonli (D6) 41 -pingacha va boshqalar …
qadar
6502 -sonli 33 -pinni (D0) MEGA -ning 53 -piniga ulang.
Yana 8 ta ulanish.
8 -pinni (VDD) 5V ga MEGA ga ulang.
Non paneli 8 -pinidan Gnd -ga ulangan 0,1uF kondansatör bu erda foydali bo'lishi mumkin, lekin kerak emas.
21 -pinni (VSS) MEGA -da Gnd -ga ulang.
2, 4, 6, 36 va 38 -pinlarni 5v ga ulash mumkin
37 -pinni (soat) MEGA -ning 2 -va 7 -pinlariga ulang.
34 -pinni (RWB) MEGA -ning 3 -piniga ulang.
40 -pinni (Reset) yuqoridagi sxema bo'yicha ulang.
4 -qadam: O'chirish tizimini sinovdan o'tkazish
Bu bosqichda 6502 ishlaydi va dastur1dan foydalanish mumkin. Agar siz 8 tomonli marqueedan foydalansangiz (yuqoridagi kabi), uni to'g'ridan -to'g'ri non paneliga va uchib ketadigan simni erga ulash mumkin, yoki siz 8 ta LED va rezistorlardan foydalanishingiz mumkin. LEDlar ma'lumotlar shinasida nima borligini ko'rsatadi.
Bu bosqichda Loop () da kechikishlarni 500 yoki undan ko'p qilib belgilash, nima bo'layotganini kuzatish yaxshi bo'lardi.
Siz ketma -ket monitorda yuqoridagi kabi o'xshash natijani olishingiz kerak. Qayta tiklash tugmasi bosilganda, protsessor 7 tsikldan o'tadi va keyin $ FFFC va $ FFFD joylarida dasturning boshlanishini qidiradi. 6502 -ni o'qish uchun jismoniy manzillar yo'qligi sababli, biz ularni MEGA -dan etkazib berishimiz kerak.
Yuqoridagi chiqishda 6502 $ FFFC va $ FFFD ni o'qiydi va $ 1000 va $ 10 da (Low bayt, High bayt) oladi. Keyin protsessor dasturni $ 1000 manzilida (yuqoridagi kabi) bajarishni boshlaydi. Bu holda u $ A9 va $ 55 ni o'qiydi, ya'ni LDA#$ 55 (akkumulyatorga 85 yuklang). Yana xotira joyi yo'qligi sababli, MEGA ma'lumotlar avtobusidan o'qilganlarni taqlid qiladi.
$ 55 (85) 01010101 ikkilik naqshini beradi va 1 bit chapga burilganda $ AA (170) 10101010 beradi.
Dastur shuni ko'rsatadiki, protsessor to'g'ri ishlayapti, lekin tez orada biroz zerikib ketadi, keyingi qismga.
5 -qadam: Keyingi qadam
Yuqoridagi "spagetti to'plami", ehtimol, bu bosqichdan keyin sizda nima bo'ladi.
Keyin 74HC373N va 74HC00N IC -larni non paneliga qo'shishingiz kerak.
Afsuski, 373 pinlari ma'lumotlar uzatish moslamasiga to'g'ri kelmaydi, shuning uchun ularni simlar bilan bog'lash kerak bo'ladi.
5V -ni 20 -pinga ulang.
Ground -ni 10 -pinga ulang.
6502 ning 33 (D0) pinini 74HC373N 3 -piniga (D0) ulang
va shunga o'xshash D1 dan D7 pinlari bilan.
Q0 dan Q7 gacha bo'lgan chiqishlar - bu LED chizig'iga yoki alohida LED va rezistorlarga ulanishni talab qiladi.
74HC00 bilan faqat 2 ta eshik kerak
5V -ni 14 -pinga ulang.
Ground -ni 7 -pinga ulang.
6502 ning 17 (A8) pinini 74HC00 ning 1 (1A) piniga ulang
6502 ning 25 (A15) pinini 74HC00 ning 2 (1B) piniga ulang
6502 -ning 34 -pinini (R/V) 74HC00 -ning 5 -piniga (2B) ulang
74HC00 ning 3 -pinini (1Y) 74HC00 -ning 4 -piniga (2A) ulang
74HC00 ning 6 -pinini (2Y) 74HC373N -ning 11 -piniga (LE) ulang.
74HC373N ning 11 -pinini (LE) 74HC373N -ning 1 -piniga (OE) ulang.
Siz ko'k LEDni 1Y ga, erga ham, erga ham 2Y ga ulashingiz mumkin, bu eshik qachon faol ekanligini ko'rsatadi.
Nihoyat, onClock protsedurasidagi satrni program1 dan program2 ga o'zgartiring
setDataPins (program2 [ofset]);
6 -qadam: Dastur
6502-Monitor dasturi yuqorida tasvirlangan ikkita 6502 tartibini o'z ichiga oladi.
Dastur hali ishlab chiqilmoqda va biroz tartibsiz.
Program2 ishga tushganda, loop () dagi kechikishlar 50 yoki undan kam bo'lishi mumkin va hatto butunlay olib tashlanishi mumkin. Serial.print () qatorlarini sharhlash ham 6502 -ni tezroq ishlashini ta'minlaydi. 373 -sonli 1 -pinni (OE) 11 -pindan (LE) ajratish har xil natijalarga olib keladi. NAND darvozalaridan 373 -sonli 1 -pin va 11 -pinni uzish sizga har bir tsiklda ma'lumotlar avtobusida nima borligini ko'rish imkonini beradi.
Agar siz OEni suzuvchi qoldirmasdan, uni erga bog'lab qo'yishingiz kerak bo'lishi mumkin, chunki bu pin baland bo'lsa, 8 chiqish liniyasi o'chiriladi. LE pin baland bo'lsa, chiqish pinlari kirishlar bilan bir xil bo'ladi. LE pinini pastga tushirish, chiqishni ushlab turadi, ya'ni kirish pimlari o'zgarsa, chiqishlar bir xil bo'ladi.
Men tushunishni osonlashtirish uchun dasturni iloji boricha sodda saqlashga harakat qildim.
Vaqtni kechiktirish bilan tajriba o'tkazish sizga 6502 nima qilayotganini aniq kuzatish imkonini beradi.
Quyida 6502 Assembler -dagi ikkita dastur (ikkalasi ham $ 1000 manzilida ishlaydi):
dastur 1
LDA#55 dollar
YO'Q
ROL
STA $ 1010
JMP $ 1000
ROL akkumulyator tarkibini bir oz chapga buradi, demak 55 dollar endi $ AA bo'ladi.
Mashina kodida (olti burchakli): A9 55 EA 2A 8D 10 10 4C 00 10
dastur 2
LDA#01 dollar
STA $ 8100
ADC#03 dollar
STA $ 8100
JMP $ 1005
Mashina kodida (olti burchakli): A9 01 8D 00 81 69 03 8D 00 81 4C 05 10
2 -dasturda hozirda 8100 dollarlik jismoniy manzil mavjud bo'lib, u erda 74HC373 manzil avtobusida joylashgan.
ya'ni 6502 ning A15 32768 ($ 8000) va A8 - 256 ($ 0100) = 33024 ($ 8100).
Shunday qilib, 6502 $ 8100 (STA $ 8100) ga yozganda, 6502 R/W past bo'ladi va 373 LE pasayganda 6502 ma'lumotlar avtobusidagi ma'lumotlar yopiladi. 74HC00 NAND Gate tufayli signallar teskari aylanadi.
Yuqoridagi ekranda ikkinchi bosma 3 ga oshdi (ADC#$ 03) - 7F $ dan 82 $ gacha.
Darhaqiqat, 373 manzilining aniq joylashuvi uchun manzil avtobusining 2 dan ortiq liniyasi ishlatiladi. Bu 65536 -dan yagona jismoniy manzil bo'lganligi sababli, u manzil avtobusining qanday ishlashini ko'rsatadi. Siz turli xil manzil pinlari bilan tajriba o'tkazishingiz va uni boshqa joyga qo'yishingiz mumkin. Albatta, siz STA operandlarini yangi joyga o'zgartirishingiz kerak bo'ladi. masalan Agar siz A15 va A9 manzil satrlaridan foydalansangiz, manzil $ 8200 (32768 + 512) bo'ladi.
7 -qadam: Xulosa
Men 6502 -ni ishga tushirish qanchalik oson ekanligini ko'rsatishga harakat qildim.
Men bu sohaning mutaxassisi emasman, shuning uchun har qanday konstruktiv izoh yoki ma'lumotni qabul qilaman.
Siz buni yanada rivojlantira olasiz va men nima qilganingiz bilan qiziqaman.
Men loyihaga EEPROM, SRAM va 6522 -ni qo'shib, kelajakda tasma taxtasiga joylashtirmoqchiman.
Tavsiya:
Bir stakan kompyuter (kompyuter qutisi): 9 qadam
Kompyuter chashkasi (kompyuter qutisi): Mening poyabzalimning o'limi Mening shaxsiy kompyuterim poyabzal qutisida baxtli yashadi. Biroq, bir kuni poyabzal qutisi baxtsiz hodisadan vafot etdi. Shunday qilib, men studiyamning sxemasiga muvofiq tezda yangi shassi yasash va shaxsiy kompyuterimni biroz yangilash uchun qo'limdagi akril plitalardan foydalanishga qaror qildim
Minimal qismlar bilan ishlaydigan Geiger taymerlari: 4 qadam (rasmlar bilan)
Ishlaydigan Geiger hisoblagichi W/ minimal qismlari: Mana, mening bilganimdek, siz quradigan eng oddiy ishlaydigan Geiger hisoblagichi. Bu Rossiyada ishlab chiqarilgan SMB-20 Geiger trubkasidan foydalanadi, u yuqori voltli elektron plyonkadan o'g'irlangan. U beta -zarrachalar va gamni aniqlaydi
VGA chiqishi bilan Arduino asosiy kompyuter: 5 qadam (rasmlar bilan)
VGA chiqishi bilan Arduino asosiy shaxsiy kompyuteri: Oldingi yo'riqnomada men ikkita Arduino yordamida BASIC bilan ishlaydigan va televizor ekrani uchun B va V chiqish signalli 8-bitli retro kompyuterni qanday qurishni ko'rsatdim. Endi men xuddi shu kompyuterni qanday qurishni ko'rsataman, lekin chiqish signali bilan
Ish stoli kompyuter va 3D skaneri Arduino bilan: 12 qadam (rasmlar bilan)
Ish stoli kompyuter tomografiyasi va 3D skaneri Arduino yordamida: kompyuter tomografiyasi (KT) yoki kompyuter aksiyali tomografiyasi (CAT) ko'pincha tanani tasvirlash bilan bog'liq, chunki bu klinisyenlarga hech qanday jarrohlik amaliyotisiz bemorning anatomik tuzilishini ko'rishga imkon beradi. Insonning ichki qiyofasini tasavvur qilish uchun
Arduino asosiy kompyuter televizor chiqishi bilan: 5 qadam (rasmlar bilan)
Arduino asosiy kompyuterli televizor chiqishi: Bu ko'rsatmalarni men ikkita Arduino va boshqa boshqa komponentlar yordamida BASIC bilan ishlaydigan 8-bitli retro kompyuterni qanday qurishni ko'rsataman. Siz PS2 klaviaturasi yordamida o'zgaruvchilar va BASIC dasturini kiritishingiz mumkin, va natijasi monitorda ko'rsatiladi