আমি কিছুটা পুনর্নির্মাণ মজাদার জন্য একটি জেড 80 হোমব্রিউ কম্পিউটার তৈরি করার চেষ্টা করছি এবং নিজেকে বৈদ্যুতিন ডিজাইনের ভিত্তি শিখিয়েছি। ধারণার প্রমাণ হিসাবে, আমি ইতিমধ্যে আগের সপ্তাহগুলিতে সাফল্যের সাথে ব্রেডবোর্ডে একটি বেসিক সিস্টেমটি একত্রিত করেছি।
বর্তমান প্রোটোটাইপ অত্যন্ত সহজ। আমি সিস্টেমটি ক্লক হিসাবে 74HCT04 পিয়ার্স অসিলেটর দ্বারা চালিত একটি 4 মেগাহার্টজ স্ফটিক LE
ব্যবহার করেছি, 16 বিট অ্যাড্রেস বাসের বাফার হিসাবে স্বচ্ছ মোডে ( উচ্চ) দুটি 74HCT573 ল্যাচ, বিপরীত দিকের দিকের দিক দিয়ে আরও দুটি 74HCT573 নিয়ন্ত্রিত RD
এবং NOT RD
দ্বি দ্বি- নির্দেশমূলক ডেটা হিসাবে ব্যবহার করেছি বাস বাফার আমি একটি 100 এনএস এটিবিসি 256 ইপ্রোম সংযুক্ত করেছি (কেবল 16-কিবি ডিকোড করা আছে) এবং দুটি 150 এনএস 8-কিবি এসআরএএম চিপ সিস্টেম বাসে। CS
সিগন্যালটি তৈরি করতে আমি একটি 74HCT42 ব্যবহার করেছি এবং OE
EEPROM WE
নিয়ন্ত্রণের জন্য কেবলমাত্র একটি সিএস সিগন্যাল রেখে EEPROM টি কম, উচ্চে শক্ত করে নিয়েছি ।
ব্রেডবোর্ডে থাকা সমস্ত কিছু শোরগোলের মতো, তবে আমি প্রতিটি ধাপ শেষ করার পরে সিস্টেমটি সম্পূর্ণরূপে কার্যকর হয়ে উঠেছে। এখন এটি EEPROM এর কাছ থেকে নির্দেশাবলী আনতে পারে, এসআরএএম থেকে / লিখে ডেটা পড়তে এবং লিখতে পারে এবং এটির একটি সিরিয়াল বন্দর রয়েছে অন্য একটি ল্যাচ থেকে তৈরি 74HCT573, D0
এর সাথে সংযুক্ত থাকে D0
, LE
হয় (NOT (IOREQ NAND WR))
, আউটপুট থেকে আসে Q1
অন্য কথায়, কেবল একটি আউটপুট পোর্ট অ্যাড্রেস ডিকোডিং যুক্তি ছাড়াই। আমি একটি সিপিইউ / র্যাম-নিবিড় বেঞ্চমার্ক প্রোগ্রাম লিখেছি এবং আমার কম্পিউটার প্রত্যাশিত ফলাফল আউটপুট করতে পারে। মেমডাম্পস এও দেখিয়েছে যে জেড 80 ইপ্রোম থেকে সমস্ত বাইট সঠিকভাবে পড়তে পারে, তাই সবকিছু কাজ করছে।
কিন্তু যখন আমি D0
ডেটা বাসের পিনটি অনুসন্ধান করার চেষ্টা করেছি, তখন কিছু আপাত যুক্তিযুক্ত 1 আউটপুটগুলির জন্য আমি কিছু অদ্ভুত "notches" দেখছিলাম।
এবং তারা CS
EEPROM এর সংকেত সক্রিয় হওয়ার অল্প সময়ের মধ্যেই কিছু যৌক্তিক 1s এর জন্য উপস্থিত বলে মনে হয় , উদাহরণস্বরূপ, এখানে নীল EEPROM সিএস সংকেতটিতে অদ্ভুত খাঁজ ধরা পড়েছে।
আমি সমস্যাটি বিচ্ছিন্ন করার চেষ্টা করেছি, তাই আমি এসআরএএম এর সমস্ত সিএস পিনগুলি হার্ড থেকে হায়ার করে এগুলি কার্যকরভাবে সিস্টেম থেকে সরিয়েছি এবং আমি একটি সাধারণ পরীক্ষা প্রোগ্রাম লিখেছি যার কোনও স্মৃতি অ্যাক্সেস নেই।
.org 0x00
di
xor a
loop:
out (0x00), a
inc a
jp loop
তবে সমস্যাটি অপরিবর্তিত, অদ্ভুত "notches" এখনও সর্বদা কিছু যৌক্তিক 1 এর জন্য উপস্থিত হয় , ঠিক পরে MEMRQ
এবং / বা (যেহেতু এটি এখন মূলত এক-চিপ) CS
(নীল) কম যায়।
এসআরএমের সমস্ত সিএস পিনগুলি উচ্চ, সুতরাং সিস্টেমটি কেবলমাত্র একটি এট 28 সি 256 ইপ্রোম চিপ মেমরি হিসাবে এবং আউটপুট পোর্ট হিসাবে একটি ল্যাচ রয়েছে। সিস্টেমে একটি ডিএমএ অনুরোধ চলাকালীন EEPROM দ্য ফ্লাইটটি পুনরায় প্রোগ্রাম করতে একটি Atmega328p থেকে তৈরি একটি ইন-সিস্টেম প্রোগ্রামার রয়েছে, তবে আমি মনে করি না যে এটিই অপরাধী যেহেতু আমি প্রোগ্রামারের সমস্ত ডেটা এবং ঠিকানার আউটপুট তদন্ত করেছি এবং আমি প্রোগ্রামার যুক্ত করার আগেও আমি খাঁজ দেখেছি।
সুতরাং একটি অপকোড আনতে চক্র চলাকালীন অবশ্যই "notches" তৈরি করতে হবে। তারা কি?
আমার কয়েকটি অনুমান রয়েছে:
এখানে কোনও ভুল নেই, এটি কেবল ব্রেডবোর্ডগুলির খারাপ সিগন্যাল অখণ্ডতার কারণে ঘটেছিল এবং এটি একটি সজ্জিত এবং নকশাকৃত পিসিবিতে স্বয়ংক্রিয়ভাবে অদৃশ্য হয়ে যাবে । ব্রেডবোর্ডে সমস্ত ধরণের সংকেত অখণ্ডতা সমস্যা রয়েছে: প্রতিবন্ধকতা ম্যাচ ম্যাচ, রিফ্লেকশনস, প্যারাসিটিক ক্যাপাসিট্যান্স, ক্রসস্টালক, ইএমআই / আরএফআই। বোর্ডগুলি জুড়ে চালিত দীর্ঘ বাসের তারগুলি সম্ভবত কিছুটা মাত্রার দ্বারা সমস্যাটিকে আরও খারাপ করে দিবে।
যদি এটি সত্য হয় তবে আপনি কি "খাঁজ" এর প্রকৃতিটি ব্যাখ্যা করতে পারেন? এই ঘটনাটির EE তে কোনও নাম আছে? আমি এর আগে অনেকগুলি ওভারশুট এবং রিংটি দেখেছি, তবে "খাঁজ" কখনও দেখিনি। এবং আমি কেন এটি কেবল কিছু যৌক্তিক স্তরের জন্য দেখছি ?
সময়। এটা কি সম্ভব যে EEPROM আউটপুট বা অন্যান্য যুক্তিযুক্ত সার্কিটের একটি সংক্ষিপ্ত "নিষ্পত্তির সময়" বাসে এই অদ্ভুত প্রভাব সৃষ্টি করছে?
ফ্যান-আউট। সম্ভবত দীর্ঘ বাসটি প্রচুর স্রোত আঁকে এবং উচ্চ ক্যাপাসিট্যান্স রয়েছে তাই EEPROM আউটপুটটি বাসের উপর দিয়ে উচ্চ ড্রাইভিং চালানো বেশ কঠিন সময় ছিল? এবং সম্ভবত অসিস্কোসক প্রোবেও কি বাসটি লোড হচ্ছে?
বাসের বিতর্ক, বা অন্যান্য যুক্তি ত্রুটির কারণে ডেটা বাসে কিছুটা টানতে পারে। অসম্ভব মনে হয়? বাসের অন্যান্য উপাদানগুলি বিচ্ছিন্ন এবং একক এটি 28 সি 256 ইপ্রোম বা একটি ল্যাচ কীভাবে এটি করতে পারে তা দেখতে আমি ব্যর্থ হয়েছি। তবে আমি অনুমান করি যে তারের ত্রুটির কারণে বা ব্রেডবোর্ডগুলিতে লুকানো কোনও অভ্যন্তরীণ শর্টের কারণে এটি এখনও সম্ভব।
আপডেট: আমি ইতিমধ্যে বোর্ড থেকে ডেকপলিং এবং ফিল্টারিং ক্যাপাসিটারগুলি শুরু থেকেই ব্যবহার করেছি। আমি বোর্ডগুলি জুড়ে বেশ কয়েকটি 0.1 ইউএফ ডিকোপলিং ক্যাপাসিটার ব্যবহার করেছি এবং সিপিইউ পর্যন্ত ডিউপলিংয়ের জন্য 0.1 ইউএফ এবং 0.01 ইউএফ ক্যাপাসিটার উভয়ই রয়েছে। বর্তমান সিস্টেমে 8 টি বোর্ড রয়েছে, প্রতিটি ব্রেডবোর্ডে স্থানীয় ফিল্টারিংয়ের জন্য উভয় রেলগুলিতে দুটি 4.7 ইউএফ অ্যালুমিনিয়াম ক্যাপাসিটার রয়েছে। এছাড়াও, ডিবোর্ড থেকে প্রাপ্ত পাওয়ারটিতে 200 ইউএফ ট্যান্টালাম ক্যাপাসিটার রয়েছে। তবে আমি যেমন বলেছি, সমস্যাটি এখানেই।
এটি পর্যাপ্ত কিনা তা আমি নিশ্চিত নই, বিশেষত একটি ব্রেডবোর্ডে চিপের কাছে 104 ক্যাপাসিটার রাখার অসুবিধা বিবেচনা করে। সম্ভবত আরও যোগ করা এটি ঠিক করতে পারেন?
আমি যে বিষয়ে আগ্রহী তা হ'ল সমস্যার মূল কারণ, যদি এটি কেবল ব্রেডবোর্ডে অপর্যাপ্ত decoupling বা দুর্বল সিগন্যাল অখণ্ডতার সহজাত সমস্যা হিসাবে নিশ্চিত করা যায় তবে আমি সমস্যা সমাধানের জন্য সময় নষ্ট করার চেষ্টা করা বা এটির জন্য উদ্বেগ বন্ধ করতে পারি চূড়ান্ত নকশা একটি পিসিবি হবে। কিন্তু আমি নিশ্চিত না.
ধন্যবাদ।
আপডেট 2: মনে মনে, আমি বিশ্বাস করি ব্রুস অ্যাবটের মন্তব্যটি সঠিক উত্তর দিয়েছে এবং সমস্যার সমাধান হয়েছে! যদিও আমি আগামীকাল পর্যন্ত এটি পরীক্ষা করতে পারি না। অপরাধী জেড 80 এর ড্রাম রিফ্রেশ, বিশদর জন্য আমার নিজের উত্তর দেখুন। বর্তমানে, কোনও নতুন উত্তরের প্রয়োজন নেই, এবং সমাধানটি নিশ্চিত করার পরে আমি আমার নিজের উত্তরটি গ্রহণ করব। যদি এটি কাজ না করে, আমি প্রশ্নটি আপডেট করব। প্রত্যেকের সহায়তার জন্য ধন্যবাদ।