فهرست مطالب:
- تدارکات
- مرحله 1: برد مدار
- مرحله 2: نظریه برنامه نویسی
- مرحله 3: برنامه و خروجی آردوینو
- مرحله 4: نتیجه گیری
تصویری: 6502 و 6522 حداقل کامپیوتر (با Arduino MEGA) قسمت 2: 4 مرحله
2024 نویسنده: John Day | [email protected]. آخرین اصلاح شده: 2024-01-30 08:53
با پیروی از دستورالعمل قبلی خود ، اکنون 6502 را روی یک تخته نوار قرار داده و یک آداپتور رابط چند منظوره 6522 (VIA) اضافه کرده ام. باز هم ، من از نسخه WDC 6522 استفاده می کنم ، زیرا با 6502 آنها مطابقت کامل دارد. این تراشه های جدید نه تنها از قدرت بسیار کمتری نسبت به نسخه های اصلی MOS استفاده می کنند ، بلکه می توانند با سرعت کمتری اجرا شوند یا حتی از آنها عبور کنند. برنامه ای بدون هیچ مشکلی
برنامه آردوینو در ابتدا توسط Ben Eater (که ویدیوهای زیادی در YouTube دارد) نوشته شده است و برای دستیابی به این نتیجه توسط من اصلاح شده است.
تدارکات
1 x پردازنده WDC W65C02
1 عدد آداپتور رابط چند منظوره WDC W65C22
1 x 74HC00N IC (چهار ورودی NAND دو ورودی) یا مشابه آن
1 x 10 سانتی متر عرض (35 خط) تخته نواری
2 عدد سوکت DIL 40 پین
1 عدد سوکت DIL 14 پین
پین هدر PCB 2.54 میلی متر
سوکت هدر PCB 2.54 میلی متر
سوئیچ 1 x 12 میلی متری لمسی لحظه ای PCB نصب SPST یا مشابه آن
مقاومت 1 x 1K
1 x 3K3 مقاومت
2 خازن سرامیکی 0.1 F UF
1 x 8 Way Light Water Marquee 5mm LED قرمز
سیم های رنگی مختلف برای اتصالات
8 سیم اتصال نر - نر
مرحله 1: برد مدار
برد مدار کاملاً جمع و جور است و قسمت زیر آن مستقیماً به Arduino MEGA متصل می شود. برای دستیابی به این هدف ، پین ها تا جایی که ممکن است به داخل نگهدارنده های پلاستیکی فشار داده می شوند و سپس به قسمت زیرین تخته لحیم می شوند. می توان از پین های بلندتر برای این کار استفاده کرد ، اما پین های استاندارد به این معنی است که تخته به طور محکم در بالای MEGA قرار دارد.
من IC های 6502 و 6522 را به گونه ای ردیف کرده ام که از قطعات نوار بورد برای اتصال به MEGA استفاده می کنند. همچنین برخی اتصالات برای 6502 در زیر IC پنهان شده است. هنگام ساخت تخته ، اولین کاری که انجام شد این بود که 16 نوار را که به ردیف دوگانه پریزهای آردوینو متصل می شوند ، برش دهید. 2 بیرونی نیازی به برش ندارد زیرا 5v و Gnd در هر دو طرف هستند. بعد در 2 ردیف 18 پین در قسمت زیر و 2 ردیف 18 سوکت در بالای صفحه لحیم می شود.
پس از آن سوکت های DIL در جای خود لحیم شدند و خطوط بین آنها قطع شد. من می توانم اتصال را با قرار دادن پین 14 74HC00 در همان مسیر 5 ولت ذخیره کنم. من فقط زمانی قطارها را قطع می کردم که مطمئن بودم هنگام اتصال سیم های اتصال به آنها نیاز است. با این حال ، همه چیز همیشه طبق برنامه پیش نمی رود ، من ابتدا تخته نوار را از صفحه نان قبلی با استفاده از پین های 2 ، 3 و 7 آردوینو طراحی کردم ، اما این موارد با سوراخ های روی نوار تطبیق نمی کند ، بنابراین مجبور به استفاده از پینهای 18 ، 31 و 37. از این رو پیوندهای روی صفحه من در 31 و 37. شاید تعجب کنید که چرا من از یکی از پینهای بلااستفاده (23 ، 24 و غیره) برای ساعت استفاده نکردم ، این به این دلیل است که آنها پشتیبانی نمی کنند وقفه ایجاد می کند ، بنابراین مجبور بود از پین 18 ، 19 ، 20 یا 21 استفاده کند. خوشبختانه این 4 پین با سوراخ های موجود در صفحه نوار کنار هم قرار گرفته و همه چیز را فشرده نگه می دارند. پین 18 همچنین از سیم های دیگر بسیار دورتر است.
همچنین ممکن است توجه داشته باشید که صفحه کامل شده من دقیقاً شبیه نمودار من نیست. این به این دلیل است که من نمودار دیگران را دنبال می کردم. بنابراین اتصالات به 74HC00. من همچنین یک LED قدرت و 2 ردیف سوکت اضافی برای Gnd و 5v و چند خازن دیگر اضافه کرده ام.
من می توانستم 2 سوکت داده را وصل کنم ، اما این بدان معناست که سیم های بیشتری از صفحه عبور می کنند. من 8 سیم پیوند را برای انجام این کار به عنوان یک اقدام موقت انتخاب کردم.
پورت 6522 پورت A و B دارای سوکت هایی است که روی خطوط آنها لحیم شده است تا بتوان علامت های LED را به راحتی وارد کرد.
در حال حاضر سیمهای بسیار کمتری نسبت به نسخه تخته نان وجود دارد.
مرحله 2: نظریه برنامه نویسی
6522 دارای دو درگاه ورودی/خروجی و همچنین بسیاری از ویژگی های دیگر است ، اما پورت A و B به راحتی قابل دسترسی هستند. برای خروجی داده ها بر روی پورت ، Data Direction Register (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 نوشته می شود. این برنامه 1005 دلار پس می دهد و بی وقفه تکرار می شود. توجه: DDR فقط یکبار نیاز به مقداردهی اولیه دارد.
آدرس Hexdump Dassassembly
$ 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 دلار باینری 010101010 و AA $ 10101010 است که باعث می شود LED ها 4 روشن ، 4 خاموش متناوب شوند.
رفع سریع و کثیف:
74HC00 (چهار ورودی NAND Gate) را با 74HC08 (ورودی چهار گیت AND AND Gate) جایگزین کنید و 6522 اکنون به جای E000 دلار در 6000 دلار قرار دارد. این امر آن را از 32K بالا به 32K پایین حافظه قابل آدرس 6502 منتقل می کند.
مرحله 3: برنامه و خروجی آردوینو
از آنجا که 6502 فاقد RAM برای خواندن است ، آردوینو برنامه را برای خواندن آن فراهم می کند. هنگامی که یک پالس ساعت در پین 18 تشخیص داده می شود ، آردوینو داده های برنامه را روی گذرگاه داده قرار می دهد (پین های آردوینو 39 ، 41 ، 43 ، 45 ، 47 ، 49 ، 51 و 53). 6502 آدرس های خود را ایجاد می کند که فقط توسط آردوینو روی پین های زوج 22 تا 52. توسط آردوینو پالس ساعت را در پین 37 تأمین می کند. خط R/W 6502 در پین 31 نظارت می شود.
از آنجا که آردوینو داده ها را ارائه می دهد ، تا کنون امکان دریافت 6502 برای ورود داده ها از طریق VIA (مگر اینکه شما بهتر بدانید) وجود نداشته است.
برنامه آردوینو در زیر و نمونه خروجی از Serial Monitor در بالا آمده است.
مرحله 4: نتیجه گیری
دوباره سعی کردم نحوه راه اندازی حداقل "6502 کامپیوتر" را نشان دهم.
در این مرحله 6502 هنوز به آردوینو متکی است تا برنامه و پالس ساعت را برای اجرا به آن ارائه دهد.
این یک قدم فراتر از زمانی است که آن را روی تخته نان قرار دادم.
من این بار از 74HC373 استفاده نکردم ، اما از پیچیده تر 6522 برای بستن خروجی های داده استفاده کرده ام. همچنین 6522 دارای دو درگاه ورودی/خروجی است.
من قصد دارم با نصب مقداری SRAM یا EEPROM این پروژه را بیشتر انجام دهم.
توصیه شده:
حداقل کامپیوتر 6502 (با Arduino MEGA) قسمت 3: 7 مرحله
حداقل کامپیوتر 6502 (با Arduino MEGA) قسمت 3: همچنان که جلوتر می روم ، اکنون یک Octal Latch ، 8 LED مستطیلی و یک آرایه مقاومت 220 اهم به برد اصلی اضافه کرده ام. همچنین بین پین و زمین مشترک آرایه یک جهنده وجود دارد تا LED ها خاموش شوند. 74HC00 NAND gate h
حداقل کامپیوتر 6502 (با Arduino MEGA) قسمت 1: 7 مرحله
6502 حداقل کامپیوتر (با Arduino MEGA) قسمت 1: ریزپردازنده 6502 اولین بار در سال 1975 ظاهر شد و توسط تیم کوچکی به سرپرستی Chuck Peddle برای فناوری MOS طراحی شد. در آن زمان در کنسول های ویدئویی و رایانه های خانگی از جمله Atari ، Apple II ، Nintendo Entertainment System ، BBC Micr
10 پروژه اصلی آردوینو برای مبتدیان! حداقل با یک تخته حداقل 15 پروژه بسازید!: 6 مرحله
10 پروژه اصلی آردوینو برای مبتدیان! حداقل با یک تخته حداقل 15 پروژه بسازید!: پروژه آردوینو & amp؛ هیئت آموزشی ؛ شامل 10 پروژه اصلی آردوینو است. همه کد منبع ، فایل Gerber و موارد دیگر. بدون SMD! لحیم کاری آسان برای همه. اجزای قابل جابجایی و تعویض آسان. شما می توانید حداقل 15 پروژه را با یک برنامه
نحوه حک کردن پنجره کامپیوتر (قسمت 1): 6 مرحله
نحوه حک کردن پنجره رایانه (قسمت 1): موارد زیادی را با پنجره های شفاف حکاکی شده مشاهده کرده ام. من تصمیم داشتم ویندوزهایم را حک کنم تا ظاهر جدیدی به آنها بدهم. این کار آنقدرها هم که به نظر می رسد سخت نیست ، فقط وقت خود را بگیرید و نتایج خوبی خواهید گرفت. دستورالعمل های پنجره دیگر را می توانید در Instru پیدا کنید
نحوه حک کردن پنجره کامپیوتر (قسمت 2): 5 مرحله (همراه با تصاویر)
نحوه حک کردن پنجره کامپیوتر (قسمت 2): این مورد با نحوه حکاکی پنجره کامپیوتر (قسمت 1) همراه است. این اختیاری است اما به نظر من جالب به نظر می رسد. قسمت 2 این حکاکی را انجام می دهد و آن را برجسته می کند. این باعث می شود تا پنجره به نوعی Tron به نظر برسد. این یک اثر خوب است ، اما شما به مقداری برادر احتیاج دارید