একাধিক আই²সি বন্দর কেন দরকার?


19

I²C প্রোটোকলটি তাত্ত্বিকভাবে এবং 7-বিট অ্যাড্রেসিং সহ 127 টি ডিভাইস মাস্টারের সাথে সংযুক্ত হওয়ার অনুমতি দেয়। এটি একটি বিশাল সংখ্যা, সুতরাং কেন কোনও কম দামের মাইক্রোকন্ট্রোলার (যেমন এই পিআইসি 24 ), একাধিক আই²সি বন্দর রাখবে ? কেন এটি প্রয়োজন?

উত্তর:


23

সেন্সর হাবের ব্যবস্থা

এই দৃশ্যে দুটি আইসিসি বাস রয়েছে। আসুন তাদের লোকাল বাস এবং প্রধান বাস বলি । লোকাল বাসের উদ্দেশ্য হ'ল একগুচ্ছ সেন্সরকে একটি মাইক্রোকন্ট্রোলার (μ সি) এর সাথে সংযুক্ত করা। ΜC এর উদ্দেশ্য সেন্সরগুলি পোল করা, তাদের কাছ থেকে সামগ্রিক তথ্য এবং নির্দিষ্ট ইভেন্টগুলি সনাক্ত করা। এই জাতীয় ভূমিকার একটি μC সেন্সর হাব বলে । সেন্সর হাব উচ্চতর ক্রমের জন্য দায়ী নয়; তার জন্য একটি শক্তিশালী প্রধান প্রসেসর রয়েছে। মূল বাসটি সেন্সর হাবকে প্রধান প্রসেসরের সাথে সংযুক্ত করে। সুতরাং, সেন্সর হাব μ সি হ'ল স্থানীয় আই সি সি বাসে মাস্টার এবং আই সি সি বাসে স্লেভ।

এসপিআই এবং আইইসি

মূল পোস্টে যুক্ত পিআইসি এসপিআই এবং আইওসির মধ্যে পিনগুলি ভাগ করে না। তবে, অন্যান্য পিআইসি রয়েছে যা হার্ডওয়্যার এসপিআই এবং আই²সির জন্য একই পিনগুলি ব্যবহার করে, কারণ উভয়ই একই এমএসএসপি পেরিফেরিয়াল দিয়ে প্রয়োগ করা হয়। যদি কোনও পিকের দুটি পৃথক এমএসপি পেরিফেরি থাকে তবে তার একটি হার্ডওয়্যার এসপিআই এর জন্য ব্যবহার করা যেতে পারে, অন্যটি হার্ডওয়্যার আই²সির জন্য ব্যবহৃত হয়।


21

একাধিক বাসের প্রয়োজনের একটি সাধারণ কারণটিতে বিভিন্ন গতিবেগে চালিত ডিভাইস রয়েছে। মূলত, I²C সর্বোচ্চ 100 kHz এ দৌড়েছিল। পরে, গতিটি সর্বোচ্চ 400 কেজি হার্জ এবং তারপরেও 1 মেগাহার্জ এবং তারপরে উন্নীত হয়েছিল।

গ্যাচচা হ'ল, যেহেতু প্রতিটি ডিভাইসের ঠিকানা আই²সি প্রোটোকলে এম্বেড করা রয়েছে, তারপরে আপনার যদি একই বাসে বিভিন্ন স্পিড রেটিং সহ ডিভাইস থাকে তবে 100 কেএইচজেড এবং 400 কেজি হার্জ বলুন, আপনাকে সর্বদা সর্বনিম্ন গতিতে বাস চালাতে হবে একই বাসে থাকা সমস্ত ডিভাইসে (এক্ষেত্রে 100 kHz)

আপনি যদি উচ্চতর গতিতে (400 kHz) বাস চালাতেন তবে স্পষ্টতই নিম্ন-গতির ডিভাইসটি সঠিকভাবে কাজ করবে না এবং এটি উচ্চ গতির ডিভাইসের ঠিকানাটিকে নিজের হিসাবে ব্যাখ্যা করতে পারে, যার ফলে 400 কিলাহার্টজ ডিভাইসটি ব্যর্থ হতে পারে আমরা হব. তবে আপনি যদি প্রাথমিকভাবে 100 কিলাহার্টজ এ বাসটি চালাতেন এবং তারপরে উচ্চ-গতির চিপকে সম্বোধন করার পরে বাসটিকে 400 কিলাহার্টজ গতিবেগ করার চেষ্টা করেছিলেন, তবে নিম্ন-গতির চিপটির কোনওটির ব্যাখ্যা করা সম্ভব (যদিও সম্ভবত অসম্ভব) উচ্চ-গতির ডেটা প্যাকেটগুলি ভুলভাবে তার ঠিকানা হিসাবে, এবং এইভাবে বাসে যোগাযোগকে গোলমাল করে। উভয় ক্ষেত্রেই, 400 kHz ডিভাইসের সাথে ইন্টারচেঞ্জের শেষে, 100 কেএইচজেড ডিভাইসটি সম্ভবত অজানা অবস্থায় থাকবে।

