পার্টস: 32 কেবি স্পি SRAM মেমরি (23k256)

মাইক্রোচিপের নতুন 23k256 একটি ক্রমবর্ধমান interfaced 32 কিলোবাইট SRAM মেমরি চিপ, 8 পিন ডিপ পাশাপাশি 8 পিন তাই প্যাকেজ দেওয়া হয়। EEPROM এর মতো শ্রীম, একটি ডাটা স্টোরেজ মাধ্যম। শ্রীমাতে রাখা তথ্য ধ্রুবক শক্তি ছাড়াই হারিয়ে যায়, তবে এটি সত্যিই দ্রুত এবং সেইসাথে হিসাবে রচনা চক্রের সংখ্যা কোন সীমা নেই। EERPOM এমনকি শক্তি ছাড়াই ডেটা সঞ্চয় করে, তবে এটি সাধারণত প্রায় এক মিলিয়ন সংকলনের চক্রের জন্য সীমাবদ্ধ।

32k SRAM CHIPS সাধারণত 15 টি ঠিকানা লাইনের পাশাপাশি 8 টি ডাটা লাইন রয়েছে, যেমন IS61LV256AL আমরা আমাদের CPLD অগ্রগতি বোর্ডে ব্যবহার করেছি। 23k256 মাত্র চারটি সংকেত লাইনের প্রয়োজন, তবে সমান্তরাল মেমরি ইন্টারফেসের গতিটি উত্সাহিত করে। ২3 টি সিগন্যাল ট্রেস ছাড়াই কম-পিন গণনা মাইক্রোকন্ট্রোলারের অতিরিক্ত মেমরি যোগ করার একটি চমৎকার পদ্ধতি। আমরা আপনাকে নীচের এই চিপ ইন্টারফেস কিভাবে ঠিক প্রদর্শন করব।

Microchip 23k256, 32k Spi Sram (Mouser অনুসন্ধান, অক্টোপার্ট অনুসন্ধান, $ 1.48)। দাতশীট (পিডিএফ)।

