আপনি কম্পিউটারের সাথে যোগাযোগের জন্য ইউএসবি ব্যবহার করতে চান। আপনার যদি বেশ কয়েকটি মাইক্রোকন্ট্রোলার থাকে তবে আপনি সম্ভবত কেবলমাত্র একটি মাইক্রোকন্ট্রোলারকে সরাসরি কম্পিউটারের সাথে সংযুক্ত করবেন। অন্যান্য মাইক্রোকন্ট্রোলারদের প্রধান মাইক্রোকন্ট্রোলারের কাছ থেকে তাদের কমান্ডগুলি নেওয়া দরকার।
আপনার চয়ন করা যোগাযোগ বিভিন্ন কারণের উপর নির্ভর করবে:
- প্রয়োজনীয় ব্যান্ডউইথ (আমরা ধরে নিব আপনি এগুলি 16 মেগাহার্টজ এ চালাচ্ছেন)
- জটিলতা (তারের এবং কোডিং)
- দ্বি-দিকনির্দেশক, বা মাস্টার-স্লেভ
প্রায় সব বিকল্পের মধ্যে এভিআর মাইক্রোকন্ট্রোলার অন্তর্নির্মিত সমর্থন রয়েছে। এমন কোনও বিকল্প নেই যা আপনি বিল্ট-ইন বিকল্পগুলির চেয়ে যুক্তিসঙ্গতভাবে পছন্দ করতে পারেন যার জন্য অতিরিক্ত হার্ডওয়্যার প্রয়োজন require তাদের অন্তর্নিহিত সমর্থন থাকার কারণে, সফ্টওয়্যার জটিলতা সমস্ত অনুরূপ, আপনি কেবল পোর্টটি কনফিগার করেছেন (রেজিস্টারগুলি ব্যবহার করে), অন্য রেজিস্টারে প্রেরণ করার জন্য ডেটা রাখুন, তারপরে অন্য রেজিস্টারে কিছুটা সেট করে ট্রান্সমিশনটি ট্রিগার করুন। প্রাপ্ত কোনও ডেটা অন্য রেজিস্টারে পাওয়া যায় এবং একটি বিঘ্ন ঘটানো হয় যাতে আপনি এটি পরিচালনা করতে পারেন। আপনি যে কোনও বিকল্প চয়ন করুন, কেবলমাত্র পার্থক্য হ'ল নিবন্ধের স্থানগুলির পরিবর্তন এবং কনফিগারেশন রেজিস্টারগুলিতে কিছু পরিবর্তন।
একটি ইউএসআর্ট লুপের নিম্নলিখিত বৈশিষ্ট্যগুলি রয়েছে:
- সিএলকে / 16 = 1 মেগাহার্টজ (16MHz ঘড়িতে) সর্বাধিক বাউড রেট যা প্রায় 90KB / s এর স্থানান্তর হার
- সম্পূর্ণ দ্বি-দিকীয় যোগাযোগ (কোনও মাস্টার বা ক্রীতদাসের পদবি নেই)
- প্রতিটি জোড়ের মাইক্রোকন্ট্রোলারের মধ্যে পৃথক তারের প্রয়োজন - আতমেগা 32u4 দুটি ইউএসআর্ট পোর্টকে স্থানীয়ভাবে সমর্থন করে, অনুশীলনে কোনও নেটওয়ার্কে সংযোগ করতে পারেন এমন মাইক্রোকন্ট্রোলারের সংখ্যা সীমিত করে (অথবা অন্যথায় আপনি মাইক্রোকন্ট্রোলারের দীর্ঘ স্ট্রিং দিয়ে শেষ করেন - যেমন একটি লিঙ্কযুক্ত তালিকায় সংযুক্ত) পদ্ধতিতে)
দ্রষ্টব্য: আপনি আরএস 232 যোগাযোগ পেতে এটি ব্যবহার করেন, আরএস 232 এর জন্য 10 ভি দরকার হয়, সেই ভোল্টেজের স্তর পেতে ড্রাইভারের প্রয়োজন। মাইক্রোকন্ট্রোলারদের মধ্যে যোগাযোগের জন্য, এটি কার্যকর নয় (কেবলমাত্র ভোল্টেজের স্তরগুলি পরিবর্তন করা হয়)।
আরএস -485:
- মূলত, আপনি ইউএসআর্ট পোর্টটি অন্য একটি মোডে ব্যবহার করেন - ব্যান্ডউইথের কোনও সুবিধা নেই, এবং এটি কেবল তারেরটিকে সামান্য সরল করতে পারে তবে এটি এটিকে জটিল করে তোলে। এটি সুপারিশ করা হয় না।
দুই তারের ইন্টারফেস:
এটিকে আই 2 সি হিসাবেও উল্লেখ করা হয়। এর অর্থ সমস্ত ডিভাইস একই দুটি তারের ভাগ করে দেয়।
উভয় তারে আপনার একটি পুল-আপ রেজিস্টার দরকার
এটি ধীর গতির (কারণ পুল-আপ প্রতিরোধকগুলি মান সীমাবদ্ধ এবং ডিভাইসের সংখ্যা বৃদ্ধি হওয়ার সাথে সাথে তারের দৈর্ঘ্য বৃদ্ধি পাওয়ার সাথে সাথে সেখানে বাড়ছে ক্যাপাসিট্যান্স)। এই এভিআর মাইক্রোকন্ট্রোলারের জন্য, গতি 400 কেজি হার্জ অবধি - ইউএসআর্টের চেয়ে ধীর (তবে এই গতিটি আপনার ক্যাপাসিটেন্স সীমাবদ্ধ করার উপর নির্ভর করে)। কারণটি হ'ল যদিও কোনও ডিভাইস ডেটা ওয়্যারকে কম চালায়, তারের আবারও উচ্চ ভাসমান (পুল-আপ রেজিস্টার) দিয়ে বিপরীত রূপান্তরটি সম্পন্ন করা হয়।
আপনি যখন বিবেচনা করেন যে সমস্ত যোগাযোগ একই সীমিত ব্যান্ডউইথকে ভাগ করে দেয় তখন এটি আরও ধীর হয়। যেহেতু সমস্ত যোগাযোগ একই সীমিত ব্যান্ডউইথকে ভাগ করে, তাই যোগাযোগের ক্ষেত্রে বিলম্ব হতে পারে যেখানে ডেটা পাঠানোর আগে অলস হওয়া পর্যন্ত ডেটা অপেক্ষা করতে হবে। যদি অন্য ডেটা ধারাবাহিকভাবে প্রেরণ করা হয় তবে এটি ডেটা প্রেরণ করা থেকে অবরুদ্ধও হতে পারে।
এটি মাস্টার-স্লেভ প্রোটোকলের উপর নির্ভর করে, যেখানে কোনও মাস্টার দাসকে সম্বোধন করে, তারপরে একটি আদেশ / অনুরোধ প্রেরণ করে এবং গোলাম তার পরে উত্তর দেয়। একবারে কেবল একটি ডিভাইস যোগাযোগ করতে পারে, সুতরাং দাসকে মাস্টার শেষ হওয়ার অপেক্ষা করতে হবে।
যে কোনও ডিভাইস মাস্টার এবং / অথবা ক্রীতদাস উভয়েরই কাজ করতে পারে, একে একে যথেষ্ট নমনীয় করে তোলে।
SPI
এটি আমি মাইক্রোকন্ট্রোলারদের মধ্যে সাধারণ যোগাযোগের জন্য / ব্যবহার করার পরামর্শ দেব।
এটি উচ্চ গতি - সিএলকে / 2 = 8 মেগাহার্টজ পর্যন্ত (16 মেগাহার্টজে সিএলকে জন্য) এটি দ্রুততম পদ্ধতিতে পরিণত করে। একমাত্র ঘড়ির জন্য পৃথক তারের কারণে এটি অর্জনযোগ্য।
মোশি, এমআইএসও ডেটা এবং এসসিকে ক্লক ওয়্যারগুলি পুরো নেটওয়ার্ক জুড়ে ভাগ করা হয়েছে যার অর্থ এটিতে সহজ ওয়্যারিং রয়েছে।
এটি মাস্টার-স্লেভ ফর্ম্যাট, তবে যে কোনও ডিভাইস মাস্টার এবং / অথবা ক্রীতদাস হতে পারে। যাইহোক, দাসটি নির্বাচিত জটিলতার কারণে, ভাগ করা তারের জন্য (নেটওয়ার্কের মধ্যে), আপনার এটি কেবল শ্রেণিবদ্ধ পদ্ধতিতে ব্যবহার করা উচিত (দ্বি-তারের ইন্টারফেসের বিপরীতে)। অর্থাৎ। আপনি যদি সমস্ত ডিভাইসকে একটি গাছে সংগঠিত করেন তবে কোনও ডিভাইস কেবলমাত্র তার বাচ্চাদের মাস্টার এবং তার পিতামাতার দাস a এর অর্থ গোলাম মোডে কোনও ডিভাইসে সর্বদা একই মাস্টার থাকবে। এছাড়াও, সঠিকভাবে এটি করার জন্য, আপনাকে এমআইএসও / এমওএসআই / এসসিকে আপস্ট্রিম মাস্টারে যুক্ত করতে হবে, যাতে যদি ডিভাইসটি ডাউন স্ট্রিম যোগাযোগ করে থাকে (যখন ক্রীতদাস হিসাবে নির্বাচিত না হয়), যোগাযোগগুলি অন্যান্য অংশের যোগাযোগগুলিতে প্রভাব ফেলবে না নেটওয়ার্ক (প্রতিরোধকগুলি ব্যবহার করে আপনি এটি করতে পারেন এমন স্তরের সংখ্যাটি সীমাবদ্ধ নোট করুন, উভয় এসপিআই বন্দর ব্যবহার করে আরও ভাল সমাধানের জন্য নীচে দেখুন)।
এভিআর মাইক্রোকন্ট্রোলার যখন এমএমসিআই সিগন্যালটি স্লেভ-সিলেক্ট করা হয় তখন স্বয়ংক্রিয়ভাবে ট্রাই-স্টেট করতে পারে এবং স্লেভ মোডে স্যুইচ করতে (যদি মাস্টার হয়)।
যদিও এটি একটি শ্রেণিবদ্ধ নেটওয়ার্কের প্রয়োজন হতে পারে, বেশিরভাগ নেটওয়ার্ক একটি গাছের মতো পদ্ধতিতে সংগঠিত করা যায়, তাই এটি সাধারণত একটি গুরুত্বপূর্ণ সীমাবদ্ধতা হয় না
উপরের অংশটি কিছুটা শিথিল করা যায়, কারণ প্রতিটি এভিআর মাইক্রোকন্ট্রোলার দুটি পৃথক এসপিআই বন্দর সমর্থন করে, তাই প্রতিটি ডিভাইসে দুটি পৃথক নেটওয়ার্কে পৃথক অবস্থান থাকতে পারে।
এটি বলার পরে, আপনার গাছে / স্তরক্রমের (যদি আরও 2 টির) অনেক স্তরের প্রয়োজন হয়, তবে উপরের সমাধানগুলি প্রতিরোধকগুলি ব্যবহার করে খুব সহজেই কাজ করতে পারবেন না। এই ক্ষেত্রে, আপনার গাছের প্রতিটি স্তরের মধ্যে এসপিআই নেটওয়ার্ক পরিবর্তন করা উচিত। এর অর্থ প্রতিটি ডিভাইস তার এসপিআই নেটওয়ার্কে এবং অন্য এসপিআই নেটওয়ার্কে তার পিতামাতার সাথে সংযুক্ত হবে। যদিও এর অর্থ হল আপনার কেবল সংযোগের একটি গাছ রয়েছে তবে সুবিধাটি হ'ল যে কোনও ডিভাইস একই সাথে তার শিশু এবং তার পিতা-মাতার উভয়ের সাথে যোগাযোগ করতে পারে এবং আপনার অদ্ভুত প্রতিরোধক নেই (সঠিক মানগুলি চয়ন করা সর্বদা শক্ত) ।
এটির পৃথক এমওসিআই এবং এমআইএসও তার রয়েছে বলেই, মাস্টার এবং স্লেভ উভয়ই একই সাথে যোগাযোগ করতে পারে, এটি গতির দুইটি বৃদ্ধির একটি সম্ভাব্য কারণ দেয়। প্রতিটি অতিরিক্ত ক্রীতদাসের জন্য ক্রীতদাস-নির্বাচনের জন্য একটি অতিরিক্ত পিনের প্রয়োজন, তবে এটি কোনও বড় বোঝা নয়, এমনকি 10 টি বিভিন্ন দাসকে কেবলমাত্র 10 অতিরিক্ত পিনের প্রয়োজন হয়, যা একটি সাধারণ এভিআর মাইক্রোকন্ট্রোলারে সহজেই থাকতে পারে।
আপনার নির্দিষ্ট করা AVR মাইক্রোকন্ট্রোলার দ্বারা ক্যান সমর্থিত নয়। যেহেতু অন্যান্য ভাল বিকল্প রয়েছে, সম্ভবত এটি সম্ভবত এই ক্ষেত্রে গুরুত্বপূর্ণ নয়।
সুপারিশটি এসপিআই , কারণ এটি দ্রুত, ওয়্যারিং খুব জটিল নয়, এবং মজাদারভাবে টান-আপ প্রতিরোধকের প্রয়োজন নেই। বিরল ক্ষেত্রে যেখানে এসপিআই আপনার চাহিদা সম্পূর্ণরূপে পূরণ করে না (সম্ভবত আরও জটিল নেটওয়ার্কগুলিতে), আপনি একাধিক বিকল্প ব্যবহার করতে পারেন (উদাহরণস্বরূপ, দুটি তারের ইন্টারফেসের পাশাপাশি দুটি এসপিআই বন্দর ব্যবহার করুন, পাশাপাশি কিছু মাইক্রোকন্ট্রোলার যুক্ত করুন) একটি USART লুপ ব্যবহার করে!)
আপনার ক্ষেত্রে, এসপিআই ব্যবহার করার অর্থ হ'ল স্বাভাবিকভাবেই, কম্পিউটারে ইউএসবি সংযোগ সহ মাইক্রোকন্ট্রোলার মাস্টার হতে পারে এবং এটি কম্পিউটার থেকে প্রতিটি দাস ডিভাইসে প্রাসঙ্গিক কমান্ডগুলি প্রেরণ করতে পারে। এটি প্রতিটি দাসের আপডেট / পরিমাপ পড়তে এবং এগুলি কম্পিউটারে প্রেরণ করতে পারে।
8 মেগাহার্টজ এবং 0.5 মিটার তারের দৈর্ঘ্যে, আমি মনে করি এটি কোনও সমস্যা হয়ে উঠবে। তবে যদি তা হয় তবে ক্যাপাসিট্যান্স সম্পর্কে আরও সতর্ক হওয়ার চেষ্টা করুন (স্থল এবং সিগন্যাল তারগুলি খুব বেশি কাছাকাছি চলে আসুন, এবং বিভিন্ন কন্ডাক্টরের মধ্যে সংযোগ সম্পর্কেও সতর্ক হন), এবং সিগন্যাল সমাপ্তিও। সমস্যাটি থেকে যাওয়ার সম্ভাবনা না থাকলে আপনি ঘড়ির হার কমিয়ে আনতে পারেন তবে আমি এটি প্রয়োজনীয় বলে মনে করি না।