সুতরাং এটি সবচেয়ে কার্যকর, যদি আপনার কাছে বিভিন্ন গতিতে ডিভাইসগুলি চলমান থাকে এবং আপনার একাধিক আইসিসি বন্দর থাকে এবং আপনার কাছে যেমন বিলাসিতার জন্য অনুমতি দেওয়ার জন্য অতিরিক্ত পিন থাকে, একটি আইএসি 100 কিলাহার্টজ ডিভাইসের জন্য বলে, অন্য একটি 400 কেএইচজেড ডিভাইসের জন্য এবং অন্যটি 1 মেগাহার্টজ ডিভাইসের জন্য, যেমন আপনার প্রয়োজনীয়তা আদেশ করতে পারে।

এটি এসপিআই-তে কোনও সমস্যা নয় কারণ প্রতিটি ডিভাইস আলাদা চিপ নির্বাচন লাইন দ্বারা হার্ডওয়্যারে সক্ষম (সম্বোধন) করা থাকে। সুতরাং ঘড়ির গতিটি একই বাসের অন্যান্য চিপগুলিতে কোনও প্রভাব ছাড়াই নির্বাচিত চিপের (10 মেগাহার্টজ, 20 মেগাহার্টজ, যাই হোক না কেন) সাথে গতিযুক্ত হতে পারে, কারণ তারা সক্ষম নয়।


19

এছাড়াও এটি আপনাকে একই ঠিকানা সহ দুটি ডিভাইস সমর্থন করতে পারে। হ্যাঁ বেশিরভাগ ডিভাইসগুলি আপনাকে স্ট্র্যাপ সহ তাদের ঠিকানার নীচের দুটি বিট নির্বাচন করতে দেয়। সম্প্রতি আমাকে 4 টি ডিভাইস সমর্থন করতে হয়েছিল যারা প্রত্যেকে আপনাকে কেবল একটি প্রতিরোধকের মাধ্যমে তাদের ঠিকানার এলএসবি সেট করার অনুমতি দিয়েছিল। দুটি বন্দর থাকা মানে আমার জন্য কোনও অতিরিক্ত ব্যয়।

সম্ভবত আমি একজনকে একগুচ্ছ ডিভাইসগুলির জন্য মাস্টার হতে এবং অন্যটিকে স্লেভ পোর্ট হিসাবে উপস্থাপন করতে চাই, সুতরাং আমার মাস্টারকে 10,000 তম স্থানে তাপমাত্রা সেন্সর দেওয়ার সময় আমাকে কমান্ড দেওয়ার জন্য বাসটি ধরতে অপেক্ষা করতে হবে না সময়।

এই থ্রেডে অন্যান্য ভাল প্রতিক্রিয়াগুলির একগুচ্ছ বলে মনে হচ্ছে, কেবল আমার 2 সেন্ট যোগ করুন।


9

গতি.

আপনার যদি একই সাথে দুটি আই 2 সি ডিভাইস অ্যাক্সেস করার প্রয়োজন হয় তবে আপনার একটি উল্লেখযোগ্য দ্বন্দ্ব হতে পারে। অথবা, একজনের অপরটির জন্য অপেক্ষা করতে হবে।


9

দ্বিতীয়ত, I²C আরও ব্যান্ডউইথ পাওয়ার জন্য ব্যবহার করা যেতে পারে (আপনি একই সাথে দুটি বাইট গ্রহণ বা প্রেরণ করতে পারেন)।

আপনার যদি এমন কিছু এডিসি থাকে যা ধারাবাহিকভাবে কাজ করে তবে একটি আইসিসি সারাক্ষণ ব্যস্ত থাকে।

ঠিকানা পরিবর্তন করতে কিছুটা সময়ও লাগে, তাই কিছু ক্ষেত্রে - আপনি দুটি ডিভাইসের জন্য দুটি বন্দর ব্যবহার করতে পারেন এবং সময় সাশ্রয়ের জন্য ঠিকানা পরিবর্তনগুলি এড়াতে পারেন।


0

অন্যরা এটি করার জন্য অনেকগুলি কারণ উল্লেখ করেছে, আমি একটি যুক্ত করব:

আপনি একগুচ্ছ 5 ভি আই 2 সি ডিভাইস এবং 3 ভি 3 আই 2 সি ডিভাইসগুলির একগুচ্ছ পেয়েছেন।

উদাহরণস্বরূপ আমার কাছে একটি 3.3V মাইক্রো রয়েছে যার দুটি আই 2 সি পোর্ট রয়েছে, একটি 5 ভি সহনশীল, অন্য 3V3 কেবল।


কৌতূহলের বাইরে এটি কোন মাইক্রো?
নিক Alexeev

1
এলপিসি 4330, ম্যানুয়াল থেকে এখানে উদ্ধৃত অংশ: "ওপেন ড্রেন 5 ভি সহনশীল ডিজিটাল আই / ও প্যাড, আই 2 সি-বাস ফাস্ট মোড প্লাস স্পেসিফিকেশনের সাথে সামঞ্জস্যপূর্ণ। এই প্যাডটির আউটপুট কার্যকারিতা সরবরাহ করার জন্য একটি বাহ্যিক পুল-আপ প্রয়োজন power আই 2 সি-বাসের সাথে সংযুক্ত পিনটি ভাসমান এবং আই 2 সি লাইনগুলিকে বিরক্ত করে না ""
পেরুফিউ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.