বাস পাইরেট
23k256 (পিন #)

সিএস
/ সিএস (1)

Miso.
সুতরাং (2)

মোশির
এসআই (5)

ঘড়ি
SCK (6)

GND.
/ হোল্ড (7)

GND.
Vss (4)

+ 3VOLS.
VCC (8)

টেবিলে দেখানো হিসাবে আমরা আমাদের বাস পাইরেট ইউনিভার্সাল সিরিয়াল ইন্টারফেস টুলে 23k256 লিঙ্ক করেছি। শুধু বাস পাইরেটের 3.3 ভল্ট সরবরাহের জন্য চিপটি ব্যবহার করার জন্য অত্যন্ত প্রয়োজনীয়, 23k256 5 ভল্টসের জন্য রেট করা হয় না।

বাস পাইরেটটি কোনও ধরণের কোড রচনা না করে একটি চিপ আবিষ্কার করার একটি সহজ পদ্ধতি, তবে সঠিক একই প্রিন্সিপালগুলি কোনও ধরণের মাইক্রোকন্ট্রোলারের সাথে 23k256 ব্যবহার করার জন্য প্রযোজ্য। এই উপস্থাপনাটি বাস পাইরেট ফার্মওয়্যার (26-ফেব্রুয়ারি -২009) এর সর্বশেষ সংস্করণটি ব্যবহার করে, যা আপনি আমাদের Google Code SVN থেকে ডাউনলোড করতে পারেন।

হিজ> এম <-চুয়েস মোড 1. হিজ ... 5. স্পি ... মোড> 5 <-spi মোড মোড সেট ... <-30khz, সমস্ত ডিফল্ট সেটিংস স্পি প্রস্তুত SPI> W <-ক্যাপিটাল 'ওয়াট' পাওয়ার সাপ্লাইয়ের অনুমতি দেয় ভোল্টেজ সরবরাহ SPI >.

প্রথমত, আমরা বাস পাইরেটটি 30kHz এ স্পি মোডে রাখি এবং সেইসাথে সমস্ত বিকল্পের জন্য ডিফল্ট সেটিংস নির্বাচন করেছি। আমরা বাস পাইরেটের অন-বোর্ড 3.3 ভোল্ট পাওয়ার সাপ্লাই একটি তহবিল ‘ওয়া’ দিয়ে সক্ষম করে।

কনফিগারেশন নিবন্ধন করুন

বিট 7,6 = বাইট (00) পৃষ্ঠা (10) ক্রম (01) মোড
বিট 0 = নিষ্ক্রিয় রাখা (1)

তথ্যটি ২3k256 এর মধ্যে 1024 পৃষ্ঠায় রাখা হয় যা প্রতিটি 32bytes অন্তর্ভুক্ত করে। পড়ার পাশাপাশি composes পরিসীমা বিট 7 দ্বারা সেট 7 কনফিগারেশন রেজিস্টার দ্বারা সেট করা হয়। সংগ্রহস্থলটি বাইট (00) দ্বারা অ্যাক্সেস করা যেতে পারে, 32bte পৃষ্ঠা (10), বা সমগ্র 32k (01) এর সাথে ক্রমাগতভাবে। আমরা ক্রম মোডে কাজ করব, যা আমাদের চেক আউট করার পাশাপাশি যেকোনো স্টোরেজ স্পেসে যেকোনো জায়গায় কোনও ধরণের ডেটা দৈর্ঘ্য রচনা করতে অ্যাক্সেস সরবরাহ করে।

হোল্ড পিনটি প্রবেশ করার জন্য সঠিক একই বাসের প্রয়োজনীয়তাগুলিতে অন্য চিপগুলিতে স্থানান্তর করার সময় স্থানান্তর করার জন্য ব্যবহার করা হয়। কনফিগারেশন নিবন্ধনের বিট 0 হোল্ড পিন নিয়ন্ত্রণ করে। 1 সেট যখন, হোল পিন নিষ্ক্রিয় করা হয়। আমরা সাধারণত অপারেশন জন্য স্থল হোল্ড সংযুক্ত, তবে তার কর্মক্ষমতা বিট 0 দ্বারা সম্পূর্ণরূপে নিষ্ক্রিয় করা যাবে।

কনফিগারেশন নিবন্ধটি কম্পোজ কনফিগারেশন কমান্ড (0 বি00000001) পাশাপাশি নতুন সেটিংস পাঠানোর দ্বারা পরিবর্তিত হয়।

SPI> [0B1 0B01000001] <-আফট কনফিগার নিবন্ধন সিএস সক্রিয় লিখুন: 0x01 <-write Config কমান্ড কমান্ড লিখুন: 0x41 <-Value লিখতে সিএস নিষ্ক্রিয় SPI >.

আমরা 23k256 চিপটি লাইন চয়ন করে একটি SPI চুক্তি শুরু করি ([)। আমরা কনফিগারেশন কনফিগারেশন কমান্ডটি প্রেরণ করি (0 বি 1, 0x01, অথবা 1), কনফিগারেশন নিবন্ধনের জন্য নতুন সেটিংস দ্বারা মেনে চলুন (0 বি 01000001, 0x41)। আমরা SPOUTICE লাভের অ্যাক্সেস অ্যাক্সেসের জন্য 6 টি সেট করেছি, পাশাপাশি হোল পিন ফাংশনটি অক্ষম করতে 0 বিট 0 সেট করুন। বিট 5-1 এর কোন ফাংশন নেই, তবে ডেটশীট স্টেটস সর্বদা রচনা করার জন্য 0. চুক্তিটি চিপটি সিগন্যাল (]) নির্বাচন করে ডিলটি শেষ করে।

SPI> [0B101 R]
সিএস সক্রিয়
লিখুন: 0x05 <-পড়া কনফিগারেশন নিবন্ধন পড়ুন: 0x41 <-Value পড়ুন সিএস নিষ্ক্রিয় SPI >.

এরপর, আমরা চেক আউট কনফিগারেশন নিবন্ধন কমান্ড (0 বি00000101, 0b101, 0x05, অথবা 5) নিশ্চিত করার জন্য সেটিংস সঠিকভাবে লিখিত ছিল। এই কমান্ডটি একটি বাইট (আর) প্রদান করে যা আমরা পূর্ববর্তী অপারেশন (0x41, অথবা 0b01000001) তে যে মানটি তৈরি করেছি তার সাথে মেলে উচিত।

তথ্য এক্সেস

এখন আমরা চিপে তথ্য রচনা হিসাবে পাশাপাশি চেক করতে পারেন। তথ্যগুলি ডেটা রচনা কমান্ডের সাথে শুরু হয় (0 বি 10, 0x02, বা 2), দুটি বাইটের দ্বারা মেনে চলুন যা তথ্যটি রচনা করতে যেখানে চিহ্নিত করে। দোকানের মান ঠিকানা পরে পাঠানো হয়। মোডে লাভ অ্যাক্সেসের উপর নির্ভর করে, একটি একক বাইট, একটি পৃষ্ঠা বা সমগ্র মেমরিটি একক ক্রিয়াকলাপে পূরণ করা যেতে পারে।

SPI> [0B10 0 0 1 2 3 4 5 6 7 8 9 10]
সিএস সক্রিয়
লিখুন: 0x02 <-data compose কমান্ড লিখুন: 0x00 <-অ্যাড্রেস বাইট 1 লিখুন: 0x00 <-অ্যাড্রেস বাইট ২ লিখুন: 0x01 <লিখতে তথ্যের স্টার্ট লিখুন: 0x02. লিখুন: 0x03. লিখুন: 0x04. লিখুন: 0x05. লিখুন: 0x06. লিখুন: 0x07. লিখুন: 0x08. লিখুন: 0x09. লিখুন: 0x0a. সিএস নিষ্ক্রিয় SPI >.

আমরা compose ডেটা কমান্ড (0 বি 10) দিয়ে শুরু করি এবং সেইসাথে chip এর শুরুতে রচনা স্থানটি সেট করে (0 0)। আমরা সঞ্চয় করতে দশটি মান সামগ্রিক পাঠান, সংখ্যা 1 থেকে 10।

ডেটা রচনা করার পরে, আমরা চেক আউট ডাটা কমান্ডের সাথে এটি চেক আউট করতে পারি (0 বি00000011, 0b11, 0x03, অথবা 3)।

SPI> [0B11 0 0 আর: 10]
সিএসসক্ষম
লিখুন: 0x03 <-আডেড ডেটা কমান্ড লিখুন: 0x00 <-স্টার্ট অ্যাড্রেস বাইট 1 লিখুন: 0x00 <-স্টার্ট অ্যাড্রেস বাইট 2 বাল্ক 0x0a বাইট চেক আউট: <- 10 বাইট আউট পড়ুন 0X01 0X02 0X03 0X04 0X05 0X06 0X07 0X08 0X09 0X20A সিএস নিষ্ক্রিয় SPI >.

আমরা চেক আউট ডাটা কমান্ড পাঠান (0 বি11), ঠিকানাটি দ্বারা মেনে চলতে যা পড়তে শুরু করে (0 0)। তারপর আমরা 10 বাইট ব্যাক চেক আউট (আর: 10)। 10 বাইট সংখ্যা 1 থেকে 10, আমরা পূর্ববর্তী ধাপে সংগীত সঠিক একই মান।

এই পোস্টের মত? আপনি মিস হতে পারে অংশ বার্তা পরিদর্শন করুন। একটি অংশ পোস্ট অনুরোধ করতে চান? মন্তব্য আপনার টিপস ছেড়ে দিন।

You may also like...

Leave a Reply

Your email address will not be published. Required fields are marked *