সুচিপত্র:

6502 মিনিমাল কম্পিউটার (আরডুইনো মেগা সহ) পার্ট 1: 7 ধাপ
6502 মিনিমাল কম্পিউটার (আরডুইনো মেগা সহ) পার্ট 1: 7 ধাপ

ভিডিও: 6502 মিনিমাল কম্পিউটার (আরডুইনো মেগা সহ) পার্ট 1: 7 ধাপ

ভিডিও: 6502 মিনিমাল কম্পিউটার (আরডুইনো মেগা সহ) পার্ট 1: 7 ধাপ
ভিডিও: История CPU: MOS 6502 2024, নভেম্বর
Anonim
6502 মিনিমাল কম্পিউটার (আরডুইনো মেগা সহ) পার্ট 1
6502 মিনিমাল কম্পিউটার (আরডুইনো মেগা সহ) পার্ট 1

6502 মাইক্রোপ্রসেসর প্রথম 1975 সালে আবির্ভূত হয়েছিল এবং এমওএস প্রযুক্তির জন্য চাক পেডলের নেতৃত্বে একটি ছোট দল দ্বারা ডিজাইন করা হয়েছিল। তখন এটি ভিডিও কনসোল এবং আটারি, অ্যাপল II, নিন্টেন্ডো এন্টারটেইনমেন্ট সিস্টেম, বিবিসি মাইক্রো, কমোডোর ভিআইসি 20 এবং 64 সহ হোম কম্পিউটারে ব্যবহৃত হত। সেই সময় এটি বাজারে সবচেয়ে সস্তা ছিল। এটি সত্যিই কখনও চলে যায়নি এবং এখন এটি শখের বশে এবং পেশাদাররা অনেক অ্যাপ্লিকেশনের জন্য ব্যবহার করে।

আমি যে সংস্করণটি ব্যবহার করছি তা হল W65C02S6TPG-14 যা ওয়েস্টার্ন ডিজাইন সেন্টার দ্বারা তৈরি এবং মূলটির চেয়ে দশগুণ কম শক্তি ব্যবহার করে। এটি বিশেষ যে এটি আসল চিপের মতো 1 মেগাহার্টজে চালাতে হবে না। এটি অনেক ধীর গতিতে চলতে পারে বা একটি প্রোগ্রামের মাধ্যমে একক ধাপে ব্যবহার করা যেতে পারে এবং এমনকি 14 মেগাহার্টজ পর্যন্ত বাড়তে পারে। চিপের জন্য ডেটা শীট তার ক্ষমতা ব্যাখ্যা করে। অন্যান্য 6502 চিপগুলির এই ক্ষমতা নেই এবং এইভাবে চলবে না। চিপগুলি বর্তমানে ইবে এবং অন্যান্য উত্সগুলিতে উপলব্ধ।

সরবরাহ

ব্যবহৃত সমস্ত যন্ত্রাংশ বর্তমানে ইবে, আলী এক্সপ্রেস এবং অন্যান্যগুলিতে পাওয়া যায়।

ধাপ 1: ধারণা

আমি বেন ইটার থেকে আমার অনুপ্রেরণা পেয়েছি যিনি ইউটিউবে 50৫০২ এবং কম্পিউটার এবং সার্কিট তৈরির অন্যান্য অনেক বিষয় নিয়ে ধারাবাহিক ভিডিও তৈরি করেছেন। প্রোগ্রামটি মূলত তার দ্বারা লিখিত হয়েছিল এবং আমি এটি এবং তার কিছু নকশা সংশোধন করেছি এই নির্দেশের সাথে আসতে। আরেকজন ব্যক্তি যিনি আমাকে অনুপ্রাণিত করেছিলেন তিনি হলেন অ্যান্ড্রু জ্যাকবস যার গিটহাবের একটি বিভাগ রয়েছে যেখানে তিনি তার 6502 নিয়ন্ত্রণের জন্য একটি পিআইসি মাইক্রো ব্যবহার করেন।

বেনের মত, আমি 6502 নিরীক্ষণের জন্য একটি Arduino MEGA ব্যবহার করছি। বর্তমানে আমি কোন EEPROM বা RAM ব্যবহার করছি না।

ধাপ 2: প্রয়োজনীয়তা

প্রয়োজনীয়তা
প্রয়োজনীয়তা

এই "কম্পিউটার" তৈরির জন্য আইটেমের একটি তালিকা নিম্নরূপ:

1 x আরডুইনো মেগা

1 এক্স ওয়েস্টার্ন ডিজাইন সেন্টার W65C02S6TPG-14

1 x 74HC00N IC (Quad 2-input NAND gate) বা অনুরূপ

1 x 74HC373N IC (অক্টাল ডি-টাইপ ট্রান্সপারেন্ট ল্যাচ) বা অনুরূপ

