
Isi kandungan:
2025 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2025-01-23 15:00

Setelah mengikuti Instructable sebelumnya, saya sekarang meletakkan 6502 pada papan jalur dan menambahkan 6522 Versatile Interface Adapter (VIA). Sekali lagi, saya menggunakan versi WDC 6522, kerana ia sangat sesuai untuk 6502 mereka. Bukan sahaja cip baru ini menggunakan kuasa yang jauh lebih rendah daripada versi MOS yang asal, tetapi ia dapat dijalankan dengan kelajuan yang lebih perlahan atau bahkan melangkah lebih jauh program tanpa masalah.
Program Arduino pada mulanya ditulis oleh Ben Eater (yang mempunyai banyak video di YouTube) dan telah diubah suai oleh saya untuk mencapai hasil ini.
Bekalan
Pemproses 1 x WDC W65C02
1 x Penyesuai Antaramuka Serbaguna WDC W65C22
1 x 74HC00N IC (gerbang NAND Quad 2-input) atau yang serupa
Lebar 1 x 10cm (garis 35) Papan jalur
Soket DIL 2 x 40 pin
Soket DIL 1 x 14 pin
Pin Header PCB 2.54mm
Soket Header PCB 2.54mm
1 x 12mm Tentil Tushile Push Button Switch PCB Mounted SPST atau yang serupa
Perintang 1 x 1K
Perintang 1 x 3K3
Kapasitor seramik 2 x 0.1 uF
1 x 8 Way Water Light Marquee LED merah 5mm
Pelbagai wayar berwarna untuk sambungan
8 wayar pautan lelaki - lelaki
Langkah 1: Papan Litar


Papan litar cukup padat dan bahagian bawahnya disambungkan terus ke Arduino MEGA. Untuk mencapai ini, pin ditolak sejauh mungkin ke dalam pemegang plastik sebelum disolder ke bahagian bawah papan. Pin yang lebih panjang mungkin digunakan untuk ini, tetapi pin standard bermaksud bahawa papan diletakkan dengan kuat di atas MEGA.
Saya telah membariskan IC 6502 dan 6522 sehingga mereka menggunakan trek papan jalur untuk menyambung ke MEGA. Terdapat juga beberapa sambungan untuk 6502 yang tersembunyi di bawah IC. Semasa membuat papan, perkara pertama yang perlu dilakukan ialah memotong 16 helai yang akan bersambung dengan soket Arduino yang berganda. Bahagian luar 2 tidak perlu dipotong kerana 5v dan Gnd berada di kedua sisi. Pateri seterusnya dalam 2 baris 18 pin di bahagian bawah, dan 2 baris 18 soket di bahagian atas.
Selepas itu soket DIL disolder di tempatnya dan trek dipotong di antara mereka. Saya dapat menyelamatkan sambungan dengan meletakkan pin 14 dari 74HC00 pada landasan yang sama dengan 5v. Saya hanya memotong trek ketika saya yakin bahawa ia mesti berada semasa saya menyolder wayar penyambung. Walau bagaimanapun, perkara tidak selalu sesuai, saya pada mulanya merancang papan jalur dari papan roti sebelumnya menggunakan pin 2, 3 dan 7 Arduino, tetapi ini tidak selaras dengan lubang di papan jalur, jadi terpaksa menggunakan pin 18, 31 dan 37. Oleh itu pautan di papan saya pada 31 dan 37. Anda mungkin tertanya-tanya mengapa saya tidak menggunakan salah satu pin yang tidak digunakan (23, 24 dan lain-lain) untuk jam, ini kerana ia tidak menyokong mengganggu, jadi terpaksa menggunakan pin 18, 19, 20 atau 21 yang berlaku. Nasib baik 4 pin ini sejajar dengan lubang di papan jalur dan memastikan semuanya tetap padat. Pin 18 juga paling jauh dari semua wayar lain.
Anda juga mungkin menyedari bahawa papan lengkung saya tidak sama dengan rajah saya. Ini kerana saya mengikuti rajah orang lain. Oleh itu sambungan ke 74HC00. Saya juga telah menambahkan LED kuasa dan 2 baris soket tambahan untuk Gnd dan 5v serta beberapa kapasitor lagi.
Saya mungkin menghubungkan 2 soket data, tetapi ini bermaksud lebih banyak wayar melintasi papan. Saya memilih 8 wayar pautan untuk melakukan ini sebagai langkah sementara.
Pelabuhan 6522 A dan B mempunyai soket yang disolder ke trek mereka sehingga cermin LED dapat dimasukkan dengan mudah.
Terdapat lebih banyak wayar sekarang daripada versi papan roti.
Langkah 2: Teori Pengaturcaraan

6522 mempunyai dua port I / O serta banyak ciri lain, tetapi port A dan B mudah diakses. Untuk mengeluarkan data di port, Data Direction Register (DDR) perlu disetel dengan tepat dan data dihantar ke port itu sendiri.
Dengan penyediaan di atas, 6522 berada pada harga $ E000.
Untuk mengeluarkan data di port B, DDR pada $ E002 ditetapkan ke $ FF (255 - semua output) dan data dikirim ke $ E000.
Untuk mengeluarkan data di port A, DDR pada $ E003 ditetapkan ke $ FF (255 - semua output) dan data dikirim ke $ E001.
Kod di bawah memuat $ FF ke dalam daftar 6502 A dan menulisnya ke DDR B pada harga $ E002. Ia kemudian memuat $ 55 dan menulisnya ke ORB. Kod tersebut diputar (memberikan $ AA) dan ditulis kepada ORB. Program ini melonjak kembali $ 1005 dan berulang tanpa henti. CATATAN: DDR hanya perlu dimulakan sekali sahaja.
Alamat Pembongkaran Hexdump
$ 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 dalam binari adalah 010101010 dan $ AA ialah 10101010 yang menyebabkan LED bergantian 4 pada, 4 mati.
Pembaikan cepat dan kotor:
Gantikan 74HC00 (Quad 2 input NAND Gate) dengan 74HC08 (Quad 2 input AND Gate) dan 6522 kini terletak pada $ 6000 dan bukannya $ E000. Ini memindahkannya dari 32K atas ke 32K bawah dari memori 6502 yang dapat dialamatkan.
Langkah 3: Program dan Hasil Arduino

Oleh kerana 6502 tidak mempunyai RAM untuk dibaca, Arduino menyediakan program untuk dibaca. Apabila denyut jam dikesan pada pin 18, Arduino meletakkan data program ke bus data (pin Arduino 39, 41, 43, 45, 47, 49, 51 dan 53). 6502 menghasilkan alamat sendiri yang hanya dipantau oleh Arduino pada pin bernombor genap 22 hingga 52. Arduino juga membekalkan denyut jam pada pin 37. Garis R / W 6502 dipantau pada pin 31.
Oleh kerana Arduino menyediakan data, sejauh ini tidak mungkin untuk mendapatkan 6502 untuk memasukkan data dari VIA (kecuali jika anda tahu lebih baik).
Program Arduino ada di bawah dan contoh output dari Serial Monitor ada di atas.
Langkah 4: Kesimpulannya
Sekali lagi saya telah cuba menunjukkan cara menyediakan "6502 Computer" minimum.
Pada tahap ini 6502 masih bergantung pada Arduino untuk menyediakannya dengan program dan denyut jam agar dapat berjalan.
Ini adalah langkah lebih jauh daripada ketika saya memasangnya di papan roti.
Saya tidak menggunakan 74HC373 kali ini tetapi 6522 yang lebih kompleks untuk memasukkan output data. Juga 6522 mempunyai dua port I / O.
Saya berhasrat untuk meneruskan projek ini dengan memasang beberapa SRAM atau EEPROM.
Disyorkan:
Cara Hebat untuk Mengubah Bahagian Komputer Lama: 7 Langkah (dengan Gambar)

Cara Hebat untuk Mengganti Bahagian Komputer Lama: Dalam arahan ini, saya akan memberi anda idea mengenai cara menggunakan semula beberapa bahagian komputer lama yang dibuang oleh semua orang. Anda tidak akan percaya, tetapi komputer lama ini mempunyai banyak bahagian menarik di dalamnya. tidak akan memberi sepenuhnya
6502 Minimal Komputer (dengan Arduino MEGA) Bahagian 3: 7 Langkah

6502 Komputer Minimal (dengan Arduino MEGA) Bahagian 3: Melangkah lebih jauh lagi, saya kini telah menambahkan Octal Latch, 8 LED segi empat tepat dan susunan perintang 220 Ohm ke papan utama. Terdapat juga jumper antara pin dan ground umum array, sehingga LED dapat dimatikan. Pintu 74HC00 NAND h
6502 Komputer Minimal (dengan Arduino MEGA) Bahagian 1: 7 Langkah

6502 Minimal Computer (dengan Arduino MEGA) Bahagian 1: Mikroprosesor 6502 pertama kali muncul pada tahun 1975 dan dirancang oleh pasukan kecil yang diketuai oleh Chuck Peddle untuk Teknologi MOS. Pada masa itu ia digunakan dalam konsol video dan komputer rumah termasuk Atari, Apple II, Nintendo Entertainment System, BBC Micr
Menggunakan semula Bahagian Komputer Lama untuk Membina Sistem Mudah Alih yang Murah: 3 Langkah (dengan Gambar)

Menggunakan semula Bahagian Komputer Lama untuk Membina Sistem Mudah Alih yang Murah: Baru-baru ini Laptop lama saya mati dan saya terpaksa membeli yang baru, (RIP! 5520 anda akan ketinggalan). Papan induk komputer riba mati dan kerosakan dapat diperbaiki Sehingga baru-baru ini saya membawa pai Raspberry dan mula bermain-main dengan IOT sutff tetapi memerlukan
Cara Mengukir Tetingkap Komputer (Bahagian 2): 5 Langkah (dengan Gambar)

Cara Mengukir Tingkap Komputer (Bahagian 2): Ini berlaku dengan Cara mengukir Tingkap Komputer (Bahagian 1) Ini adalah pilihan tetapi saya rasa ia kelihatan keren. Bahagian 2 mengambil ukiran itu dan membuatnya menonjol. Ini menjadikan tingkap kelihatan seperti Tron. Ini adalah kesan yang baik tetapi anda memerlukan beberapa