Satura rādītājs:

6502 un 6522 minimālais dators (ar Arduino MEGA) 2. daļa: 4 soļi
6502 un 6522 minimālais dators (ar Arduino MEGA) 2. daļa: 4 soļi

Video: 6502 un 6522 minimālais dators (ar Arduino MEGA) 2. daļa: 4 soļi

Video: 6502 un 6522 minimālais dators (ar Arduino MEGA) 2. daļa: 4 soļi
Video: 6502 CPU: 6522 VIA output to LEDs 2024, Novembris
Anonim
6502 un 6522 minimālais dators (ar Arduino MEGA) 2. daļa
6502 un 6522 minimālais dators (ar Arduino MEGA) 2. daļa

Turpinot iepriekšējo Instructable, es tagad esmu ievietojis 6502 sloksnes plāksnē un pievienojis 6522 daudzpusīgu interfeisa adapteri (VIA). Atkal es izmantoju 6522 WDC versiju, jo tā ir ideāli piemērota viņu 6502. Ne tikai šīs jaunās mikroshēmas patērē daudz mazāk enerģijas nekā sākotnējās MOS versijas, bet tās var darbināt ar mazāku ātrumu vai pat iziet cauri programma bez problēmām.

Arduino programmu sākotnēji uzrakstīja Bens Ēders (kuram ir daudz videoklipu pakalpojumā YouTube), un es to esmu mainījis, lai sasniegtu šo rezultātu.

Piegādes

1 x WDC W65C02 procesors

1 x WDC W65C22 universāls interfeisa adapteris

1 x 74HC00N IC (četrkodolu 2 ieejas NAND vārti) vai līdzīgi

1 x 10 cm plats (35 līniju) sloksnes dēlis

2 x 40 kontaktu DIL ligzdas

1 x 14 kontaktu DIL ligzda

PCB galvenes tapas 2,54 mm

PCB galvenes ligzdas 2,54 mm

1 x 12 mm īslaicīgs pieskāriena spiedpogas slēdzis PCB uzstādīts SPST vai līdzīgs

1 x 1K rezistors

1 x 3K3 rezistors

2 x 0,1 uF keramikas kondensatori

1 x 8 virzienu ūdens gaismas telts 5 mm sarkana LED

Dažādu krāsu vadi savienojumiem

8 vīriešu - vīriešu saites vadi

1. darbība: shēmas plate

Circuit Board
Circuit Board
Circuit Board
Circuit Board

Shēma ir diezgan kompakta, un tās apakšējā daļa tiek pievienota tieši Arduino MEGA. Lai to panāktu, tapas tiek iespiestas pēc iespējas tālāk plastmasas turētājos, pirms tās tiek pielodētas pie dēļa apakšpuses. Šim nolūkam varēja izmantot garākas tapas, taču standarta tapas nozīmē, ka dēlis stingri balstās uz MEGA.

Esmu izveidojis 6502 un 6522 IC, lai tie izmantotu sloksnes dēļus, lai izveidotu savienojumu ar MEGA. Ir arī daži savienojumi 6502, kas paslēpti zem IC. Izgatavojot dēli, pirmais, kas jādara, bija nogriezt 16 sloksnes, kas savienosies ar Arduino dubulto ligzdu rindu. Ārējie 2 nav jāsamazina, jo 5v un Gnd atrodas abās pusēs. Nākamais lodējums 2 rindās pa 18 tapām apakšpusē, un 2 rindas ar 18 kontaktligzdām augšējā pusē.

Pēc tam DIL ligzdas tika pielodētas vietā un sliežu ceļi tika sagriezti starp tiem. Es varētu saglabāt savienojumu, ievietojot 74HC00 14. tapu tajā pašā celiņā kā 5v. Sliedes sagriezu tikai tad, kad biju pārliecināta, ka tām jābūt, kamēr lodēju savienojošos vadus. Tomēr lietas ne vienmēr notiek pēc plāna, sākotnēji es izveidoju sloksnes dēli no iepriekšējās maizes dēļa, izmantojot Arduino 2., 3. un 7. tapas, taču tās nesaskan ar sloksnes dēļa caurumiem, tāpēc bija jāizmanto 18., 31. un 37. tapa. Tādējādi saites uz mana dēļa 31. un 37. Jūs varētu brīnīties, kāpēc es pulkstenim neizmantoju vienu no neizmantotajām tapām (23, 24 utt.), jo tas neatbalsta pārtrauc, tāpēc nācās izmantot 18., 19., 20. vai 21. tapu. Par laimi šīs 4 tapas sakrīt ar caurumiem sloksnes plāksnē un saglabā visu kompaktu. Tapa 18 ir arī vistālāk no visiem pārējiem vadiem.