2 x 830 হোল রুটি বোর্ড (1 চিমটি)

বিভিন্ন Dupont পুরুষ - পুরুষ সীসা এবং লিঙ্ক তারের

2 এক্স এলইডি (আমি 5 মিমি নীল ব্যবহার করেছি কারণ আপনি কোনও প্রতিরোধক ছাড়াই যেতে পারেন)

1 x 12mm মোমেন্টারি ট্যাকটাইল পুশ বোতাম সুইচ PCB মাউন্ট করা SPST বা অনুরূপ

1 x 1K প্রতিরোধক

2 x 0.1 uF সিরামিক ক্যাপাসিটার

1 x 8 ওয়ে ওয়াটার লাইট মার্কি 5 মিমি লাল LED (উপরে হিসাবে) বা 8 LEDs এবং প্রতিরোধক

দ্রষ্টব্য: যদি আপনি অবিক্রিত কিটটি পান, আপনি এলইডিগুলিকে ভুল পথে ertুকিয়ে দিতে পারেন যাতে তারা সাধারণ ক্যাথোড হয়। আমি একটি মাছি সীসা (পিনের পরিবর্তে) সংযুক্ত করি যাতে এটি সহজেই অন্যত্র সংযোগ করতে পারে। ভিসিসি এখন গ্রাউন্ড হয়ে যায়। আপনি অবশ্যই এলইডি ঘুরিয়ে দিতে পারেন (একত্রিত আইটেমের উপর) এবং সেগুলি পুনরায় বিক্রি করতে পারেন, তবে এটি প্রচুর ফ্যাফ! কিট বর্তমানে AliExpress এ উপলব্ধ।

ধাপ 3: এটি একত্রিত করা

একসাথে রেখে
একসাথে রেখে
একসাথে রেখে
একসাথে রেখে

আমি নতুন ডিউপন্ট তার ব্যবহার করা সহজ পেয়েছি যা ঠিকানা এবং ডেটা বাসের জন্য তাদের ফিতা থেকে আলাদা করা হয়নি।

6502 এর পিন 9 (A0) সংযোগ করুন MEGA এর 52 পিন করতে, 6502 এর 10 (A1) পিন 50 ইত্যাদি পিন করতে…

পর্যন্ত

6502 এর পিন 25 (A15) সংযোগ করুন MEGA এর 22 পিন করতে।

এখন পর্যন্ত 16 টি সংযোগ।

একইভাবে

6502 এর পিন 26 (D7) সংযোগ করুন MEGA এর 39 পিন করতে, 6502 এর 27 (D6) পিন 41 ইত্যাদি পিন করতে…

পর্যন্ত

6502 এর পিন 33 (D0) কে MEGA এর 53 পিনে সংযুক্ত করুন।

আরও 8 টি সংযোগ।

MEGA এ পিন 8 (VDD) 5v এর সাথে সংযুক্ত করুন।

একটি 0.1uF ক্যাপাসিটর পিন 8 থেকে রুটি বোর্ডের Gnd এ সংযুক্ত হতে পারে এখানে দরকারী কিন্তু প্রয়োজনীয় নয়।

পিন 21 (VSS) MEGA তে Gnd এর সাথে সংযুক্ত করুন।

পিন 2, 4, 6, 36 এবং 38 5v এ বাঁধা যেতে পারে

পিন 37 (ঘড়ি) পিন 2 এবং পিন 7 মেগা সংযোগ করুন।

MEGA এর 3 পিন করার জন্য পিন 34 (RWB) সংযুক্ত করুন।

উপরের ডায়াগ্রাম হিসাবে পিন 40 (রিসেট) সংযুক্ত করুন।

ধাপ 4: সার্কিট পরীক্ষা করা

সার্কিট পরীক্ষা করা
সার্কিট পরীক্ষা করা

এই পর্যায়ে 6502 কাজ করবে এবং প্রোগ্রাম 1 ব্যবহার করা যাবে। আপনি যদি 8 টি মার্কে (উপরের মত) ব্যবহার করেন, এটি সরাসরি ব্রেডবোর্ড এবং মাটির সাথে সংযুক্ত ফ্লাই সীসাতে ertedোকানো যেতে পারে, অথবা আপনি 8 টি LEDs এবং প্রতিরোধক ব্যবহার করতে পারেন। LEDS ডেটা বাসে কি আছে তা দেখাবে।

এই পর্যায়ে এটি লুপ () 500 বা তার বেশি বিলম্ব সেট করা, যা ঘটছে তা অনুসরণ করা।

আপনি উপরের মত সিরিয়াল মনিটরে একটি অনুরূপ আউটপুট পেতে হবে। যখন রিসেট চাপানো হয়, প্রসেসরটি 7 টি চক্রের মধ্য দিয়ে যায় এবং তারপর এটি $ FFFC এবং $ FFFD অবস্থানে প্রোগ্রামটি শুরু করার জন্য দেখায়। যেহেতু 6502 পড়ার জন্য কোন শারীরিক ঠিকানা নেই, সেগুলি আমাদের মেগা থেকে সরবরাহ করতে হবে।

উপরের আউটপুটে, 6502 $ FFFC এবং $ FFFD পড়ে এবং $ 00 এবং $ 10 (লো বাইট, হাই বাইট) পায় যা $ 1000 এ প্রোগ্রামের শুরু। প্রসেসর তারপর $ 1000 (উপরের মত) অবস্থানে প্রোগ্রামটি চালানো শুরু করে। এই ক্ষেত্রে এটি $ A9 এবং $ 55 পড়ে, যেমন LDA#$ 55 (সঞ্চয়কারীর মধ্যে 85 লোড করুন)। আবার ভৌত মেমরির অবস্থান না থাকায়, মেগা ডেটা বাস থেকে যা পড়ে তা অনুকরণ করে।

$ 55 (85) বাইনারি প্যাটার্ন 01010101 দেয় এবং 1 বিট বাম ঘোরালে $ AA (170) 10101010 দেয়।

প্রোগ্রামটি দেখায় যে প্রসেসর সঠিকভাবে কাজ করছে কিন্তু শীঘ্রই কিছুটা বিরক্তিকর হবে, তাই পরবর্তী অংশে।

ধাপ 5: পরবর্তী ধাপ

পরবর্তী পর্ব
পরবর্তী পর্ব
পরবর্তী পর্ব
পরবর্তী পর্ব

উপরের "স্প্যাগেটির গাদা" সম্ভবত এই পর্যায়ের পরে আপনার কি হবে।

পরবর্তীতে আপনাকে ব্রেডবোর্ডে 74HC373N এবং 74HC00N IC যোগ করতে হবে।

দুর্ভাগ্যবশত 373 এর পিনগুলি ডাটা বাসের সাথে মিলিত হয় না, তাই তারের সাথে সংযুক্ত করতে হবে।

পিন 20 এ 5v সংযুক্ত করুন।

পিন 10 গ্রাউন্ড সংযুক্ত করুন।

6502 এর পিন 33 (D0) 74HC373N এর 3 (D0) পিন সংযুক্ত করুন

এবং একইভাবে পিনের সাথে D1 থেকে D7।

Q0 থেকে Q7 হল আউটপুট এবং এর জন্য LED marquee বা পৃথক LEDs এবং প্রতিরোধকগুলির সংযোগের প্রয়োজন হবে।

74HC00 এর সাথে এর মাত্র 2 টি গেট প্রয়োজন

14 পিন করতে 5v সংযুক্ত করুন।

পিন 7 এ গ্রাউন্ড সংযুক্ত করুন।

6502 এর পিন 17 (A8) 74HC00 এর 1 (1A) পিন সংযুক্ত করুন

6502 এর পিন 25 (A15) 74HC00 এর 2 (1B) পিন সংযুক্ত করুন

6502 এর পিন 34 (R/W) 74HC00 এর 5 (2B) পিন সংযুক্ত করুন

74HC00 এর পিন 3 (1Y) কে 74HC00 এর 4 (2A) পিনে সংযুক্ত করুন

74HC00 এর পিন 6 (2Y) 74HC373N এর 11 (LE) পিন সংযুক্ত করুন

74HC373N এর পিন 11 (LE) 74HC373N এর 1 (OE) পিন সংযুক্ত করুন

আপনি একটি নীল LED কে 1Y এবং স্থল এবং 2Y স্থলে সংযুক্ত করতে পারেন, এটি নির্দেশ করবে যখন গেটটি সক্রিয়।

অবশেষে প্রোগ্রাম 1 থেকে প্রোগ্রাম 2 এ অনক্লক পদ্ধতিতে লাইন পরিবর্তন করুন

setDataPins (প্রোগ্রাম 2 [অফসেট]);

ধাপ 6: প্রোগ্রাম

কার্যক্রম
কার্যক্রম
কার্যক্রম
কার্যক্রম

6502-মনিটর প্রোগ্রামে উপরে বর্ণিত দুটি 6502 রুটিন রয়েছে।

প্রোগ্রামটি এখনও বিকাশের অধীনে রয়েছে এবং এটি কিছুটা অশান্ত।

প্রোগ্রাম 2 চালানোর সময়, লুপে বিলম্ব () 50 বা তার কম হতে পারে এবং এমনকি পুরোপুরি সরানো যেতে পারে। সিরিয়াল.প্রিন্ট () লাইনগুলি মন্তব্য করা 6502 দ্রুত চালায়। পিন 11 (LE) থেকে 373 এর পিন 1 (OE) সংযোগ বিচ্ছিন্ন করা বিভিন্ন ফলাফল দেয়। NAND গেট থেকে 373 এর পিন 1 এবং পিন 11 সংযোগ বিচ্ছিন্ন করা আপনাকে প্রতিটি ঘড়ির চক্রে ডেটা বাসে কী আছে তা দেখতে সক্ষম করে।

এটিকে ভাসমান রেখে দেওয়ার পরিবর্তে আপনাকে OE কে মাটিতে বাঁধার প্রয়োজন হতে পারে কারণ এই পিনটি বেশি হলে 8 টি আউটপুট লাইন অক্ষম থাকে। যখন LE পিন বেশি হয়, আউটপুট পিনগুলি ইনপুটগুলির মতোই হয়। এলই পিন কম ল্যাচ করলে আউটপুটগুলি অর্থাৎ ইনপুট পিন পরিবর্তন হলে আউটপুট একই থাকে।

আমি প্রোগ্রামটিকে যতটা সম্ভব সহজ রাখার চেষ্টা করেছি যাতে বোঝা সহজ হয়।

সময় বিলম্বের সাথে পরীক্ষা -নিরীক্ষা আপনাকে 6502 ঠিক কি করছে তা অনুসরণ করতে সক্ষম করে।

6502 অ্যাসেম্বলারে নীচে দুটি প্রোগ্রাম (উভয় ঠিকানা $ 1000 এ চালানো হয়):

প্রোগ্রাম 1

LDA#$ 55

না

রোল

STA $ 1010

জেএমপি $ 1000

ROL সঞ্চয়কারীর বিষয়বস্তু এক বিট বামে ঘুরিয়ে দেয় যার অর্থ $ 55 এখন $ AA হয়ে যায়।

মেশিন কোডে (হেক্স): A9 55 EA 2A 8D 10 10 4C 00 10

প্রোগ্রাম 2

এলডিএ#$ 01

STA $ 8100

এডিসি#$ 03

STA $ 8100

জেএমপি $ 1005

মেশিন কোডে (হেক্স): A9 01 8D 00 81 69 03 8D 00 81 4C 05 10

প্রোগ্রাম 2 এ এখন একটি ভৌত ঠিকানা $ 8100 আছে যেখানে 74HC373 ঠিকানা বাসে অবস্থিত।

অর্থাৎ 6502 এর A15 হল 32768 ($ 8000) এবং A8 হল 256 ($ 0100) = 33024 ($ 8100)।

সুতরাং যখন 6502 $ 8100 (STA $ 8100) লিখেছে তখন 6502 এর R/W কম এবং 373 LE কম হলে 6502 ডেটা বাসের ডেটা ল্যাচ করা হয়। 74HC00 NAND গেটের কারণে, সিগন্যালগুলি বিপরীত হয়।

উপরের স্ক্রিন প্রিন্টে দ্বিতীয় লেখাটি 3 (ADC#$ 03) বৃদ্ধি পেয়েছে - $ 7F থেকে $ 82 হয়ে গেছে।

বাস্তবে, ঠিকানা বাসের 2 টিরও বেশি লাইন 373 এর নির্দিষ্ট অবস্থানের জন্য ব্যবহার করা হবে। যেহেতু এটি সম্ভাব্য 65536 এর মধ্যে একমাত্র শারীরিক ঠিকানা, এটি দেখায় যে ঠিকানা বাসটি কীভাবে কাজ করে। আপনি বিভিন্ন ঠিকানা পিনের সাথে পরীক্ষা করতে পারেন এবং এটি একটি ভিন্ন স্থানে রাখতে পারেন। অবশ্যই, আপনাকে নতুন স্থানে STA অপারেন্ড পরিবর্তন করতে হবে। যেমন যদি আপনি ঠিকানা লাইন A15 এবং A9 ব্যবহার করেন তাহলে ঠিকানা হবে $ 8200 (32768 + 512)।

ধাপ 7: উপসংহার

উপসংহার
উপসংহার

আমি দেখানোর চেষ্টা করেছি যে 6502 আপ এবং রান করা কত সহজ।

আমি এই ক্ষেত্রের একজন বিশেষজ্ঞ নই তাই যেকোন গঠনমূলক মন্তব্য বা তথ্যকে স্বাগত জানাবো।

আপনি এটিকে আরও উন্নত করতে স্বাগত জানাই এবং আপনি যা করেছেন তাতে আমি আগ্রহী হব।

আমি প্রকল্পে একটি EEPROM, SRAM এবং 6522 যোগ করার পাশাপাশি ভবিষ্যতে স্ট্রিপ বোর্ডে রাখার পরিকল্পনা করছি।

প্রস্তাবিত: