Mündəricat:
- Təchizat
- Addım 1: Konsepsiya
- Addım 2: Tələblər
- Addım 3: Bir yerə qoyun
- Addım 4: Dövrəni yoxlayın
- Addım 5: Növbəti addım
- Addım 6: Proqram
- Addım 7: Nəticə
Video: 6502 Minimal Kompüter (Arduino MEGA ilə) 1 -ci hissə: 7 addım
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:44
6502 mikroprosessoru ilk dəfə 1975 -ci ildə ortaya çıxdı və MOS Texnologiyası üçün Chuck Peddle -in rəhbərlik etdiyi kiçik bir qrup tərəfindən hazırlanmışdır. O vaxt Atari, Apple II, Nintendo Entertainment System, BBC Micro, Commodore VIC20 və 64 daxil olmaqla video konsollarda və ev kompüterlərində istifadə olunurdu. O dövrdə bazarda ən ucuzlarından biri idi. Həqiqətən heç vaxt getməmişdir və indi həvəskarlar və peşəkarlar tərəfindən bir çox tətbiq üçün istifadə olunur.
İstifadə etdiyim versiya Qərb Dizayn Mərkəzi tərəfindən hazırlanan və orijinaldan on dəfə az güc istifadə edən W65C02S6TPG-14-dir. Xüsusi bir xüsusiyyəti, orijinal çip kimi 1 MHz -də işləməməsidir. Daha yavaş işləyə bilər və ya bir proqramda bir addım atmaq üçün istifadə edilə bilər və hətta 14 MHz -ə qədər artırıla bilər. Çip üçün məlumat vərəqi onun imkanlarını izah edir. Digər 6502 çiplərində bu qabiliyyət yoxdur və bu şəkildə işləməyəcək. Çiplər hazırda Ebay -da və digər mənbələrdə mövcuddur.
Təchizat
İstifadə olunan bütün hissələr hal -hazırda Ebay, AliExpress və digərlərində mövcuddur.
Addım 1: Konsepsiya
İlhamımı YouTube -da 6502 və kompüter və sxemlərin qurulmasının bir çox digər aspektləri haqqında bir sıra videolar hazırlayan Ben Eater -dən aldım. Proqramı əvvəlcə onun özü yazmışdı və mən bu və onun bəzi dizaynlarını bu Təlimatla tanış olmaq üçün dəyişdirdim. Mənə ilham verən başqa bir şəxs, GitHub -da 6502 -ni idarə etmək üçün bir PIC mikro istifadə etdiyi bir bölmə olan Andrew Jacobs idi.
Ben kimi, 6502 -ni izləmək üçün Arduino MEGA istifadə edirəm. Məndən fərqli olaraq saat siqnalını təmin etmək üçün MEGA -dan da istifadə edirəm. Hazırda heç bir EEPROM və ya RAM istifadə etmirəm.
Addım 2: Tələblər
Bu "kompüteri" qurmaq üçün maddələrin siyahısı belədir:
1 x Arduino MEGA
1 x Qərb Dizayn Mərkəzi W65C02S6TPG-14
1 x 74HC00N IC (Dörd 2 girişli NAND qapısı) və ya bənzəri
1 x 74HC373N IC (Octal D tipli şəffaf mandal) və ya bənzəri
2 x 830 delikli çörək lövhəsi (1 çimdikdə)
Müxtəlif Dupont kişi - kişi telləri və keçid telləri
2 x LED (5 mm mavi istifadə etdim, çünki heç bir rezistor olmadan qaça bilərsiniz)
1 x 12 mm ani toxunma düyməsini açarı PCB -yə quraşdırılmış SPST və ya bənzəri
1 x 1K rezistor
2 x 0.1 uF keramika kondansatörləri
1 x 8 Yollu Su İşığı Marquee 5 mm qırmızı LED (yuxarıdakı kimi) və ya 8 LED və rezistor
QEYD: Satılmamış dəsti alsanız, LED -ləri ümumi bir katot halına gətirmək üçün yanlış şəkildə yuvarlaqlaşdıra bilərsiniz. Başqa bir yerə asanlıqla bağlana bilməsi üçün uç ucunu (pin yerinə) bağlayıram. VCC indi Zəminə çevrilir. Əlbəttə ki, LED-ləri (yığılan bir əşyanın üstünə) çevirib yenidən lehimləyə bilərsiniz, amma bu çox şeydir! Kitlər hazırda AliExpress -də mövcuddur.
Addım 3: Bir yerə qoyun
Ünvan və məlumat avtobusları üçün lentindən ayrılmamış yeni DuPont tellərindən istifadə etməyi daha asan tapdım.
6502 -nin 9 (A0) pinini MEGA -nın 52 -ci pininə qoşun, 6502 nömrəli pin 10 (A1) ilə pin 50 və s.
qədər
6502 -nin 25 (A15) pinini MEGA -nın 22 -ci pininə qoşun.
İndiyə qədər 16 əlaqə.
Eynilə
6502 -nin 26 -cı pinini (D7) MEGA -nın 39 -cu pininə bağlayın, 6502 nömrəli pin 27 (D6) 41 -ci pin və s.
qədər
6502 -nin 33 -cü pinini (D0) MEGA -nın 53 -cü pininə bağlayın.
Daha 8 əlaqə.
Pin 8 (VDD) MEGA -da 5v -ə qoşun.
Çörək lövhəsinin 8 -ci pinindən Gnd -ə bağlı olan 0.1uF kondansatör burada faydalı ola bilər, lakin lazım deyil.
Pin 21 (VSS) MEGA -da Gnd -ə qoşun.
2, 4, 6, 36 və 38 pinləri 5v -ə bağlana bilər
37 pinini (Saat) MEGA -nın 2 -ci və 7 -ci pinlərinə qoşun.
34 pinini (RWB) MEGA -nın 3 -cü pininə qoşun.
Pimi 40 (Sıfırla) yuxarıdakı diaqram kimi bağlayın.
Addım 4: Dövrəni yoxlayın
Bu mərhələdə 6502 işləyəcək və proqram1 istifadə edilə bilər. 8 tərəfli marquee istifadə edirsinizsə (yuxarıda göstərildiyi kimi), birbaşa çörək taxtasına və uçucu qurğunun yerə bağlana bilər və ya 8 LED və rezistordan istifadə edə bilərsiniz. LED -lər məlumat avtobusunda nə olduğunu göstərəcək.
Bu mərhələdə, baş verənləri izləmək üçün Loop () gecikmələrini 500 və ya daha çox olaraq təyin etmək yaxşı olardı.
Serial Monitorda yuxarıdakı kimi oxşar bir nəticə əldə etməlisiniz. Sıfırlama düyməsinə basıldıqda, prosessor 7 dövrdən keçir və sonra proqramın başlamasını $ FFFC və $ FFFD yerlərində axtarır. 6502 -nin oxunması üçün heç bir fiziki ünvan olmadığı üçün onları MEGA -dan təmin etməliyik.
Yuxarıdakı çıxışda, 6502 $ FFFC və $ FFFD oxuyur və proqramın başlanğıcı olan $ 1000 və $ 10 (Low byte, High byte) alır. Daha sonra prosessor proqramı $ 1000 (yuxarıdakı kimi) yerində icra etməyə başlayır. Bu halda $ A9 və $ 55, yəni LDA#55 $ oxuyur (Akkumulyatora 85 yükləyin). Yenə fiziki yaddaş yeri olmadığı üçün MEGA, məlumat avtobusundan oxunanı simulyasiya edir.
$ 55 (85) ikili model verir 01010101 və 1 bit sola döndükdə $ AA (170) 10101010 verir.
Proqram, prosessorun düzgün işlədiyini göstərir, lakin tezliklə bir az cansıxıcı olur, növbəti hissəyə keçin.
Addım 5: Növbəti addım
Yuxarıdakı "spagetti yığını", ehtimal ki, bu mərhələdən sonra sahib olacağınız bir şeydir.
Sonra 74HC373N və 74HC00N IC -lərini çörək taxtasına əlavə etməlisiniz.
Təəssüf ki, 373 -ün pinləri məlumat avtobusuna uyğun gəlmir, buna görə də tellərlə bağlamaq lazımdır.
5v -ni pin 20 -ə bağlayın.
Ground'u pin 10 -a bağlayın.
6502 -nin 33 -cü pinini (D0) 74HC373N -in 3 -cü pininə (D0) bağlayın
və eyni şəkildə D1 -dən D7 sancaqları ilə.
Q0 -dan Q7 -yə qədər olan çıxışlardır və bunların LED çərçivəsinə və ya fərdi LED -lərə və rezistorlara qoşulması lazımdır.
74HC00 ilə yalnız 2 qapısına ehtiyac var
5v -ni pin 14 -ə bağlayın.
Ground -u pin 7 -ə qoşun.
6502 -nin 17 (A8) pinini 74HC00 -ün 1 (1A) pininə qoşun
6502 -nin 25 -ci pinini (A15) 74HC00 -ün 2 -ci pininə (1B) bağlayın
6502 -nin 34 -cü pinini (R/W) 74HC00 -ün 5 -ci pininə (2B) bağlayın
74HC00 -ün 3 (1Y) pinini 74HC00 -ün 4 -cü pininə (2A) bağlayın
74HC00 -ün 6 -cı pinini (2Y) 74HC373N -in 11 -ci pininə (LE) bağlayın.
74HC373N -in 11 -ci pinini (LE) 74HC373N -in 1 -ci pininə (OE) bağlayın.
Mavi bir LED -i 1Y -ə və 2Y -ni yerə qoşa bilərsiniz, bu qapının aktiv olduğunu göstərir.
Nəhayət onClock prosedurundakı xətti program1 -dən program2 -ə dəyişin
setDataPins (proqram2 [ofset]);
Addım 6: Proqram
6502-Monitor proqramı yuxarıda təsvir olunan iki 6502 rutini ehtiva edir.
Proqram hələ də inkişaf mərhələsindədir və bir az səliqəsizdir.
Program2 işləyərkən, loopdakı gecikmələr 50 və ya daha az ola bilər və hətta tamamilə aradan qaldırıla bilər. Serial.print () xətlərinin şərh edilməsi də 6502 -nin daha sürətli işləməsini təmin edir. 373 -ün 1 -ci pinini (OE) pin 11 -dən (LE) ayırmaq fərqli nəticələr verir. NAND qapılarından 373 -ün 1 -ci pinini və 11 -ci pinini ayırmaq, hər avtobusda nə olduğunu görmək imkanı verir.
Bu pin yüksəlirsə, 8 çıxış xətti deaktiv olduğu üçün OE -ni üzən buraxmaq əvəzinə yerə bağlamanız lazım ola bilər. LE pin yüksək olduqda, çıxış pinləri girişlərlə eynidır. LE pinini aşağı çəkmək, çıxışları bağlayır, yəni giriş pinləri dəyişərsə, çıxışlar eyni qalır.
Proqramı başa düşməyi asanlaşdırmaq üçün mümkün qədər sadə saxlamağa çalışdım.
Zaman gecikmələri ilə təcrübə etmək, 6502 -nin nə etdiyini tam olaraq izləməyinizə imkan verir.
Aşağıda 6502 Assembler -də iki proqram (hər ikisi 1000 $ ünvanında işləyir):
proqram 1
LDA#55 dollar
YOX
ROL
STA $ 1010
JMP 1000 dollar
ROL, akkumulyatorun məzmununu bir az geriyə çevirir, yəni 55 dollar artıq AA olur.
Maşın kodunda (hex): A9 55 EA 2A 8D 10 10 4C 00 10
proqram 2
LDA#01 dollar
STA 8100 dollar
ADC#03 dollar
STA 8100 dollar
JMP 1005 dollar
Maşın kodunda (hex): A9 01 8D 00 81 69 03 8D 00 81 4C 05 10
Proqram2 -də, 74HC373 -ün ünvan avtobusunda yerləşdiyi 8100 dollarlıq fiziki bir ünvan var.
yəni 6502 -dən A15 32768 (8000 $) və A8 256 (0100 $) = 33024 (8100 $) təşkil edir.
Beləliklə, 6502 8100 $ (STA $ 8100) yazdıqda, 6502 -nin R/W aşağıdır və 373 LE aşağı düşəndə 6502 məlumat avtobusundakı məlumatlar kilidlənir. 74HC00 NAND Gate səbəbiylə siqnallar tərsinə çevrilir.
Yuxarıdakı ekranda ikinci yazı 3 artdı (ADC#03 $) - 7F -dən 82 dollara.
Əslində, 373 -ün konkret yeri üçün ünvan avtobusunun 2 -dən çox xətti istifadə ediləcəkdi. Bu, 65536 -dan yeganə fiziki ünvan olduğundan, ünvan avtobusunun necə işlədiyini göstərir. Fərqli ünvan pinləri ilə sınaq keçirə və fərqli bir yerə qoya bilərsiniz. Əlbəttə ki, STA operandlarını yeni yerə dəyişdirməlisiniz. məs. A15 və A9 ünvan xətlərindən istifadə etsəniz, ünvan 8200 $ (32768 + 512) olardı.
Addım 7: Nəticə
6502 -ni işə salmağın nə qədər asan olduğunu nümayiş etdirməyə çalışdım.
Mən bu sahədə mütəxəssis deyiləm, buna görə hər hansı bir konstruktiv şərh və ya məlumatı alqışlayıram.
Bunu daha da inkişaf etdirə bilərsiniz və etdiyiniz işlərlə maraqlanacağam.
Layihəyə bir EEPROM, SRAM və 6522 əlavə etmək və gələcəkdə şerit lövhəyə qoymaq niyyətindəyəm.
Tövsiyə:
6502 Minimal Kompüter (Arduino MEGA ilə) 3 -cü hissə: 7 addım
6502 Minimal Kompüter (Arduino MEGA ilə) 3 -cü hissə: Daha da irəliləyərək, indi ana lövhəyə Octal Latch, 8 düzbucaqlı LED və 220 Ohm müqavimət dəsti əlavə etdim. LED -lərin söndürülməsi üçün dizinin ümumi pimi ilə zəmini arasında bir tullanan da var. 74HC00 NAND qapısı
6502 & 6522 Minimal Kompüter (Arduino MEGA ilə) Part 2: 4 Addım
6502 və 6522 Minimal Kompüter (Arduino MEGA ilə) 2 -ci hissə: Əvvəlki Təlimatımdan sonra indi 6502 -ni bir lövhəyə taxdım və 6522 Çox Yönlü Arayüz Adaptoru (VIA) əlavə etdim. Yenə də, 6522 -nin WDC versiyasını istifadə edirəm, çünki onların 6502 -si ilə mükəmməl uyğun gəlir. Yalnız bu yeni c
Kompüter Pəncərəsini Necə Oymaq olar (1 -ci hissə): 6 addım
Kompüter Pəncərəsini Necə Oymaq olar (1 -ci hissə): Həkk olunmuş şəffaf pəncərələrlə bir çox hal görmüşəm. Növlərimə yeni bir görünüş vermək üçün həkk etməyi qərara aldım. Bu göründüyü qədər çətin deyil, sadəcə vaxtınızı ayırın və yaxşı nəticələr əldə edəcəksiniz. Digər iş pəncərəsi təlimatlarını Instru'da tapa bilərsiniz
Kompüter pəncərəsini necə oymaq olar (2 -ci hissə): 5 addım (şəkillərlə)
Kompüter Pəncərəsini Necə Oymaq olar (2 -ci hissə): Bu, Kompüter Pəncərəsinin Necə Oyulması (1 -ci hissə) ilə əlaqədardır, bu isteğe bağlıdır, amma mənə elə gəlir ki, sərin görünür. 2 -ci hissə bu qravürü götürüb fərqləndirir. Bu, pəncərəni bir şəkildə Trona bənzədir. Bu gözəl bir təsirdir, amma bir az ehtiyacınız var
RE Sistemləri üçün Kompüter (2 -dən 1 -ci hissə) (Hardware): 5 Addım
RE Sistemləri üçün Kompüter (2 -ci hissədən 1 -ci hissə) (Hardware): Burada sizə kiçik Bərpa Olunan Enerji sistemləri üçün tam işləyən Mini Masaüstü kompüterini necə hazırladığımı göstərəcəyəm. İstifadə etməyi planlaşdırdığım RE sistemi ilk növbədə 12 Voltluq bir sistem olacaq. 6 və ya 8 Golf Arabası batareyaları ilə və 700 vat gücündə bir tərs çeviriciyə sahib olacağam