Jūs varat arī pamanīt, ka mana aizpildītā tāfele nav gluži tāda pati kā mana shēma. Tas ir tāpēc, ka es sekoju kāda cita diagrammai. Tādējādi savienojumi ar 74HC00. Esmu pievienojis arī strāvas LED un papildu 2 rindas kontaktligzdas Gnd un 5v, kā arī vēl pāris kondensatorus.

Es būtu varējis savienot 2 datu ligzdas, taču tas nozīmētu daudz vairāk vadu, kas šķērso dēli. Es izvēlējos 8 saišu vadus, lai to izdarītu kā pagaidu pasākumu.

6522 portam A un B ir piestiprinātas ligzdas pie sliedēm, lai varētu viegli ievietot LED zīmes.

Tagad ir daudz mazāk vadu nekā maizes dēļa versijā.

2. solis: programmēšanas teorija

Programmēšanas teorija
Programmēšanas teorija

6522 ir divi I/O porti, kā arī daudzas citas funkcijas, taču A un B ports ir viegli pieejami. Lai izvadītu datus ostā, ir attiecīgi jāiestata datu virziena reģistrs (DDR) un dati jānosūta uz pašu ostu.

Pēc iepriekšminētā iestatīšanas 6522 atrodas pie E000 USD.

Lai izvadītu datus portā B, DDR pie $ E002 ir iestatīts uz $ FF (255 - visi izvadi) un dati tiek nosūtīti uz $ E000.

Lai izvadītu datus A portā, DDR pie $ E003 ir iestatīts uz $ FF (255 - visi izvadi) un dati tiek nosūtīti uz $ E001.

Tālāk esošais kods ielādē $ FF 6502 A reģistrā un raksta to DDR B par $ E002. Pēc tam tas ielādē 55 USD un raksta to ORB. Kods tiek pagriezts (piešķirot USD AA) un rakstīts ORB. Programma atlec atpakaļ par USD 1005 un atkārtojas bezgalīgi. PIEZĪME: DDR ir jāinicializē tikai vienu reizi.

Adrese Hexdump demontāža

$ 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 ASV dolāri binārā ir 010101010, bet AA - 10101010, tāpēc gaismas diodes pārmaiņus ieslēdz 4, izslēdz 4.

Ātrs un netīrs labojums:

Nomainiet 74HC00 (Quad 2 ieejas NAND vārti) ar 74HC08 (Quad 2 ieeja UN vārti), un 6522 tagad atrodas pie 6000 USD, nevis E000 USD. Tas pārvieto to no 6502 adresējamās atmiņas augšējās 32K uz apakšējo 32K.

3. darbība: Arduino programma un izvade

Arduino programma un izvade
Arduino programma un izvade

Tā kā 6502 nav RAM, no kura lasīt, Arduino piegādā programmu lasīšanai. Kad 18. tapā tiek konstatēts pulksteņa impulss, Arduino ievieto programmas datus datu kopnē (Arduino 39, 41, 43, 45, 47, 49, 51 un 53 tapas). 6502 ģenerē savas adreses, kuras Arduino uzrauga tikai uz pāra numurētajām tapām 22 līdz 52. Arduino arī piegādā pulksteņa impulsu uz 37. tapas. 6502 R/W līnija tiek uzraudzīta 31. tapā.

Tā kā Arduino piegādā datus, līdz šim nav izdevies panākt, lai 6502 ievadītu datus no VIA (ja vien jūs labāk nezināt).

Arduino programma ir zemāk, un seriālā monitora izvade ir virs.

4. solis. Secinājums

Atkal esmu mēģinājis parādīt, kā izveidot minimālu "6502 datoru".

Šajā posmā 6502 joprojām paļaujas uz Arduino, lai nodrošinātu to ar programmu un pulksteņa impulsu, lai tas darbotos.

Tas ir solis tālāk nekā tad, kad es to uzstādīju uz maizes dēļa.

Šoreiz datu izvades fiksēšanai neesmu izmantojis 74HC373, bet sarežģītāko 6522. Arī 6522 ir divi I/O porti.

Es plānoju turpināt šo projektu, instalējot kādu SRAM vai EEPROM.

Ieteicams: