আমরা মাইক্রো বা মাইক্রোকন্ট্রোলার সম্পর্কে ধারনা পেলাম। প্রোগ্রামিং নিয়েও ধারনা হল। কিন্ত এই মাইক্রো চিপে প্রোগ্রাম ভরব কি ভাবে? (মাইক্রোকন্ট্রোলার এর সংক্ষেপ মাইক্রো বোঝানো হয়েছে)
হুম, এবারে এটা নিয়েই আলোচনা হবে। কিন্তু তার আগে একটু ফ্ল্যাশ ম্যামোরী নিয়ে আলোচনা করতে চাই বুঝার সুবিধার্থে।
পরিচ্ছেদসমূহ
ফ্লাশ মেমোরি কি
আগের দিনে প্রোগ্রামেবল আই সি বা মাইক্রো তে প্রোগ্রাম করা ছিল খুব দূরহ কাজ। সে এক বিরাট ইতিহাস। এই সমস্যার সমাধানে যে যুগান্তকারী পরিবর্তন আনল এই এ ভি আর মাইক্রোকন্ট্রোলার চিপগুলা। এতে সর্বপ্রথম ফ্ল্যাশ মেমোরী যুক্ত করা হয়। ফ্লাশ মেমোরি শব্দটি খুব পরিচিত হওয়ার কথা। কারন আমরা সবাই SD মেমোরি কার্ড খুব ভাল করেই চিনি।
আজকাল যারা এন্ড্রয়েড বা স্মার্টফোন ব্যবহার করে তারা অবশ্যই চিনে। এই SD কার্ড আসলে ফ্লাশ মেমোরি ছাড়া কিছুই না। এছাড়া সনি কম্পানির MMC বা বিভিন্ন ডিজিটাল ক্যামেরায় ব্যবহৃত কার্ডগুলো আসলে ফ্লাশ মেমোরি (ভিন্ন ভিন্ন ফরম্যাটের জন্য ভিন্ন নাম)। নিচে একটি MMC কার্ড দেখানো হল-

এতে ৭ টি পিন দৃশ্যমান। এদের বিভিন্ন ফাংশন নিচের টেবিলে দেয়া হলঃ
Pin # | Pin Name | Pin Function |
1 | #CS | Chip Select (Activate) |
2 | SI | Serial In |
3 | GND | Ground |
4 | VCC | Power |
5 | SCK | Data Clock |
6 | Not connected | Not connected |
7 | SO | Serial Out |
মোটামুটি এই টেবিল থেকেই কোন পিনের কাজ কি ধারনা পাওয়া যায়।
- পিন ১ এ সিগনাল আসলে মেমোরি এক্টিভ হয় ফলে ডাটা পড়া বা লেখা সম্ভব হয়।
- ৫ নং পিনের ক্লক স্পিডের উপর ভিত্তি করে ২ নং পিনের মাধ্যমে ডাটা লিখা বা ৭ নং পিনের মাধ্যমে ডাটা পড়া। যেমন ক্লক 100KHz স্পিডে প্রতি সেকেন্ডে 100,000 বিট তথ্য লিখা/পড়া যায়।
- ৬ নং পিন কোন কাজের না এটির কোন ইন্টার্নাল কানেকশন থাকেনা। সুতরাং একটি ফ্ল্যাশ কার্ডের ৬ টি কার্যকরী পিন থাকে।
কিভাবে একটি কম্পিউটার মেমোরি কার্ড এ ডাটা লিখে/পড়ে
ডাটাকার্ড টাকে একটি রিডারে প্রবেশ করানো হয়। রিডারটি একটি ড্রাইভারের মাধ্যমে পিসির (বা ম্যাক) সাথে যোগাযোগ রক্ষা করে। ড্রাইভারটি পিসিকে বলে দেয় কি স্পিডে ডাটা লেন/দেন সম্ভব। পিসি ডাটা ম্যামোরীকার্ডে প্রয়োজনীয় ভোল্টেজ ও ক্লক স্পিড সাপ্লাই দেয় ও চিপ সিলেক্ট এক্টিভ করে। পিসির চাহিবা মত ২ নং পিন দিয়ে ডাটা রাইট/লিখে অথবা ৭ নং পিন দিয়ে ডাটা রিড/পড়ে।
কম্পিউটার কিভাবে মাইক্রো তে ডাটা লিখে/পড়ে
এভিআর মাইক্রোতে (AVR Microcontroller) প্রধানত তিন ধরনের মেমোরী লোকেশন থাকে
- SRAM
- EEPROM
- Flash Mamory
SRAM খুবই ক্ষনস্থায়ী মেমোরি। যেমন আমরা বড় যোগ বিয়োগ করার সময় ৯ এর বেশী সংখা হলে (১০ হলে ০ লিখে হাতে ১ রাখি) কিছু সময়ের জন্য হাতে রেখে দেই পরক্ষনেই আবার তা কাজে লাগিয়ে দেই তদ্রুপ। যেমন সাধারন কোন ডিক্লারেশন যেমন int a কে কম্পাইলার সাধারন ভাবে SRAM এ স্টোর করে।
EEPROM একটু স্থায়ী ধরনের মেমোরী। এতে চিপের জীবনকালে সাধারন ভাবে পরিবর্তিতি হয়না এমন (কনফিগারেশন) ডাটা রাখা হয়।
Flash Memory হলো সেই লোকেশন যেখানে আমরা আমাদের কম্পাইল করা (পরে আলোচিত) বাইনারি প্রোগ্রাম (.hex)রাখি। যা উইন্ডোজের .exe ফাইলের সমতুল্য। এটির মাধ্যমেই মাইক্রোচিপ গুলি উদ্দিষ্ট কার্যক্রম চালায়।
ফ্লাশ কার্ডের মতো প্রতিটা মাইক্রো’র বিশেষ কিছু পিন থাকে যাদের প্রোগ্রামিং পিন বলে (সাধারন ভাবে মাইক্রোর পিন গুলি মাল্টি রোল পিন মানে একই পিন দিয়ে ভিন্ন ভিন্ন কাজ করা যায় এ ধরনের। মূলত এগুলি দিয়ে ইনপুট/আউটপুটের কাজ করা হয়। কিন্তু প্রোগ্রামিং এর সময় এরা প্রোগ্রামিং পিনে রূপ নেয়)। নিচে লাল চিহ্নিত পিন গুলি প্রোগ্রামিং এর সময় প্রোগ্রামিং পিনে পরিনত হয়-

লক্ষ্য করলে দেখা যায় ফ্ল্যাশ কার্ডের মতো মাইক্রো এর ৬ টি কার্যকর পিন আছে। শুধু চিপ সিলেক্ট নামে সরাসরী কোন পিন নাই তার পরিবর্তে আছে রিসেট পিন। কিন্তু নাম ভিন্ন হলেও কাজ কিন্তু একই। রিসেট পিন চিপের স্বাভাবিক কার্যক্রমের সময় VCC ভোল্টেজের সমান থাকে। কিন্তু প্রোগ্রামিং-এর সময় রিসেট পিনকে GND এর সমান করতে হয়।
এখানে কার্ড রিডার/রাইটারের পরিবর্তে একটা যন্ত্র থাকে যাকে প্রোগ্রামার বলে। প্রোগ্রামারটি নির্দিষ্ট ড্রাইভারের সাহায্য পিসি (বা ম্যাক) এর সাথে যোগাযোগ রক্ষা করে ক্লক স্পিড ও ভোল্টেজ চিপে সাপ্লাই দেয়। এবং-
- MOSI (MOSI – Master Out Serial In) পিন দিয়ে ডাটা রাইট আর
- MISO (MISO – Master In Serial Out ) পিন দিয়ে ক্লক স্পিডে ডাটা রিড করে।
AVR সিস্টেমে দুই ধরনের পিন হেডার ব্যবহার করা হয় ৬ পিনের, ১০ পিনের (আভ্যন্তরিন কানেকশন একই, ৬ পিনের)

লক্ষ্যনীয় যে ১০ পিনের হেডারে ৩ টা অতিরিক্ত গ্রাউন্ড পিন আর একটা অব্যবহৃত পিন (NC) থাকে। প্রত্যেকটা ভোল্টেজ পিনকে (MISO, MOSI, SCK) আলাদা গ্রাউন্ড দেবার অভিপ্রায়ে এই সব অতিরিক্ত গ্রাউন্ড পিনের আবির্ভাব।
এখনকার বেশীরভাগ প্রোগ্রামার আভ্যন্তরিন ভাবে এই কাজ করে বলে ৬ পিনের হেডারই বহুল প্রচলিত। নিচের চিত্র টিতে ৬ পিন হেডার ও আইসি বেসে এ ভি আর মাইক্রো চিপ প্রোগ্রামিং করার উপযুক্ত করে বসানো দেখানো হল-


<< মাইক্রোকন্ট্রোলার নিয়ে ৫ম কিস্তি এখানে ৭ম কিস্তি এখানে >>
ভাই খুবই খুশি হতাম যদি একটি কম ওয়াট এর এ্যমপ্লিফায়ার এর ডায়াগ্রাম দেন bad noise নাই।
Bad noise হয় মূলত পিসিবি ডিজাইন যদি ভাল না হয় তার জন্য। আমাদের ইলেকট্রনিক্সের অডিও সেকশন থেকে ঘুরে আসতে পারেন। অনেক তথ্য পাবেন এ সংক্রান্ত। http://www.amaderelectronics.com/tag/audio