এসপিআই বা আই 2 সি ইন্টারফেসটি ব্যবহার করার সিদ্ধান্ত নেওয়ার সময় আমার কোন ট্রেড অফগুলি বিবেচনা করা উচিত?
এই অ্যাক্সিলোমিটার / গাইরো ব্রেকআউট বোর্ড দুটি মডেলের মধ্যে উপলব্ধ, প্রতিটি ইন্টারফেসের জন্য একটি। আরডিনো প্রকল্পে একত্রিত করা কি সহজ হবে?
এসপিআই বা আই 2 সি ইন্টারফেসটি ব্যবহার করার সিদ্ধান্ত নেওয়ার সময় আমার কোন ট্রেড অফগুলি বিবেচনা করা উচিত?
এই অ্যাক্সিলোমিটার / গাইরো ব্রেকআউট বোর্ড দুটি মডেলের মধ্যে উপলব্ধ, প্রতিটি ইন্টারফেসের জন্য একটি। আরডিনো প্রকল্পে একত্রিত করা কি সহজ হবে?
উত্তর:
সারাংশ
আই 2 সি একটি বাস সিস্টেম যা এসডিএ লাইনে দ্বি নির্দেশমূলক ডেটা রয়েছে। এসপিআই হ'ল ডেটা এবং পৃথক লাইনে (এমওএসআই এবং এমআইএসও) থাকা ডেটার সাথে পয়েন্ট-টু-পয়েন্ট সংযোগ।
মূলত এসপিআইতে একজোড়া শিফট রেজিস্টার থাকে, যেখানে আপনি অন্যের থেকে ডেটা ক্লক করার সময় এক শিফট রেজিস্টারে ডেটা ক্লক করেন। সাধারণত প্রতিটি বারের মতো 8 টি ঘড়ির ডাল রেখে তথ্য বাইটে লেখা হয়, তবে এটি কোনও এসপিআইর প্রয়োজনীয়তা নয়। আপনি যদি চান তবে আপনার শব্দের দৈর্ঘ্য 16 বিট বা 13 বিটও থাকতে পারে। আইপি 2-তে সিঙ্ক্রোনাইজেশন এসপিআইতে প্রারম্ভিক ক্রম দ্বারা সম্পন্ন হয় এটি এসএস উচ্চতর দ্বারা সম্পন্ন হয় (এসএস সক্রিয় নিম্ন)। আপনি নিজেই সিদ্ধান্ত নিন এটি কতটা ঘড়ির ডাল। আপনি যদি 13 বিট শব্দ ব্যবহার করেন তবে এসএস 13 ঘড়ির ডালের পরে বিটগুলিতে শেষ ক্লকটি ল্যাচ করবে।
দ্বি নির্দেশমূলক ডেটা দুটি পৃথক লাইনে থাকায় ইন্টারফেস করা সহজ।
স্ট্যান্ডার্ড মোডে এসপিআইয়ের কমপক্ষে চারটি লাইন দরকার: এসসিএলকে (সিরিয়াল ক্লক), এমওএসআই (মাস্টার আউট স্লেভ ইন), এমআইএসও (মাস্টার ইন স্লেভ আউট) এবং এসএস (স্লেভ সিলেক্ট)। দ্বিপক্ষীয় মোডে কমপক্ষে তিনটি লাইন প্রয়োজন: এসিএলকে (সিরিয়াল ক্লক), মিমো (মাস্টার ইন মাস্টার আউট) যা মসি বা এমআইএসও লাইনগুলির মধ্যে একটি এবং এসএস (স্লেভ নির্বাচন)। একাধিক ক্রীতদাস সহ সিস্টেমের আপনি, প্রতিটি বান্দার জন্যে এস এস লাইন প্রয়োজন, যাতে জন্য ক্রীতদাসদের আপনি মান মোডে লাইন এবং দ্বিমুখী মোডে লাইন। আপনি যদি এটি না চান তবে, স্ট্যান্ডার্ড মোডে আপনি পরবর্তী দফতরের MISO এর সাথে একটি দাসের MOSI সংকেতটি সংযুক্ত করে দাসগুলিকে ডেইজি-চেইন করতে পারেন। আপনার যোগাযোগের সমস্ত দাসের মাধ্যমে চক্র চালিয়ে যাওয়ার কারণে এটি যোগাযোগকে কমিয়ে দেবে।এন + 3 এন + 2
টিক্রোসলে লেগেছে এসপিআই আই 2 সি এর চেয়ে অনেক বেশি ফ্রিকোয়েন্সিতে কাজ করতে পারে।
আই 2 সি কিছুটা জটিল। এটি একটি বাস যেহেতু আপনার ডিভাইসগুলিকে সম্বোধন করার একটি উপায় প্রয়োজন। আপনার যোগাযোগটি একটি অনন্য প্রারম্ভিক ক্রম দিয়ে শুরু হয়: ঘড়ি (এসসিএল) বেশি থাকাকালীন ডেটা লাইনটি (এসডিএ) কম টেনে নেওয়া হয়, যখন বাকী যোগাযোগের ডেটা কেবল তখনই ঘড়ির কম হয় পরিবর্তিত হওয়ার অনুমতি দেওয়া হয়। এই সূচনা ক্রম প্রতিটি যোগাযোগকে সিঙ্ক্রোনাইজ করে।
যেহেতু যোগাযোগের মধ্যে ঠিকানা অন্তর্ভুক্ত রয়েছে যেকোন সংখ্যক ডিভাইসের (127 অবধি) জন্য মাত্র দুটি লাইন প্রয়োজন।
সম্পাদনাটি
স্পষ্ট যে ডেটা লাইন দ্বিপাক্ষিক, তবে এটি লক্ষণীয় যে এটি ক্লক লাইনের ক্ষেত্রেও সত্য। দাসীরা বাসের গতি নিয়ন্ত্রণ করতে ঘড়িটি প্রসারিত করতে পারে । এটি স্তরের স্থানান্তর বা বাফারিংয়ের জন্য আই 2 সি কম সুবিধাজনক করে তোলে। (স্ট্যান্ডার্ড মোডে এসপিআই লাইনগুলি সমস্ত একমুখী হয়।)
প্রতিটি বাইট (ঠিকানা বা ডেটা) প্রেরণের পরে রিসিভারকে এসডিএতে একটি স্বীকৃতি নাড়ি রেখে রসিদটি স্বীকার করতে হয়। আপনার মাইক্রোকন্ট্রোলারের যদি আই 2 সি ইন্টারফেস থাকে তবে এটি স্বয়ংক্রিয়ভাবে যত্ন নেওয়া হবে। আপনি যদি এখনও তার মাইক্রোকন্ট্রোলার সমর্থন না করেন তবে আপনি এটি বিট-ব্যাং করতে পারেন তবে প্রতিটি স্বীকৃতি বা ডেটা পড়ার জন্য আপনাকে আউটপুট থেকে ইনপুট থেকে আই / ও পিনটি স্যুইচ করতে হবে, আপনি যদি পড়ার জন্য আই / ও পিন ব্যবহার না করেন এবং লেখার জন্য একটি।
400kHz স্ট্যান্ডার্ড আই 2 সি এসপিআইয়ের তুলনায় অনেক ধীর। এখানে হাই-স্পিড আই 2 সি ডিভাইস রয়েছে যা 1MHz এ কাজ করে, এখনও 20MHz এসপিআই এর চেয়ে অনেক ধীর।
(সম্পাদনা করুন: পরিষ্কার হওয়ার জন্য, নীচের অনেকগুলি উদ্বেগের সাথে I2C / SPI ডিভাইসগুলির বোর্ড-টু-বোর্ড ব্যবহারের কারণে সংকেত অখণ্ডতা রয়েছে যা অলিন সঠিকভাবে উল্লেখ করেছেন))
আপনার যদি এমন প্রতিবন্ধকতা না থাকে যা আপনাকে কম তারের দিকে দৃ strongly়ভাবে ধাক্কা দেয় (আমাদের কাছে হরমেটিকালি সিলড সংযোগকারী সহ একটি প্রকল্প ছিল যা প্রতিটি অতিরিক্ত যোগাযোগের চেয়ে ব্যয়বহুল ছিল), সম্ভব হলে আই 2 সি এড়িয়ে চলুন এবং এসপিআইয়ের সাথে লেগে থাকুন।
একটি হার্ডওয়্যার এবং সফ্টওয়্যার ভিত্তিতে মোকাবেলা করা মোটামুটি সহজ এসপিআই। হার্ডওয়্যারে দুটি ভাগ করে নেওয়া ডেটা লাইন রয়েছে, মাস্টার ইন স্লভ আউট (এমআইএসও বা এসএমআই) এবং মাস্টার আউট স্লেভ ইন (এমওএসআই বা সিমো), মাস্টার দ্বারা উত্পাদিত একটি ভাগ করা ঘড়ি এবং প্রতি ডিভাইসে একটি চিপ নির্বাচন করুন। সিএস লাইনটি নীচে যায়, ঘড়ির চক্র এবং লেনদেন শেষ না হওয়া অবধি ইনপুট বিটগুলিতে এবং আউটপুট বিটগুলিতে স্থানান্তরিত হয়, যার সিএস লাইন উচ্চতর হয়। যখন তাদের সিএস লাইন বেশি থাকে, স্লেভ ডিভাইসগুলি যোগাযোগ করে না: তারা সিএলকে এবং এমওএসআই লাইনগুলিকে উপেক্ষা করে এবং অন্য কাউকে এটির ব্যবহার করার জন্য তাদের এমআইএসও পিনটিকে একটি উচ্চ প্রতিবন্ধী অবস্থায় রাখে।
আপনার যদি বেশ কয়েকটি এসপিআই ডিভাইস ব্যবহার করে কোনও মাইক্রোকন্ট্রোলার থাকে এবং এটির অন্তর্নির্মিত এসপিআই পেরিফেরাল থাকে তবে মাইক্রোকন্ট্রোলারের সিএস আউটপুট একটি ডেমোলেটিপ্লেজারে প্রেরণ করুন (যেমন H৪ এইচসি 138) এবং এসপিআই লেনদেনের মধ্যে ডিভাইসটি নির্বাচন করার জন্য ঠিকানা লাইনগুলি নিয়ন্ত্রণ করুন; আপনি একটি রেজিস্টারগুলিকে আউটপুট জন্য সারি করার জন্য শব্দগুলি লিখেন এবং সিএস পিনটি উচ্চতার পরে সেগুলি আবার পড়ুন read
যেহেতু এসপিআই সিগন্যালগুলি সবই একমুখী, তাই তাদের বাফার করা যায়, ডিজিটাল বিচ্ছিন্নতার সাথে বিচ্ছিন্ন বাধা জুড়ে ব্যবহার করা যায় এবং এলভিডিএসের মতো লাইন ড্রাইভার ব্যবহার করে বোর্ড থেকে বোর্ডে পাঠানো যেতে পারে। আপনার কেবলমাত্র চিন্তার বিষয় হ'ল রাউন্ড ট্রিপ প্রচারের বিলম্ব, যা আপনার সর্বোচ্চ ফ্রিকোয়েন্সি সীমাবদ্ধ করবে will
আই 2 সি সম্পূর্ণ ভিন্ন গল্প। এটি কেবল দুটি তারের এসসিএল এবং এসডিএ সহ একটি তারের অবস্থান থেকে অনেক সহজ, এই দুটি লাইন ভাগ করে নেওয়া দ্বি নির্দেশমূলক লাইন যা বাহ্যিক পুলআপের সাহায্যে খোলা-ড্রেন ডিভাইস ব্যবহার করে। আই 2 সি এর জন্য একটি প্রোটোকল রয়েছে যা একটি ডিভাইস ঠিকানা প্রেরণ করে শুরু হয়, যাতে প্রত্যেকের নিজস্ব ঠিকানা থাকলে একাধিক ডিভাইস ব্যবহার করা যায়।
একটি হার্ডওয়্যার দৃষ্টিকোণ থেকে, কোনও উল্লেখযোগ্য শব্দ আছে এমন সিস্টেমে I2C ব্যবহার করা খুব কঠিন। আই 2 সি লাইনগুলি বাফার বা বিচ্ছিন্ন করার জন্য আপনাকে বিদেশী আইসিগুলি অবলম্বন করতে হবে - হ্যাঁ, সেগুলি রয়েছে, তবে অনেকগুলি নেই: আমরা একটি প্রকল্পে একটি ব্যবহার করেছি এবং বুঝতে পেরেছি যে আপনি একটি বিচ্ছিন্নতা ব্যবহার করতে পারেন, তবে আপনি পারেননি দুটি সিরিজে দুটি ব্যবহার করুন - এটিতে কোন দিকটি চালকের শেষ ছিল তা নির্ধারণ করতে এটি ছোট ভোল্টেজের ড্রপ ব্যবহার করেছিল এবং দুটি সিরিজের ড্রপ দুটি ছিল বেশি।
আই 2 সি এর লজিক স্তরের চৌম্বকগুলি ভিসির উপর নির্ভর করে তাই আপনি যদি একই সিস্টেমে 3V / 3.3V এবং 5V ডিভাইস ব্যবহার করেন তবে আপনাকে সত্যই সতর্ক হতে হবে।
একটি ফুট বা দু'য়ের বেশি তারের ব্যবহার করে এমন কোনও সংকেতকে কেবল ক্যাপাসিট্যান্স সম্পর্কে চিন্তিত হতে হবে। মাল্টিকন্ডাক্টর কেবলের জন্য 100pf / মিটার ক্যাপাসিট্যান্স সাধারণের বাইরে নয়। এর ফলে আপনাকে অতিরিক্ত ক্যাপাসিট্যান্স সঠিকভাবে পরিচালনা করতে এবং উত্থানের সময়ের প্রয়োজনীয়তা পূরণ করতে সক্ষম হতে বাসটি ধীর করতে হবে বা নিম্ন পুলআপ রেজিস্টার ব্যবহার করতে হবে।
সুতরাং আসুন আমরা বলি যে আপনার কাছে এমন একটি সিস্টেম রয়েছে যা আপনি মনে করেন যে আপনি ভাল নকশা করেছেন এবং আপনি বেশিরভাগ সিগন্যাল অখণ্ডতা সম্পর্কিত সমস্যাগুলি মোকাবেলা করতে পারেন, এবং গোলমাল বিরল (তবে এখনও উপস্থিত)। আপনার কীসের জন্য চিন্তা করতে হবে?
এখানে বেশ কয়েকটি ত্রুটি শর্ত রয়েছে যা আপনাকে পরিচালনা করার জন্য প্রস্তুত থাকতে হবে:
স্লেভ ডিভাইস একটি নির্দিষ্ট বাইট স্বীকৃতি দেয় না। আপনাকে এটি সনাক্ত করতে হবে এবং যোগাযোগের ক্রমটি থামিয়ে পুনরায় চালু করতে হবে। (এসপিআই এর মাধ্যমে, আপনি যদি নিশ্চিত হন যে এটি কোনও ত্রুটি ছাড়াই পেয়েছে তা নিশ্চিত করতে আপনি সাধারণত যে ডেটা প্রেরণ করেন তা আবার পড়তে পারেন))
আপনি একটি ক্রীতদাস ডিভাইস থেকে ডেটা বাইট পড়ছেন, এবং ক্লক লাইনে শব্দের কারণে ডিভাইসটি "সম্মোহিত" করা হয়েছে: আপনি এই বাইটটি পড়তে প্রয়োজনীয় 8 টি ঘড়ি প্রেরণ করেছেন, কিন্তু শোরগোলের কারণে, ক্রীতদাসটি এটি মনে করে 7 টি ঘড়ি পেয়েছে এবং এখনও 0 লাইনে ডেটা লাইনে প্রেরণ করছে। ডিভাইসটি যদি 8 তম ঘড়িটি পেয়ে থাকে তবে এটি ডেটা লাইনটি উচ্চতর ছেড়ে দিত যে মাস্টার কোনও এসকে বা ন্যাক বিট প্রেরণের জন্য ডেটা লাইন বাড়াতে বা কমিয়ে দিতে পারে, বা মাস্টার একটি স্টপ (পি) শর্ত প্রেরণ করতে পারে। তবে ক্রীতদাসটি এখনও অন্য একটি ঘড়ির জন্য নিরর্থকভাবে অপেক্ষা করে, ডেটা লাইনটি কম রেখেছে। কোনও মাস্টার অতিরিক্ত ঘড়ি চেষ্টা করার জন্য প্রস্তুত না হলে, আই 2 সি বাস অচল করে আটকে যাবে। আমি বেশ কয়েকটি মাইক্রোকন্ট্রোলার ব্যবহার করেছি যা সাধারণ এসি / ন্যাকের শর্তাদি পরিচালনা করে,
সত্যই ভয়ঙ্কর ঘটনাটি ঘটে যখন কোনও মাস্টার একটি গোলাম ডিভাইসে ডেটা লিখছেন এবং অন্য দাস ডিভাইসের ঠিকানাটি ভুলভাবে ব্যাখ্যা করে এবং মনে করেন যে প্রেরণ করা ডেটা তার জন্য এটি is আমাদের মাঝে আই 2 সি ডিভাইস রয়েছে (আই / ও এক্সপেন্ডার) যা এর কারণে মাঝে মাঝে ভুলভাবে নিবন্ধগুলি সেট করা থাকে। এই কেসটি সনাক্ত করা প্রায় অসম্ভব, এবং আওয়াজকে দৃ be় হতে আপনাকে আপনাকে পর্যায়ক্রমে সমস্ত রেজিস্টারগুলি সেট করতে হবে, যাতে আপনি যদি এই ত্রুটিটি চালিয়ে যান তবে কমপক্ষে এটি একটি অল্প সময়ের পরে স্থির হয়ে যাবে। (এসপিআই এর কখনই এই সমস্যা হয় না - যদি আপনার সিএস লাইনে কোনও ত্রুটি দেখা দেয় তবে এটি কখনই বেশি দিন স্থায়ী হবে না এবং ভুল দাস ডিভাইস দ্বারা ভুলবশত ডেটা পাবেন না))
প্রোটোকলটিতে ত্রুটি সনাক্তকরণ (সিআরসি কোড) থাকলে এই শর্তগুলির অনেকগুলি সঠিকভাবে পরিচালনা করা যেতে পারে, তবে কয়েকটি ডিভাইসে এটি রয়েছে।
আমি দেখতে পেয়েছি যে এই শর্তগুলি পরিচালনা করতে আমাকে আমার আই 2 সি মাস্টার ডিভাইসে জটিল সফটওয়্যার তৈরি করতে হবে। আমার মতে, ওয়্যারিংয়ের প্রতিবন্ধকতাগুলি I2C ব্যবহার করতে বাধ্য করে না এবং এসপিআই না করে এটি কেবল মূল্যবান নয়।
স্পার্কফুনে ডিভাইসের ব্রেকআউট বোর্ডটি কেবলমাত্র I2C সংস্করণের জন্য (এমপিইউ -6500)। এমপিইউ -6000 সংস্করণে একই চিপে এসপিআই এবং আই 2 সি ইন্টারফেস রয়েছে এবং আমি দেখতে পাচ্ছি না যে স্পার্কফুনের সেই চিপ সহ একটি বোর্ড রয়েছে। সুতরাং আমি বিশ্বাস করি আপনি যদি নির্দিষ্ট বোর্ডটি ব্যবহার করতে চান তবে আপনি I2C ব্যবহারের মধ্যে সীমাবদ্ধ। তবে আমি নিম্নলিখিত কারণে আপনার পরিস্থিতিতে আই 2 সি ব্যবহার করার পরামর্শ দিচ্ছি to
সাধারণভাবে, আপনি দেখতে পাবেন যে আইপি 2 বাসটি এসপিআই বাসের চেয়ে একটি হার্ডওয়ার স্ট্যান্ডপয়েন্ট থেকে ব্যবহার করা সহজ। আই 2 সি একটি 2 তারের বাস (এসসিএল / এসডিএ):
SCL – Serial clock.
SDA – Serial data (bidirectional).
এসপিআই একটি 4 টি তারের বাস (এসসিএলকে / এমওএসআই / এমআইএসও / সিএস):
SCLK– Serial clock.
MOSI – Master-out, Slave-in. Data from the CPU to the peripheral.
MISO – Master-in, Slave out. Data from the peripheral back to the CPU.
CS – Chip select.
আপনার একটি আই 2 সি বাসে বেশ কয়েকটি ডিভাইস সংযুক্ত থাকতে পারে। প্রতিটি ডিভাইসের চিপের অভ্যন্তরস্থ ঠিকানা (এস) এর নিজস্ব সেট থাকে set ঠিকানাটি প্রতিটি কমান্ডের প্রথম বাইট হিসাবে (একটি পঠন / লেখার বিট সহ) বাসে সম্প্রচারিত হয়। এটির সাথে অন্য কোনও ওভারহেডের একই কার্যকারিতাটির জন্য I2C বাস বনাম এসপিআইতে আরও বিট প্রেরণের প্রয়োজন।
বিভিন্ন শ্রেণীর ডিভাইসের (মেমরি, আই / ও, এলসিডি ইত্যাদি) বিভিন্ন ঠিকানার ব্যাপ্তি রয়েছে। কিছু ডিভাইস, যা সাধারণত কোনও সিস্টেমে একাধিকবার ব্যবহৃত হয় (যেমন PCF8574 I / O সম্প্রসারক), এক বা একাধিক ঠিকানা লাইন (PCF8574 এর জন্য AD0-2) ব্যবহার করুন যা কম বিট নির্দিষ্ট করতে উচ্চ বা নিম্নে আবদ্ধ হতে পারে ঠিকানা। এমপিইউ -6500 এর মতো একটি ঠিকানা লাইন (AD0) রয়েছে, সুতরাং এর মধ্যে দুটি একই সিস্টেমে ব্যবহার করা যেতে পারে।
আপনার এসপিআই বাসে একাধিক ডিভাইস থাকতে পারে তবে প্রতিটি ডিভাইসের অবশ্যই নিজস্ব চিপ-নির্বাচন (সিএস) লাইন থাকতে হবে। অতএব 4-তারের বর্ণনাটি কিছুটা মিসনোমার - এটি সত্যই তিনটি তারের ইন্টারফেস + ডিভাইস প্রতি একটি অতিরিক্ত তার। আমি আরডুইনো সিরিজের বোর্ডগুলির সাথে অভিজ্ঞ নই, তবে আমি বিশ্বাস করি এটি আরডুইনোতে এসপিআই ব্যবহার করা আরও বেশি অসুবিধা করবে, কারণ আপনার যদি প্রচুর চিপ নির্বাচন করা লাইনের প্রয়োজন হয় তবে এটি বিভিন্ন ieldালগুলি দ্বারা ব্যবহৃত সাধারণ পিনের কার্যবিবরণীর সাথে জটিল হয়ে উঠতে শুরু করবে select ।
আমি বিশ্বাস করি বেশিরভাগ আরডুইনো বোর্ডগুলি ৩ ভোল্টে চালিত হয়, যার সাথে আরও কয়েকটি নতুন ৩.৩ ভি চলছে। এমপিইউ -6500 3.3v এ চলে। যদি 5v সিপিইউতে আই 2 সি বাসের সর্বনিম্ন ইনপুট "হাই" ভোল্টেজটি 3 ভি বা নীচে হয়, আপনি এসসিএল এবং এসডিএ লাইনে 3.3v-তে কেবল 10 কে পুলআপ রেজিস্টার সরবরাহ করে স্তর রূপান্তর সমস্যাগুলি এড়াতে পারবেন, যেহেতু বাসটি খোলা রয়েছে- সংগ্রাহক। সিপিইউতে যে কোনও 5v অভ্যন্তরীণ পুলআপ অক্ষম রয়েছে তা নিশ্চিত করুন।
তবে আমি এটিএমগা 2560 (উদাহরণ হিসাবে ADK 5v আরডুইনো ব্যবহার করে) এর জন্য ডেটাসিটটি পরীক্ষা করে দেখেছি এবং এর সর্বনিম্ন ইনপুট 'হাই' ভোল্টেজটি 0.7 * ভিসি, বা 3.5v যা 3.3v এর চেয়ে বেশি। তাই আপনাকে কিছু ধরণের সক্রিয় স্তর প্রয়োজন রূপান্তর। টিআই পিসিএ 9306 , যার জন্য চিপের 5v এবং 3.3v উভয় পক্ষের পুলআপ প্রতিরোধকগুলির প্রয়োজন, একক পরিমাণে মাত্র 78 সেন্ট ents
তবে কেন কখনও আই 2 সি এর চেয়ে এসপিআই বেছে নেবেন? মূলত এসপিআই অনেক দ্রুত চালানো যেতে পারে - কিছু ক্ষেত্রে 10 মেগাহার্টজ পর্যন্ত। আই 2 সি সাধারণত 400 কেজি হার্টের মধ্যে সীমাবদ্ধ। তবে এটি এমপিইউ -6050 / 6000 অ্যাকসিলোমিটারের পক্ষে আসলেই সমস্যা নয়, যেহেতু এটি আই 2 সি এর জন্য 400 কেজি হার্জ এবং এসপিআইয়ের জন্য কেবল 1 মেগাহার্টজ-তেমন পার্থক্য নয়।
সাধারণভাবে, এসপিআই একটি দ্রুতগতির বাস - ঘড়ির ফ্রিকোয়েন্সি এক MHz এর পরিসরে হতে পারে। তবে এসপিআই-র দ্বি-দিকনির্দেশক যোগাযোগের জন্য কমপক্ষে 3 টি লাইন এবং বাসের প্রতিটি ডিভাইসের জন্য অতিরিক্ত দাস নির্বাচন করা দরকার।
আপনার কতগুলি ডিভাইস রয়েছে তা নির্বিশেষে আই 2 সি এর জন্য কেবল 2 টি লাইন প্রয়োজন (অবশ্যই সীমাবদ্ধতার মধ্যে)। গতিটি অবশ্য কেএইচজেডের পরিসরে (100-400kHz সাধারণত) is
বেশিরভাগ মাইক্রোকন্ট্রোলার আজকাল উভয় বাসের জন্য হার্ডওয়্যার সমর্থন করে, তাই উভয়ই একইভাবে ব্যবহার করা সহজ।
I2C is designed for on-board applications.
- দৃশ্যত আই 2 সি ডিভাইস প্রস্তুতকারক আপনার সাথে একমত নন। টিএমপি 100 নিন । পণ্য পৃষ্ঠাটি স্পষ্টভাবে বলে: টিএমপি 75 এর ক্ষেত্রেওThe TMP100 and TMP101 are ideal for extended temperature measurement in a variety of communication, computer, consumer, environmental, industrial, and instrumentation applications.
এটি সত্য
আইপি 2 সি এর চেয়ে এসপিআই চালানো যায় (কিছু এসপিআই ডিভাইস 60MHz এর ওপরে যায়; আমি জানি না "অফিসিয়াল" আই 2 সি স্পেক 1MHz এর বেশি ডিভাইসগুলিকে অনুমতি দেয় কিনা)। উভয়ই প্রোটোকল ব্যবহার করে একটি ক্রীতদাস ডিভাইস বাস্তবায়নের জন্য হার্ডওয়্যার সমর্থন প্রয়োজন, যখন উভয়ই "সফ্টওয়্যার বিট-ব্যাং" মাস্টারগুলির সহজ প্রয়োগের অনুমতি দেয়। অপেক্ষাকৃত ন্যূনতম হার্ডওয়্যার সহ, কেউ একটি আই 2 সি-কমপ্লায়েন্ট স্লেভ তৈরি করতে পারে যা হোস্টটি নির্বিচারে বাড়ীতে 500 হাত পর্যন্ত একযোগে অতিরিক্ত হাতের তারের প্রয়োজন ছাড়াই বাসটিকে উপেক্ষা করার সিদ্ধান্ত নিতে পারে তা সঠিকভাবে পরিচালনা করবে। নির্ভরযোগ্য এসপিআই অপারেশন, এমনকি হার্ডওয়্যার সমর্থন সহ , সাধারণত প্রয়োজন হয় যে একটি হয় হ্যান্ডশেক তারের যুক্ত করা, নাহলে হোস্টটি "ম্যানুয়ালি" দাসের সবচেয়ে খারাপ ক্ষেত্রে প্রতিক্রিয়া সময়ের সমান প্রতিটি বাইটের পরে একটি বিলম্ব যুক্ত করে।
আমার কাছে যদি আমার ড্রথার থাকে তবে কন্ট্রোলারের এসপিআই সমর্থনটিতে হ্যান্ডশেকিং এবং জাগ্রত করার ক্ষমতা সহ কন্ট্রোলারদের মধ্যে 8 টি বিট-স্বচ্ছ দ্বিপাক্ষিক ডেটা স্থানান্তর সরবরাহের জন্য কয়েকটি সাধারণ অতিরিক্ত তিনটি দিক রয়েছে (ক্লক এবং এমওএসআই [মাস্টার মাস্টার থেকে-আউট-স্লেভ-ইন] দাসের কাছ থেকে এমআইএসও [মাস্টার-ইন-স্লেভ-আউট]। তুলনা করে, "স্টক" এসপিআই বন্দরগুলির সাথে মাইক্রোকন্ট্রোলারগুলির মধ্যে দক্ষ এবং নির্ভরযোগ্য যোগাযোগের জন্য, যখন উভয় প্রসেসর স্বতঃস্ফূর্তভাবে নির্বিচারে দীর্ঘায়িত হতে পারে, তখন আরও অনেক তার ব্যবহার প্রয়োজন (চিপ-সিলেক্ট, ক্লক, এমআইএসও এবং এমওএসআই) শুরু করার জন্য দাসের কাছ থেকে একরকম স্বীকৃতি তারের সাথে, যদি দাসটি অবিচ্ছিন্নভাবে প্রেরণের জন্য ডেটা থাকা শুরু করতে পারে (উদাহরণস্বরূপ কারণ কেউ একটি বোতাম চাপিয়ে দিয়েছে), তবে একজনকে অবশ্যই "ওয়েকআপ" হিসাবে অন্য একটি ওয়্যার ব্যবহার করতে হবে
আই 2 সি আমার "উন্নত" এসপিআইয়ের সমস্ত ক্ষমতা সরবরাহ করে না, তবে এটি অন্তর্নির্মিত হ্যান্ডশেকিং দক্ষতার অফার করে যা এসপিআইয়ের অভাব রয়েছে এবং অনেকগুলি বাস্তবায়নে এটি পাশাপাশি জাগ্রত প্রদানের জন্যও বদ্ধমূল হতে পারে, এমনকি যদি মাস্টার একটি হয় সফটওয়্যার বিট-ব্যাং আন্ত-প্রসেসর যোগাযোগের জন্য, এসপিআই সরবরাহের চেয়ে উচ্চ গতির প্রয়োজন ছাড়া আর আমি অতিরিক্ত পিনের ব্যবহার গ্রহণযোগ্যতা ব্যতীত এসপিআই-এর চেয়ে আমি আই 2 সি-র সুপারিশ করব recommend আন্ত-প্রসেসর যোগাযোগের জন্য যেখানে কম পিন গণনা প্রয়োজন, ইউআরটিগুলির কাছে তাদের সুপারিশ করার মতো অনেক কিছুই রয়েছে।
এই প্রশ্নটি এখানে দুর্দান্ত উত্তরে পুঙ্খানুপুঙ্খভাবে অন্বেষণ করা হয়েছে, তবে আমি চিপ প্রস্তুতকারকের দৃষ্টিকোণ থেকে প্রস্তাব করতে পারে I 2 সি এর কাছে আরও একটি দৃষ্টিকোণ রয়েছে।
আই 2 সি এর বৈদ্যুতিন ইন্টারফেসটি একটি মুক্ত সংগ্রাহক । এখন শ্বাস ফেলা এবং এর প্রভাবগুলি সম্পর্কে চিন্তা করুন। I 2 C ব্যবহার করে , আমি একটি চিপ ডিজাইন করতে পারি যা বাসের অপারেটিং ভোল্টেজের কাছে সম্পূর্ণ অজ্ঞাত। আমাকে যা করতে সক্ষম হতে হবে তা হ'ল এসডিএ লাইনটি নীচে টানতে হবে যদি তা করতে আমার সন্তুষ্ট হয়, এবং এসসিএল এবং এসডিএর ভোল্টেজগুলি কিছু স্থল-রেফারেন্সযুক্ত থ্রেশহোল্ড ভোল্টেজের সাথে তুলনা করুন, যা আমি বেছে নিতে পারি। এবং যদি আমি সাধারণ উচ্চতর দিকের সুরক্ষা কাঠামো ছেড়ে চলে যাই এবং তাদের অন্যান্য কাঠামোগুলির সাথে প্রতিস্থাপন করি তবে আমি একটি চিপ তৈরি করতে পারি যা পুরোপুরি তার নিজস্ব জীবন বাঁচতে পারে বাকী সিস্টেমের থেকে নির্ভর করে - এসসিএল, এসডিএ কখনই আমার চিপকে কোনও প্রবাহ সরবরাহ করে না এবং আমি অবশ্যই এই পিনগুলিতে কোনও বর্তমান খাওয়াবে না। এই কারণেই এটি রিয়েল-টাইম ঘড়ি এবং এর মতো অন্যান্য লো পাওয়ার শক্তির জন্য এত সুন্দর বাস।
অন্যান্য উত্তরে আমি উল্লেখ করে দেখিনি যে, আই 2 সি একই বাসে একাধিক মাস্টারকে সমর্থন করে। আপনার যদি দ্বি নির্দেশমূলক যোগাযোগের প্রয়োজন হয় এবং কোনও পোলিং-ভিত্তিক পদ্ধতি ব্যবহার করতে না চান, I2C কাজটি সম্পন্ন করবে।
দীর্ঘ দূরত্বে, ক্যানের একই ক্ষমতা এবং আরও শক্তিশালী। তবে ক্যান হ'ল একটি অ্যাসিনক্রোনাস প্রোটোকল যার জন্য হার্ডওয়্যার সমর্থন এবং একটি ট্রানসিভার প্রয়োজন, তাই এটি স্বল্প ব্যয় ব্যবস্থায় কোনও বিকল্প নাও হতে পারে।
এসপিআই প্রোটোকলটি ব্যবহার করুন এবং সিঙ্ক ক্লকটি যখনই বাড়ছে তখন সরাসরি আপনার বিটগুলি ডিভাইসে লিখুন। Xnor লজিক সার্কিটটি একটি মেমরি থেকে "হোমমেড" ঠিকানাটির সাথে ম্যাচ করার জন্য ব্যবহৃত ডিভাইসটি পছন্দ করতে চাইলে এটি আই 2 সি ডিভাইস হিসাবে ব্যবহার করা যেতে পারে।
আই 2 সি ডিভাইসের বিন্যাসের অভ্যন্তরে প্রামাণিক সার্কিটকে একীভূত করছে, মান ... ইত্যাদি জটিল এবং ভিন্ন, একটি এসপি দিয়ে আপনি স্ক্রিনে একটি ভিডিও প্রদর্শন করতে একটি স্পি মেমরি ব্যবহার করতে পারেন, তবে i2c নয়।