Агуулгын хүснэгт:

6502 & 6522 Minimal Computer (Arduino MEGA -тай хамт) 2 -р хэсэг: 4 алхам
6502 & 6522 Minimal Computer (Arduino MEGA -тай хамт) 2 -р хэсэг: 4 алхам

Видео: 6502 & 6522 Minimal Computer (Arduino MEGA -тай хамт) 2 -р хэсэг: 4 алхам

Видео: 6502 & 6522 Minimal Computer (Arduino MEGA -тай хамт) 2 -р хэсэг: 4 алхам
Видео: Arduino Mega 6502 - Work in Progress #1 2024, Арваннэгдүгээр
Anonim
6502 & 6522 Minimal Computer (Arduino MEGA -тай хамт) 2 -р хэсэг
6502 & 6522 Minimal Computer (Arduino MEGA -тай хамт) 2 -р хэсэг

Өмнөх зааварчилгааны дагуу би одоо 6502 -ийг туузан самбар дээр байрлуулж, 6522 олон талт интерфэйс адаптер (VIA) нэмсэн. Дахин хэлэхэд би 6522 -ийн WDC хувилбарыг ашиглаж байна, учир нь энэ нь тэдний 6502 -тэй яг таарч байгаа юм. Эдгээр шинэ чипүүд нь MOS -ийн анхны хувилбаруудаас хамаагүй бага эрчим хүч хэрэглэдэг төдийгүй удаан хурдтай ажиллуулах эсвэл бүр шатаар дамжуулж болно. ямар ч асуудалгүй програм.

Arduino програмыг анх Ben Eater (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 х 12 мм -ийн түр зуурын хүрэлцэх товчлуурыг ПХБ -д суурилуулсан SPST эсвэл үүнтэй төстэй

1 x 1K эсэргүүцэл

1 x 3K3 эсэргүүцэл

2 x 0.1 uF керамик конденсатор

1 х 8 талын усны гэрлийн марк 5мм улаан LED

Холбох зориулалттай янз бүрийн өнгийн утас

8 эрэгтэй - эрэгтэй холбоосын утас

Алхам 1: Хэлхээний самбар

Хэлхээний самбар
Хэлхээний самбар
Хэлхээний самбар
Хэлхээний самбар

Хэлхээний самбар нь нэлээд авсаархан бөгөөд доод хэсэг нь Arduino MEGA -тай шууд холбогддог. Үүнийг хийхийн тулд хавтанг доод талд гагнахаас өмнө тээглүүрийг аль болох хуванцар эзэмшигч рүү түлхдэг. Үүний тулд илүү урт тээглүүр ашиглаж болох байсан боловч стандарт тээглүүр нь самбар нь MEGA -ийн орой дээр бат бэх байрладаг гэсэн үг юм.

Би 6502 ба 6522 IC -ийг жагсааж, MEGA -тай холбогдохын тулд туузан хавтангийн замыг ашигладаг. IC -ийн доор нуугдсан 6502 -ийн зарим холболтууд байдаг. Самбар хийхдээ хамгийн түрүүнд хийх ёстой зүйл бол Ардуиногийн давхар эгнээний залгууртай холбогдох 16 туузыг огтлох явдал байв. 5v ба Gnd хоёр талдаа байгаа тул гаднах 2 -ийг огтлох шаардлагагүй. Дараагийн талд нь 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 -тэй холболтууд. Би бас цахилгаан LED, Gnd ба 5v -ийн нэмэлт 2 эгнээ залгуур, бас хэд хэдэн конденсатор нэмсэн.

Би 2 өгөгдлийн залгуурыг холбож болох байсан, гэхдээ энэ нь самбарыг давж гарах олон утас гэсэн үг юм. Би үүнийг түр зуурын арга хэмжээ болгохын тулд 8 холбоосын утсыг сонгосон.

6522 А ба В портууд нь залгууруудыг гагнасан бөгөөд ингэснээр LED маркийг амархан оруулдаг.

Талхны самбар дээрх хувилбараас хамаагүй бага утас одоо байна.

Алхам 2: Програмчлалын онол

Програмчлалын онол
Програмчлалын онол

6522 нь хоёр оролт гаралтын порт болон бусад олон онцлог шинж чанартай боловч А ба В портод хялбархан нэвтрэх боломжтой. Порт дээрх өгөгдлийг гаргахын тулд өгөгдлийн чиглэлийн бүртгэлийг (DDR) тохируулж, өгөгдлийг порт руу өөрөө илгээх шаардлагатай.

Дээрх тохиргоог хийснээр 6522 нь E000 долларт байрладаг.

B порт дээрх өгөгдлийг гаргахын тулд $ 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 бөгөөд энэ нь LED -ийг 4 асаах, 4 унтраахад хүргэдэг.

Хурдан, бохир засвар:

74HC00 (Quad 2 оролтын NAND Gate) -ийг 74HC08 (Quad 2 оролт ба хаалга) -аар соль, 6522 нь E000 долларын оронд 6000 доллараар байрлаж байна. Энэ нь 6502 хаягийн санах ойн дээд 32K -аас доод 32K руу шилжүүлдэг.

Алхам 3: Arduino програм ба гаралт

Arduino програм ба гаралт
Arduino програм ба гаралт

6502 нь унших санах ойгүй тул Arduino нь унших програмыг нийлүүлж байна. 18 -р зүү дээр цагны импульс илрэх үед Arduino програмын өгөгдлийг өгөгдлийн автобусанд оруулдаг (Arduino pins 39, 41, 43, 45, 47, 49, 51, 53). 6502 нь өөрийн хаягийг гаргадаг бөгөөд үүнийг зөвхөн Arduino 22 -оос 52 хүртэлх тооны тэгш өнцөгтүүдээр хянадаг. Arduino нь 37 -р зүү дээрх цагийн импульсийг нийлүүлдэг. 6502 -ийн R/W шугамыг 31 -р зүү дээр хянадаг.

Arduino өгөгдлийг нийлүүлж байгаа тул одоог хүртэл 6502 -ийг VIA -аас өгөгдөл оруулах боломжгүй байна (хэрэв та сайн мэдэхгүй бол).

Arduino програмыг доор, Цуваа монитороос авсан дээжийн гаралтыг дээр байрлуулна.

Алхам 4: Дүгнэлт

Дахин хэлэхэд би хамгийн бага "6502 компьютер" -ийг хэрхэн тохируулахыг харуулахыг хичээсэн.

Энэ үе шатанд 6502 нь Arduino -ийг ажиллуулахын тулд түүнд програм, цагны импульс нийлүүлдэг хэвээр байна.

Энэ нь би үүнийг талхны тавцан дээр тавьснаас нэг алхам илүү юм.

Би энэ удаад 74HC373 -ийг ашиглаагүй боловч өгөгдлийг хаахын тулд илүү төвөгтэй 6522 -ийг ашигласан. Мөн 6522 нь хоёр оролт гаралтын порттой.

Би SRAM эсвэл EEPROM суулгаснаар энэ төслийг цааш үргэлжлүүлэх бодолтой байна.

Зөвлөмж болгож буй: