فهرست مطالب:
- تدارکات
- مرحله 1: مفهوم
- مرحله 2: الزامات
- مرحله 3: ترکیب آن
- مرحله 4: آزمایش مدار
- مرحله 5: مرحله بعد
- مرحله 6: برنامه
- مرحله 7: نتیجه گیری
تصویری: حداقل کامپیوتر 6502 (با Arduino MEGA) قسمت 1: 7 مرحله
2024 نویسنده: John Day | [email protected]. آخرین اصلاح شده: 2024-01-30 08:53
ریزپردازنده 6502 اولین بار در سال 1975 ظاهر شد و توسط تیم کوچکی به سرپرستی Chuck Peddle برای فناوری MOS طراحی شد. در آن زمان از آن در کنسول های ویدئویی و رایانه های خانگی از جمله Atari ، Apple II ، Nintendo Entertainment System ، BBC Micro ، Commodore VIC20 و 64 استفاده می شد. در آن زمان یکی از ارزان ترین در بازار بود. هرگز هرگز از بین نرفته است و اکنون توسط علاقه مندان و متخصصان برای بسیاری از برنامه ها مورد استفاده قرار می گیرد.
نسخه ای که من استفاده می کنم W65C02S6TPG-14 است که توسط مرکز طراحی وسترن ساخته شده است و ده برابر کمتر از نسخه اصلی قدرت مصرف می کند. این ویژگی خاص است زیرا نیازی نیست مانند تراشه اصلی با فرکانس 1 مگاهرتز کار کند. می تواند بسیار کندتر اجرا شود یا برای تک مرحله ای در برنامه استفاده شود و حتی تا 14 مگاهرتز افزایش یابد. Data Sheet برای تراشه قابلیت های آن را توضیح می دهد. سایر تراشه های 6502 این قابلیت را ندارند و به این ترتیب کار نمی کنند. تراشه ها در حال حاضر در Ebay و سایر منابع موجود است.
تدارکات
تمام قطعات مورد استفاده در حال حاضر در Ebay ، AliExpress و دیگران موجود است.
مرحله 1: مفهوم
من از Ben Eater الهام گرفتم که مجموعه ای از فیلم ها را در یوتیوب در مورد 6502 و بسیاری از جنبه های دیگر ساخت کامپیوتر و مدار تولید کرده است. این برنامه در اصل توسط او نوشته شده است و من این و برخی از طرح های او را تغییر داده ام تا این دستورالعمل را ارائه دهم. یکی دیگر از افرادی که از من الهام گرفت اندرو جیکوبز بود که بخشی در GitHub دارد که در آن از میکرو PIC برای کنترل 6502 خود استفاده می کند.
مانند بن ، من از Arduino MEGA برای نظارت بر 6502 استفاده می کنم. من همچنین از MEGA برای ارائه سیگنال ساعت برخلاف بن استفاده می کنم. در حال حاضر من از هیچ EEPROM یا RAM استفاده نمی کنم.
مرحله 2: الزامات
برای ساخت این "رایانه" لیستی از موارد به شرح زیر است:
1 عدد آردوینو MEGA
1 x مرکز طراحی غربی W65C02S6TPG-14
1 x 74HC00N IC (چهار ورودی NAND دو ورودی) یا مشابه آن
1 x 74HC373N IC (چفت شفاف نوع Octal D) یا مشابه آن
2 تخته نان سوراخ دار 8 x 830 (1 عدد در یک خرج کردن)
انواع مختلف دوپونت - نر و سیمهای اتصال
2 عدد LED (من از رنگ آبی 5 میلی متری استفاده کردم زیرا می توانید بدون مقاومت از آن دور شوید)
سوئیچ 1 x 12 میلی متری لمسی لحظه ای PCB نصب SPST یا مشابه آن
مقاومت 1 x 1K
2 خازن سرامیکی 0.1 F UF
1 x 8 Way Water Light Marquee LED قرمز 5 میلی متری (مانند بالا) یا 8 LED و مقاومت
توجه: در صورت دریافت کیت بدون جوش ، می توانید LED ها را اشتباه وارد کنید تا کاتد معمولی باشند. من یک سرب مگس (به جای پین) را به آن وصل می کنم تا بتواند به راحتی در جاهای دیگر متصل شود. VCC اکنون Ground می شود. البته می توانید LED ها را بچرخانید (روی یک قطعه مونتاژ شده) و دوباره آنها را لحیم کنید ، اما این مقدار زیادی اشتباه است! کیت ها در حال حاضر در AliExpress در دسترس هستند.
مرحله 3: ترکیب آن
استفاده از سیمهای جدید DuPont که از نوار آنها جدا نشده بود برای گذرگاه آدرس و داده آسانتر شد.
پین 9 (A0) 6502 را به پین 52 MEGA وصل کنید ،
پین 10 (A1) از 6502 تا پین 50 و غیره…
تا زمان
پین 25 (A15) 6502 را به پین 22 MEGA وصل کنید.
16 اتصال تا کنون
به همین ترتیب
پین 26 (D7) 6502 را به پین 39 MEGA وصل کنید ،
پین 27 (D6) از 6502 تا پین 41 و غیره…
تا زمان
پین 33 (D0) 6502 را به پین 53 MEGA وصل کنید.
8 اتصال دیگر
پین 8 (VDD) را در MEGA به 5 ولت وصل کنید.
یک خازن 0.1uF متصل از پایه 8 به Gnd تخته نان ممکن است در اینجا مفید باشد اما لازم نیست.
پین 21 (VSS) را به Gnd در MEGA وصل کنید.
پین های 2 ، 4 ، 6 ، 36 و 38 را می توان به 5 ولت وصل کرد
پین 37 (ساعت) را به پین 2 و پین 7 MEGA وصل کنید.
پین 34 (RWB) را به پین 3 MEGA وصل کنید.
پین 40 (بازنشانی) را مانند نمودار بالا وصل کنید.
مرحله 4: آزمایش مدار
در این مرحله 6502 کار می کند و از برنامه 1 می توان استفاده کرد. اگر از خیمه 8 راهه (مانند بالا) استفاده می کنید ، می توانید آن را مستقیماً در تخته نان قرار داده و سربی مگس به زمین متصل شود ، یا می توانید از 8 LED و مقاومت استفاده کنید. LEDS آنچه در گذرگاه داده است نشان می دهد.
در این مرحله بهتر است تاخیرهای حلقه () را روی 500 یا بیشتر تنظیم کنید تا آنچه را که اتفاق می افتد دنبال کنید.
شما باید خروجی مشابهی را در مانیتور سریال مانند خروجی بالا دریافت کنید. وقتی Reset فشرده می شود ، پردازنده 7 چرخه را پشت سر می گذارد و سپس شروع برنامه را در مکان های $ FFFC و $ FFFD جستجو می کند. از آنجا که هیچ آدرس فیزیکی برای 6502 برای خواندن وجود ندارد ، ما باید آنها را از MEGA تهیه کنیم.
در خروجی فوق ، 6502 $ FFFC و $ FFFD می خواند و 00 و 10 $ (کم بایت ، بایت بالا) دریافت می کند که شروع برنامه با $ 1000 است. سپس پردازنده شروع به اجرای برنامه در محل 1000 دلار (مانند بالا) می کند. در این حالت A9 و 55 دلار ، یعنی LDA#55 $ (85 را در باتری بارگذاری کنید) می خواند. مجدداً از آنجا که هیچ مکان حافظه فیزیکی وجود ندارد ، MEGA آنچه را که از گذرگاه داده خوانده می شود شبیه سازی می کند.
55 دلار (85) الگوی دودویی 01010101 و در صورت چرخش 1 بیت چپ ، 10101010 دلار آمریکا (170) نشان می دهد.
این برنامه نشان می دهد که پردازنده به درستی کار می کند اما به زودی کمی خسته کننده می شود ، بنابراین به قسمت بعدی بروید.
مرحله 5: مرحله بعد
"شمع اسپاگتی" در بالا احتمالاً چیزی شبیه به چیزی است که بعد از این مرحله خواهید داشت.
در مرحله بعد باید IC های 74HC373N و 74HC00N را به تخته نان اضافه کنید.
متأسفانه پین های 373 با گذرگاه داده مطابقت ندارند ، بنابراین باید با سیم متصل شوند.
5 ولت را به پین 20 وصل کنید.
Ground را به پین 10 وصل کنید.
پین 33 (D0) 6502 را به پین 3 (D0) 74HC373N وصل کنید
و همینطور با پین های D1 تا D7.
Q0 تا Q7 خروجی هستند و اینها نیاز به اتصال به دیوار LED یا LED ها و مقاومت های جداگانه دارند.
با 74HC00 فقط 2 دروازه آن مورد نیاز است
5 ولت را به پین 14 وصل کنید.
Ground را به پین 7 وصل کنید.
پین 17 (A8) 6502 را به پین 1 (1A) 74HC00 وصل کنید
پین 25 (A15) 6502 را به پین 2 (1B) 74HC00 وصل کنید
پین 34 (R/W) 6502 را به پین 5 (2B) 74HC00 وصل کنید
پین 3 (1Y) 74HC00 را به پین 4 (2A) 74HC00 وصل کنید
پین 6 (2Y) 74HC00 را به پین 11 (LE) 74HC373N وصل کنید
پین 11 (LE) 74HC373N را به پین 1 (OE) 74HC373N وصل کنید
شما می توانید یک LED آبی را به 1Y و زمین و همچنین 2Y را به زمین متصل کنید ، این نشان می دهد که گیت فعال است.
در نهایت خط را در رویه onClock از برنامه 1 به برنامه 2 تغییر دهید
setDataPins (برنامه 2 [افست]) ؛
مرحله 6: برنامه
برنامه 6502-Monitor شامل دو روال 6502 است که در بالا توضیح داده شد.
این برنامه هنوز در حال توسعه است و کمی مرتب نیست.
هنگام اجرای برنامه 2 ، تاخیر در حلقه () می تواند 50 یا کمتر باشد و حتی به طور کلی حذف شود. نظر دادن خطوط Serial.print () نیز باعث می شود 6502 سریعتر اجرا شود. قطع پین 1 (OE) 373 از پین 11 (LE) نتایج متفاوتی را ایجاد می کند. اتصال پین 1 و پین 11 373 از گیت های NAND به شما امکان می دهد در هر چرخه ساعت ، آنچه در گذرگاه داده است را ببینید.
اگر این پین بالا رفت ، ممکن است لازم باشد OE را به زمین وصل کنید تا آن را شناور نگذارید زیرا 8 خط خروجی غیرفعال است. وقتی پین LE زیاد است ، پین های خروجی همان ورودی ها هستند. با استفاده از پین LE قفل های کم خروجی ها ، یعنی اگر پین های ورودی تغییر کنند ، خروجی ها ثابت می مانند.
من سعی کردم برنامه را تا حد امکان ساده نگه دارم تا درک آن آسان تر شود.
آزمایش با تاخیرهای زمانی به شما این امکان را می دهد که دقیقاً آنچه 6502 انجام می دهد را دنبال کنید.
در زیر دو برنامه (هر دو به آدرس 1000 دلار) در 6502 Assembler ارائه شده است:
برنامه 1
LDA#55 دلار
خیر
ROL
STA 1010 دلار
یورو 1000 دلار
ROL محتویات باتری را یک بیت دیگر می چرخاند ، یعنی 55 دلار اکنون AA می شود.
در کد دستگاه (شش ضلعی): A9 55 EA 2A 8D 10 10 4C 00 10
برنامه 2
LDA#01 دلار
STA 8100 دلار
ADC#03 دلار
STA 8100 دلار
JMP 1005 دلار
در کد ماشین (شش ضلعی): A9 01 8D 00 81 69 03 03DD 81 81 4C 05 10
در برنامه 2 اکنون آدرس فیزیکی 8100 دلار وجود دارد که 74HC373 در گذرگاه آدرس واقع شده است.
یعنی A15 از 6502 32768 (8000 دلار) و A8 256 (0100 دلار) = 33024 (8100 دلار) است.
بنابراین وقتی 6502 به 8100 دلار (STA 8100 دلار) می نویسد ، R/W 6502 کم است و داده های گذرگاه داده 6502 وقتی 373 LE پایین می آید ، قفل می شود. به دلیل 74HC00 NAND Gate ، سیگنال ها معکوس می شوند.
در چاپ روی صفحه بالا ، نوشتن دوم 3 برابر شده است (ADC#$ 03) - از 7FF به 82 $ رسیده است.
در حقیقت ، بیش از 2 خط اتوبوس آدرس برای مکان خاص 373 استفاده می شود. از آنجا که این آدرس تنها آدرس فیزیکی از 65536 ممکن است ، نحوه عملکرد گذرگاه آدرس را نشان می دهد. می توانید پین آدرس های مختلف را آزمایش کرده و آن را در مکان دیگری قرار دهید. البته ، شما باید عملگرهای STA را به مکان جدید تغییر دهید. به عنوان مثال، در صورت استفاده از خطوط آدرس A15 و A9 آدرس 8200 دلار (32768 + 512) خواهد بود.
مرحله 7: نتیجه گیری
من سعی کرده ام نشان دهم که راه اندازی 6502 چقدر آسان است.
من در این زمینه متخصص نیستم ، بنابراین از هرگونه نظر یا اطلاعات سازنده استقبال می کنم.
خوش آمدید که این موضوع را بیشتر توسعه دهید و من به کارهایی که انجام داده اید علاقه مند خواهم بود.
من قصد دارم یک EEPROM ، SRAM و 6522 به پروژه اضافه کنم و در آینده آن را روی تخته نوار قرار دهم.
توصیه شده:
حداقل کامپیوتر 6502 (با Arduino MEGA) قسمت 3: 7 مرحله
حداقل کامپیوتر 6502 (با Arduino MEGA) قسمت 3: همچنان که جلوتر می روم ، اکنون یک Octal Latch ، 8 LED مستطیلی و یک آرایه مقاومت 220 اهم به برد اصلی اضافه کرده ام. همچنین بین پین و زمین مشترک آرایه یک جهنده وجود دارد تا LED ها خاموش شوند. 74HC00 NAND gate h
6502 و 6522 حداقل کامپیوتر (با Arduino MEGA) قسمت 2: 4 مرحله
حداقل کامپیوتر 6502 و 6522 (با Arduino MEGA) قسمت 2: پس از دستورالعمل قبلی خود ، اکنون 6502 را روی یک نوار چسب قرار داده و یک آداپتور رابط چند منظوره 6522 (VIA) اضافه کرده ام. باز هم ، من از نسخه WDC 6522 استفاده می کنم ، زیرا برای 6502 آنها بسیار مناسب است. نه تنها این برنامه های جدید
10 پروژه اصلی آردوینو برای مبتدیان! حداقل با یک تخته حداقل 15 پروژه بسازید!: 6 مرحله
10 پروژه اصلی آردوینو برای مبتدیان! حداقل با یک تخته حداقل 15 پروژه بسازید!: پروژه آردوینو & amp؛ هیئت آموزشی ؛ شامل 10 پروژه اصلی آردوینو است. همه کد منبع ، فایل Gerber و موارد دیگر. بدون SMD! لحیم کاری آسان برای همه. اجزای قابل جابجایی و تعویض آسان. شما می توانید حداقل 15 پروژه را با یک برنامه
نحوه حک کردن پنجره کامپیوتر (قسمت 1): 6 مرحله
نحوه حک کردن پنجره رایانه (قسمت 1): موارد زیادی را با پنجره های شفاف حکاکی شده مشاهده کرده ام. من تصمیم داشتم ویندوزهایم را حک کنم تا ظاهر جدیدی به آنها بدهم. این کار آنقدرها هم که به نظر می رسد سخت نیست ، فقط وقت خود را بگیرید و نتایج خوبی خواهید گرفت. دستورالعمل های پنجره دیگر را می توانید در Instru پیدا کنید
نحوه حک کردن پنجره کامپیوتر (قسمت 2): 5 مرحله (همراه با تصاویر)
نحوه حک کردن پنجره کامپیوتر (قسمت 2): این مورد با نحوه حکاکی پنجره کامپیوتر (قسمت 1) همراه است. این اختیاری است اما به نظر من جالب به نظر می رسد. قسمت 2 این حکاکی را انجام می دهد و آن را برجسته می کند. این باعث می شود تا پنجره به نوعی Tron به نظر برسد. این یک اثر خوب است ، اما شما به مقداری برادر احتیاج دارید