جدول المحتويات:

6502 و 6522 الكمبيوتر الأدنى (مع Arduino MEGA) الجزء 2: 4 خطوات
6502 و 6522 الكمبيوتر الأدنى (مع Arduino MEGA) الجزء 2: 4 خطوات

فيديو: 6502 و 6522 الكمبيوتر الأدنى (مع Arduino MEGA) الجزء 2: 4 خطوات

فيديو: 6502 و 6522 الكمبيوتر الأدنى (مع Arduino MEGA) الجزء 2: 4 خطوات
فيديو: 6502 Badge for the Vintage Computer Festival Midwest 2017 2024, شهر نوفمبر
Anonim
6502 و 6522 الحد الأدنى من الكمبيوتر (مع Arduino MEGA) الجزء 2
6502 و 6522 الحد الأدنى من الكمبيوتر (مع Arduino MEGA) الجزء 2

متابعة من Instructable السابق ، لقد قمت الآن بوضع 6502 على لوحة شريطية وأضفت 6522 محول واجهة متعدد الاستخدامات (VIA). مرة أخرى ، أنا أستخدم إصدار WDC من 6522 ، حيث إنه مطابق تمامًا ل 6502. لا تستخدم هذه الرقائق الجديدة طاقة أقل بكثير من إصدارات MOS الأصلية فحسب ، بل يمكن تشغيلها بسرعات أبطأ أو حتى التنقل خلالها برنامج بدون أي مشاكل.

تم كتابة برنامج Arduino في الأصل بواسطة Ben Eater (الذي لديه العديد من مقاطع الفيديو على YouTube) وتم تعديله بواسطتي لتحقيق هذه النتيجة.

اللوازم

1 × معالج WDC W65C02

1 × WDC W65C22 محول واجهة متعدد الاستخدامات

1 × 74HC00N IC (بوابة NAND رباعية دخلين) أو ما شابه ذلك

1 × 10 سم (35 خط) لوح شريطي

2 × 40 دبوس مآخذ DIL

1 × 14 دبوس مقبس DIL

دبابيس رأس PCB 2.54 مللي متر

مقابس رأس ثنائي الفينيل متعدد الكلور 2.54 مللي متر

1 × 12 مم لحظة اللمس زر التبديل ثنائي الفينيل متعدد الكلور شنت SPST أو ما شابه ذلك

1 × 1 كيلو المقاوم

1 × 3K3 المقاوم

مكثفات سيراميك 2 × 0.1 فائق التوهج

1 × 8 طريقة إضاءة مائية سرادق 5 مللي متر أحمر LED

سلك ملون مختلف للوصلات

8 أسلاك توصيل ذكر - ذكر

الخطوة 1: لوحة الدوائر

لوحة الدوائر
لوحة الدوائر
لوحة الدوائر
لوحة الدوائر

لوحة الدائرة مضغوطة تمامًا ويتم توصيل الجانب السفلي مباشرة بـ Arduino MEGA. لتحقيق ذلك ، يتم دفع المسامير إلى أقصى حد ممكن في حوامل البلاستيك قبل أن يتم لحامها في الجانب السفلي من اللوحة. كان من الممكن استخدام دبابيس أطول لهذا الغرض ، لكن المسامير القياسية تعني أن اللوحة تستقر بقوة فوق MEGA.

لقد اصطفت الدوائر المتكاملة 6502 و 6522 بحيث تستفيد من مسارات لوحة الشريط للاتصال بـ MEGA. هناك أيضًا بعض الوصلات الخاصة بـ 6502 مخفية تحت IC. عند صنع السبورة ، كان أول ما يجب فعله هو قطع 16 شريطا والتي ستتصل بصف مزدوج من مآخذ Arduino. لا يلزم قطع 2 الخارجي لأن 5v و Gnd على كلا الجانبين. اللحام التالي في الصفين من 18 دبوسًا على الجانب السفلي ، والصفين من 18 مقبسًا في الجانب العلوي.

بعد ذلك تم لحام مآخذ DIL في مكانها وقطع المسارات بينها. كان بإمكاني حفظ اتصال عن طريق وضع دبوس 14 من 74HC00 على نفس المسار مثل 5 فولت. لقد قطعت المسارات فقط عندما كنت متأكدًا من أنهم بحاجة إلى أن يكونوا أثناء لحام أسلاك التوصيل. ومع ذلك ، لا تسير الأمور دائمًا كما هو مخطط لها ، فقد صممت في الأصل لوحة الشريط من لوحة الخبز السابقة باستخدام المسامير 2 و 3 و 7 من Arduino ، لكن هذه لا تتوافق مع الثقوب الموجودة في لوحة الشريط ، لذلك كان لا بد من استخدامها دبابيس 18 و 31 و 37. ومن هنا جاءت الروابط الموجودة على لوحي في 31 و 37. قد تتساءل لماذا لم أستخدم أحد المسامير غير المستخدمة (23 ، 24 إلخ) على مدار الساعة ، هذا لأنهم لا يدعمون المقاطعات ، لذلك كان لا بد من استخدام دبوس 18 أو 19 أو 20 أو 21 الذي يعمل. لحسن الحظ ، تصطف هذه المسامير الأربعة مع الثقوب الموجودة في لوحة الشريط وتبقي كل شيء مضغوطًا. يعتبر Pin 18 أيضًا الأبعد عن جميع الأسلاك الأخرى.

قد تلاحظ أيضًا أن لوحتي المكتملة ليست تمامًا نفس الرسم التخطيطي الخاص بي. هذا لأنني كنت أتبع مخطط شخص آخر. ومن هنا جاءت التوصيلات بـ 74HC00. لقد أضفت أيضًا مؤشر LED للطاقة وصفين إضافيين من المقابس لـ Gnd و 5 فولت بالإضافة إلى مكثفات أخرى.

كان بإمكاني توصيل مآخذ البيانات ، لكن هذا قد يعني وجود المزيد من الأسلاك التي تعبر اللوحة. لقد اخترت 8 أسلاك توصيل للقيام بذلك كإجراء مؤقت.

يحتوي المنفذان 6522 A و B على مآخذ ملحومة في مساراتهما بحيث يمكن إدخال علامات LED بسهولة.

عدد الأسلاك الآن أقل بكثير مما كان عليه في إصدار لوح الخبز.

الخطوة الثانية: نظرية البرمجة

نظرية البرمجة
نظرية البرمجة

يحتوي 6522 على منفذي إدخال / إخراج بالإضافة إلى العديد من الميزات الأخرى ، ولكن يمكن الوصول بسهولة إلى المنفذين A و B. لإخراج البيانات على المنفذ ، يجب تعيين سجل اتجاه البيانات (DDR) وفقًا لذلك وإرسال البيانات إلى المنفذ نفسه.

مع الإعداد أعلاه ، يقع 6522 في E000 دولار.

لإخراج البيانات على المنفذ B ، يتم تعيين DDR عند $ E002 على $ FF (255 - جميع المخرجات) ويتم إرسال البيانات إلى $ E000.

لإخراج البيانات على المنفذ A ، يتم تعيين DDR عند $ E003 إلى $ FF (255 - جميع المخرجات) ويتم إرسال البيانات إلى $ E001.

يقوم الكود أدناه بتحميل $ FF في السجل 6502 A وكتابته على DDR B بسعر E002 دولار. ثم يقوم بتحميل 55 دولارًا ويكتبها في ORB. يتم تدوير الكود (إعطاء AA دولارًا) وكتابته إلى ORB. البرنامج يقفز مرة أخرى tp $ 1005 ويتكرر إلى ما لا نهاية. ملاحظة: يحتاج DDR إلى التهيئة مرة واحدة فقط.

العنوان Hexdump Dissassembly

1000 دولار أمريكي

55 دولارًا في النظام الثنائي هو 010101010 و $ AA هو 10101010 مما يتسبب في تبديل المصابيح 4 ، و 4 إيقاف.

الإصلاح السريع والقذر:

استبدل 74HC00 (Quad 2 input NAND Gate) بـ 74HC08 (Quad 2 input AND Gate) و 6522 يقع الآن عند 6000 دولار بدلاً من E000 دولار. يؤدي هذا إلى نقله من 32 كيلو بايت العلوي إلى 32 كيلو بايت السفلي من الذاكرة القابلة للتوجيه الخاصة بـ 6502.

الخطوة 3: برنامج Arduino والإخراج

برنامج Arduino والإخراج
برنامج Arduino والإخراج

نظرًا لأن 6502 لا يحتوي على ذاكرة وصول عشوائي للقراءة منها ، فإن Arduino يوفر البرنامج لقراءته. عند اكتشاف نبضة على مدار الساعة على الرقم 18 ، يضع Arduino بيانات البرنامج على ناقل البيانات (دبابيس Arduino 39 و 41 و 43 و 45 و 47 و 49 و 51 و 53). يولد 6502 عناوينه الخاصة التي لا يتم مراقبتها إلا بواسطة Arduino على المسامير المرقمة من 22 إلى 52. يقوم Arduino أيضًا بتزويد نبض الساعة على الدبوس 37. يتم مراقبة خط R / W لـ 6502 على دبوس 31.

نظرًا لأن Arduino يوفر البيانات ، لم يكن من الممكن حتى الآن الحصول على 6502 لإدخال البيانات من VIA (ما لم تكن تعرف جيدًا).

برنامج Arduino أدناه وعينة إخراج من Serial Monitor أعلاه.

الخطوة 4: الخاتمة

مرة أخرى حاولت أن أوضح كيفية إعداد الحد الأدنى من "6502 Computer".

في هذه المرحلة ، لا يزال 6502 يعتمد على Arduino لتزويده ببرنامج ونبض ساعة من أجل تشغيله.

إنها خطوة أبعد مما كانت عليه عندما قمت بإعداده على لوح الخبز.

لم أستخدم 74HC373 هذه المرة ولكن 6522 الأكثر تعقيدًا لإغلاق مخرجات البيانات. يحتوي 6522 أيضًا على منفذي إدخال / إخراج.

أنوي أخذ هذا المشروع إلى أبعد من ذلك عن طريق تثبيت بعض ذاكرة SRAM أو EEPROM.

موصى به: