এসপিআই বা আই 2 সি বিবেচনা করার সময় ট্রেড অফস?


116

এসপিআই বা আই 2 সি ইন্টারফেসটি ব্যবহার করার সিদ্ধান্ত নেওয়ার সময় আমার কোন ট্রেড অফগুলি বিবেচনা করা উচিত?

এই অ্যাক্সিলোমিটার / গাইরো ব্রেকআউট বোর্ড দুটি মডেলের মধ্যে উপলব্ধ, প্রতিটি ইন্টারফেসের জন্য একটি। আরডিনো প্রকল্পে একত্রিত করা কি সহজ হবে?

http://www.sparkfun.com/products/11028

এখানে চিত্র বর্ণনা লিখুন


13
আই 2 সি এবং এসপিআই তাদের স্ট্রিংহ্টস রয়েছে। আই 2 সি সেটআপ করার জন্য আরও জটিল, একবার স্থিতিশীল হলে আপনি এত সহজে প্রসারিত করতে পারেন (যতক্ষণ না আপনার বাসের তারেরিং বেশি দীর্ঘ বা বড় না হয়)। এসপিআই সেট আপ করা সহজ .. আপনি প্রয়োজনে খুব সহজেই এটি বিটবাং করতে পারেন। বিস্তৃতি সমস্ত চিপ নির্বাচনের সাথে I / O খায়। যদি আমার কাছে আই / ও ও সংযোগকারী স্থানের বিলাসিতা থাকে এবং বাসগুলির প্রয়োজন না হয় তবে আমি সবসময় এসপিআইয়ের সাথে যেতে পারি।
হ্যান্স

আই 2 সি আরও জটিল কীভাবে? আমি উভয় বাসকে বিভিন্ন মাইক্রোতে ব্যবহার করেছি (ছোট পিআইসি এবং শালীন আকারের এআরএম) এবং প্রতিটি ক্ষেত্রে আই 2 সি সেটআপ সহজ ছিল (যেমন লিখতে কম রেজিস্টার)। যদি কিছু হয় তবে ক্লক ক্লিয়ারিটি এবং ডেটা স্যাম্পলিং বিকল্পগুলির কারণে এসপিআই আরও জটিল।
আরমান্ডাস

6
@ আরমান্ডাস - উপায় নেই! এসপিআইয়ের ঘড়ি / ডেটা পোলারিটির পক্ষে 4 টি সম্ভাব্য মোড রয়েছে এবং এর মধ্যে দুটি আধিপত্য রয়েছে - প্রায় সমস্ত এসপিআই ডিভাইস একটি ঘড়ির পতন প্রান্তে তাদের এমআইএসও আউটপুট আপডেট করে এবং একটি ঘড়ির উত্থিত প্রান্তে তাদের এমওএসআই ইনপুটটি পড়ে। আপনি ডেটা শিটটি দেখে কয়েক মিনিটের মধ্যে কোনটি বের করতে পারেন এবং তারপরে আপনার কাজ শেষ। আপনি যদি ভুল করে ভুল মোডটি বাছাই করেন, একবার অ্যাসিলোস্কোপের চিহ্নগুলি একবার দেখে আপনি এটি দ্রুত বের করতে পারবেন। এসপিআই ডেটা ত্রুটিগুলি বিরল এবং আই 2 সি যেভাবে আপনাকে অদ্ভুত অবস্থায় আটকে রাখবে না।
জেসন এস

6
আমি বলি আই 2 সি আরও জটিল, কারণ আমাকে একবার একটি এআরএম প্রসেসরে আই 2 সি ড্রাইভার লিখতে হয়েছিল। আমি এনএক্সপি নথিগুলির স্টেট মেশিনটি অনুসরণ করেছি এবং এটি প্রায় 20 টি রাজ্য দীর্ঘ। শেষ বাইটটি যখন পড়ে / লিখিত হয় ইত্যাদি স্বীকৃতিটি বের করতে আমার একটি শালীন সময় লেগেছে। এসপিআইয়ের সাথে আমার এই সমস্যাগুলির কোনওটিই কখনই ছিল না, কেবল ঘড়ি এবং ডেটা সারিবদ্ধভাবে রাখতে হবে।
হান্স

1
@JonL, ভাল উন্মুক্তভাবে, আমি শুধুমাত্র এক এ পর্যন্ত একটি সম্পূর্ণ উত্তর প্রদান করে থাকি, যেহেতু আমি বিশেষ ব্রেকআউট বোর্ড ওপি ব্যবহার করতে চায় ইস্যু নিয়ে আলোচনা করার জন্য, এবং নির্দেশ শুধুমাত্র একজন যে এটা না পাওয়া উভয় SPI এবং i2c, কিন্তু শুধুমাত্র i2c - তাই তিনি করেছেন তিনি এই বিশেষ বোর্ড ব্যবহার করতে চায় কিনা i2c ব্যবহার করতে। অন্যরা কেবল কোন ইন্টারফেসের (এসপিআই বা আই 2 সি) ইন্টারফেস করা সহজ, যা আমিও কভার করেছিলাম তা নিয়ে কাজ করেছে।
tcrosley

উত্তর:


97

সারাংশ

  • এসপিআই দ্রুততর।
  • আপনার মাইক্রোকন্ট্রোলারের আই 2 সি নিয়ামক না থাকলে আই 2 সি আরও জটিল এবং এটি ব্যবহার করা সহজ নয়।
  • আই 2 সি এর জন্য কেবল 2 লাইন দরকার।

আই 2 সি একটি বাস সিস্টেম যা এসডিএ লাইনে দ্বি নির্দেশমূলক ডেটা রয়েছে। এসপিআই হ'ল ডেটা এবং পৃথক লাইনে (এমওএসআই এবং এমআইএসও) থাকা ডেটার সাথে পয়েন্ট-টু-পয়েন্ট সংযোগ।

মূলত এসপিআইতে একজোড়া শিফট রেজিস্টার থাকে, যেখানে আপনি অন্যের থেকে ডেটা ক্লক করার সময় এক শিফট রেজিস্টারে ডেটা ক্লক করেন। সাধারণত প্রতিটি বারের মতো 8 টি ঘড়ির ডাল রেখে তথ্য বাইটে লেখা হয়, তবে এটি কোনও এসপিআইর প্রয়োজনীয়তা নয়। আপনি যদি চান তবে আপনার শব্দের দৈর্ঘ্য 16 বিট বা 13 বিটও থাকতে পারে। আইপি 2-তে সিঙ্ক্রোনাইজেশন এসপিআইতে প্রারম্ভিক ক্রম দ্বারা সম্পন্ন হয় এটি এসএস উচ্চতর দ্বারা সম্পন্ন হয় (এসএস সক্রিয় নিম্ন)। আপনি নিজেই সিদ্ধান্ত নিন এটি কতটা ঘড়ির ডাল। আপনি যদি 13 বিট শব্দ ব্যবহার করেন তবে এসএস 13 ঘড়ির ডালের পরে বিটগুলিতে শেষ ক্লকটি ল্যাচ করবে।
দ্বি নির্দেশমূলক ডেটা দুটি পৃথক লাইনে থাকায় ইন্টারফেস করা সহজ।

স্ট্যান্ডার্ড মোডে এসপিআইয়ের কমপক্ষে চারটি লাইন দরকার: এসসিএলকে (সিরিয়াল ক্লক), এমওএসআই (মাস্টার আউট স্লেভ ইন), এমআইএসও (মাস্টার ইন স্লেভ আউট) এবং এসএস (স্লেভ সিলেক্ট)। দ্বিপক্ষীয় মোডে কমপক্ষে তিনটি লাইন প্রয়োজন: এসিএলকে (সিরিয়াল ক্লক), মিমো (মাস্টার ইন মাস্টার আউট) যা মসি বা এমআইএসও লাইনগুলির মধ্যে একটি এবং এসএস (স্লেভ নির্বাচন)। একাধিক ক্রীতদাস সহ সিস্টেমের আপনি, প্রতিটি বান্দার জন্যে এস এস লাইন প্রয়োজন, যাতে জন্য ক্রীতদাসদের আপনি মান মোডে লাইন এবং দ্বিমুখী মোডে লাইন। আপনি যদি এটি না চান তবে, স্ট্যান্ডার্ড মোডে আপনি পরবর্তী দফতরের MISO এর সাথে একটি দাসের MOSI সংকেতটি সংযুক্ত করে দাসগুলিকে ডেইজি-চেইন করতে পারেন। আপনার যোগাযোগের সমস্ত দাসের মাধ্যমে চক্র চালিয়ে যাওয়ার কারণে এটি যোগাযোগকে কমিয়ে দেবে।এন + 3 এন + 2NN+3N+2

টিক্রোসলে লেগেছে এসপিআই আই 2 সি এর চেয়ে অনেক বেশি ফ্রিকোয়েন্সিতে কাজ করতে পারে।

আই 2 সি কিছুটা জটিল। এটি একটি বাস যেহেতু আপনার ডিভাইসগুলিকে সম্বোধন করার একটি উপায় প্রয়োজন। আপনার যোগাযোগটি একটি অনন্য প্রারম্ভিক ক্রম দিয়ে শুরু হয়: ঘড়ি (এসসিএল) বেশি থাকাকালীন ডেটা লাইনটি (এসডিএ) কম টেনে নেওয়া হয়, যখন বাকী যোগাযোগের ডেটা কেবল তখনই ঘড়ির কম হয় পরিবর্তিত হওয়ার অনুমতি দেওয়া হয়। এই সূচনা ক্রম প্রতিটি যোগাযোগকে সিঙ্ক্রোনাইজ করে।
যেহেতু যোগাযোগের মধ্যে ঠিকানা অন্তর্ভুক্ত রয়েছে যেকোন সংখ্যক ডিভাইসের (127 অবধি) জন্য মাত্র দুটি লাইন প্রয়োজন।

সম্পাদনাটি
স্পষ্ট যে ডেটা লাইন দ্বিপাক্ষিক, তবে এটি লক্ষণীয় যে এটি ক্লক লাইনের ক্ষেত্রেও সত্য। দাসীরা বাসের গতি নিয়ন্ত্রণ করতে ঘড়িটি প্রসারিত করতে পারে । এটি স্তরের স্থানান্তর বা বাফারিংয়ের জন্য আই 2 সি কম সুবিধাজনক করে তোলে। (স্ট্যান্ডার্ড মোডে এসপিআই লাইনগুলি সমস্ত একমুখী হয়।)

প্রতিটি বাইট (ঠিকানা বা ডেটা) প্রেরণের পরে রিসিভারকে এসডিএতে একটি স্বীকৃতি নাড়ি রেখে রসিদটি স্বীকার করতে হয়। আপনার মাইক্রোকন্ট্রোলারের যদি আই 2 সি ইন্টারফেস থাকে তবে এটি স্বয়ংক্রিয়ভাবে যত্ন নেওয়া হবে। আপনি যদি এখনও তার মাইক্রোকন্ট্রোলার সমর্থন না করেন তবে আপনি এটি বিট-ব্যাং করতে পারেন তবে প্রতিটি স্বীকৃতি বা ডেটা পড়ার জন্য আপনাকে আউটপুট থেকে ইনপুট থেকে আই / ও পিনটি স্যুইচ করতে হবে, আপনি যদি পড়ার জন্য আই / ও পিন ব্যবহার না করেন এবং লেখার জন্য একটি।

400kHz স্ট্যান্ডার্ড আই 2 সি এসপিআইয়ের তুলনায় অনেক ধীর। এখানে হাই-স্পিড আই 2 সি ডিভাইস রয়েছে যা 1MHz এ কাজ করে, এখনও 20MHz এসপিআই এর চেয়ে অনেক ধীর।


7
আমি এখনও এমন কোনও মাইক্রোকন্ট্রোলারের সাথে সাক্ষাত করি নি যা আই 2 সি এর সমস্ত কোণার কেসগুলিকে পরিচালনা করে এমনভাবে সঠিক ত্রুটি সনাক্তকরণ এবং পুনরুদ্ধারকে এমনভাবে পরিচালনা করতে হবে যা কোনও আই 2 সি বিশেষজ্ঞ না হয়েই ব্যবহারযোগ্য। এসডিএ কম ধরা পড়লে মিসড-ক্লক কেস সামলানোর জন্য অস্থায়ীভাবে বিটবাংগিংয়ের জন্য আমি একটি "স্মার্ট" আই 2 সি পেরিফেরিয়াল থেকে পিছনে ফিরে যেতে হয়েছিল, যা সম্পূর্ণ ব্যথা। /
জেসন এস

(তবে +1 যেহেতু আমি আপনার বাকি উত্তরগুলির সাথে একমত)
জেসন এস

এমনকি প্রায় 3.4MHz এ কাজ করে I2C ডিভাইস রয়েছে তবে এগুলি ধীর ডিভাইসগুলির সাথে একত্রিত করা যায় কিনা তা সম্পর্কে আমি অনিশ্চিত (সমস্ত ডিভাইসগুলিতে বাসের ঠিকানা অনুসরণ করতে সক্ষম হওয়া প্রয়োজন)। আমি আরও বিশ্বাস করি যে ৩.৪ মেগাহার্টজ আই টু সি এর সময় সামান্য কিছুটা আলাদা।
হান্স

@ হ্যান্স - এইচএস আই 2 সি আরও সাধারণ 400 কেবিট ডিভাইসের সাথে নিচের দিকে সামঞ্জস্যপূর্ণ বলে মনে হচ্ছে । সত্যই, (পুরো গবেষণা ব্যতীত) আমি কখনও এমন কোনও মাইক্রোকন্ট্রোলার দেখিনি যা এইচএস সমর্থন করে (এখনও), তাই আমি এটি উল্লেখ করতে চাইনি।
স্টিভেনভ

@ স্টেভেন্ভ: কিছু কন্ট্রোলারের দ্বি-তারের বাস্তবায়নগুলি (যেমন সাইপ্রেস পিএসওসি) এর প্রয়োজন হয় যে এসসিকে কোনও অভ্যন্তরীণ ঘড়ির কমপক্ষে এক বা দুটি চক্রের জন্য এটি নীচে নামানোর আগে কম হওয়া উচিত, এবং খারাপভাবে এটি খারাপ হয়নি। আমি জানি না যে তারা কোনও সিস্টেম ক্লক পালস ছাড়াই আই 2 সি শুরু শর্তটি কেন সনাক্ত করতে এবং ঘড়ির সাহায্যে প্রসারিত করতে পারে না, তবে এই জাতীয় আচরণগুলির অর্থ এই যে যখন এই জাতীয় চিপটি কম সিস্টেমের ক্লক গতিতে চলতে থাকে তখন বাসে সমস্ত আই 2 সি লেনদেন অবশ্যই করতে হয় ধীরে ধীরে চালানো হবে)। এমনকি 400Khz অপারেশন 3MHz চলমান PSOC এর পক্ষে খুব দ্রুত।
সুপারক্যাট

39

(সম্পাদনা করুন: পরিষ্কার হওয়ার জন্য, নীচের অনেকগুলি উদ্বেগের সাথে 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 ব্যবহার করতে বাধ্য করে না এবং এসপিআই না করে এটি কেবল মূল্যবান নয়।


5
আইআইসির প্রতি আপনার ধর্মীয় অপছন্দের কোনও স্থান নেই। আইআইসি এবং এসপিআই উভয়ই তারা যা করেন তাতে ভাল এবং প্রত্যেকেরই নিজের জায়গা রয়েছে। আইআইসির কাছে আপনার বেশিরভাগ আপত্তি এটির অনুপযুক্ত ব্যবহার থেকে আসে। আইআইসিকে কেবলমাত্র বোর্ডের মতোই ভাবা উচিত, যদিও এটি বুদ্ধিমান সরবরাহ নিয়ন্ত্রণের জন্য বিদ্যুৎ সরবরাহ শিল্পে নিয়মিত ব্যবহৃত হয়। আপনি যদি নিজেকে আইআইসির বাফারগুলি চান বলে মনে করেন, তবে এটি একটি শক্তিশালী ইঙ্গিত যা IIC সঠিক সমাধান নয়। তবে আইআইসি একই বোর্ডে কম গতির ডিভাইসের জন্য খুব ভাল কাজ করে।
অলিন ল্যাথ্রপ

2
আই 2 সি এর লজিক স্তরের চৌম্বকগুলি ভিসির উপর নির্ভর করে তাই আপনি যদি একই সিস্টেমে 3V / 3.3V এবং 5V ডিভাইস ব্যবহার করেন তবে আপনাকে সত্যই সতর্ক হতে হবে । না, এটা ভুল। IIC লজিক থ্রেশহোল্ডগুলি স্থির ভোল্টেজগুলিতে রয়েছে। আপনি কেবলমাত্র 3.3 ভি
অলিন ল্যাথ্রপ

5
এটি আই 2 সি এর ধর্মীয় অপছন্দ নয়, এটি আই 2 সি এর ব্যবহারিক অপছন্দ। আপনি বোর্ড বোর্ডের সাথে এটি আরও সহজ হওয়া সম্পর্কে ঠিক বলেছেন; আমি এটি ব্যবহার করার সময় এটি ব্যবহার করব, তবে এটি সফ্টওয়্যার ব্যয় যুক্ত করে এবং অনেক বেশি হার্ডওয়্যার ইঞ্জিনিয়াররা আরও বেশি সফ্টওয়্যার মাথাব্যথার কারণযুক্ত ট্রেডঅফগুলি নিয়ে আলোচনা না করে কেবল একটি বোর্ডে একটি আই 2 সি ডিভাইস আটকে রাখে।
জেসন এস

3
আইআইসি বৈদ্যুতিকভাবে প্রয়োগ করা একটু সহজ এবং ফার্মওয়্যারটিতে সম্ভবত এসপিআই কিছুটা সহজ। উভয় ক্ষেত্রে উভয় ক্ষেত্রে বেশ সহজ এবং সরাসরি এগিয়ে।
অলিন ল্যাথ্রপ

2
@ অলিন - স্থির 1.5 ভিসার থ্রোহোল্ডটি অতীতে ব্যবহৃত হয়েছিল বলে মনে হয় তবে অনুমিত প্রান্তের সর্বশেষ সংস্করণ অনুসারে প্রকৃতপক্ষে 0.3 ভিসি এবং 0.7 ভিসি রয়েছে। অনুমানের এই উদ্ধৃতিটিতে উত্তরাধিকার ডিভাইসের জন্য 1.5 ভি উল্লেখ করা হয়েছে।
স্টিভেনভ

16

স্পার্কফুনে ডিভাইসের ব্রেকআউট বোর্ডটি কেবলমাত্র 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 মেগাহার্টজ-তেমন পার্থক্য নয়।


3
আই 2 সি এর চেয়ে এসপিআই বাছাই করার আরেকটি কারণ: সমস্ত লাইন একমুখী হয়, যা স্তর শিফটারের মতো জিনিসকে কিছুটা সহজ করে তোলে।
মার্জ্রেজগুলি

3
আই 2 সি এসপিআই এর চেয়ে সহজ ?! আই 2 সি সম্পর্কে সহজতম বিষয়টি হ'ল কানেক্টিভিটি যদি আপনি কেবল সবকিছু একসাথে হুক করতে পারেন। অন্যথায় সংকেত অখণ্ডতা আই 2 সি তে আরও শক্ত, এবং শক্ত সফ্টওয়্যার বাস্তবায়ন আই 2 সি-তে শক্ততর।
জেসন এস

2
@ জেসনস, আমি আই 2 সি ব্যবহার করে কয়েক ডজন এম্বেড থাকা সফ্টওয়্যার প্রকল্পগুলি সম্পন্ন করেছি এবং আপনি আপনার পোস্টে উল্লিখিত লক-আপ সমস্যাগুলির মধ্যে পড়েনি। আপনার খারাপ অভিজ্ঞতার কারণে আমি এটি পছন্দ করি না তা বুঝতে পারি। অডিও আউটপুট দেওয়ার জন্য আমি আইপিসি ড্যাক ব্যবহার করে বর্তমানে বাজারে একটি পণ্য আউট করছি, একই সাথে এসপিআই-র মাধ্যমে এসডি কার্ডের পরবর্তী ডেটা বাফারটি পড়ছি। দুর্দান্ত কাজ করে। আমি বাস কনটেন্টেশন পাচ্ছিলাম এবং অডিওটি ব্রেক আপ হওয়ায় আমি ড্যাক এবং এসডি কার্ড উভয়ের জন্য এসপিআই ব্যবহার করতে পারিনি। মাইক্রোতে (একটি নিম্ন প্রান্তযুক্ত) কেবল একটি এসপিআই এবং একটি আই 2 সি পোর্ট রয়েছে।
tcrosley

1
আমি মুগ্ধ হয়েছি আপনি একটি আই 2 সি ড্যাক থেকে অডিও আউটপুট করতে পারেন! (সর্বাধিক ঘড়ির হার কী?) আপনি যদি স্বল্প রান নিয়ে জাহাজে আইসি ব্যবহার করেন তবে লকআপে দৌড়ানোর সম্ভাবনা অত্যন্ত ছোট, তবে এটি এখনও বিদ্যমান। (এছাড়াও আপনি যদি কেবল আই 2 সি তে ডেটা লিখেন তবে আপনি কখনই এটি চালাতে পারবেন না It এটির জন্য আপনাকে এমন কোনও ডিভাইস পড়তে হবে যা এটি অনুপস্থিত / অতিরিক্ত ঘড়ি মনে করে যা চিরকাল অপেক্ষা করতে ইচ্ছুক))
জেসন এস

1
@ জেসনস, অডিওটি কেবল ভয়েস মানের, 8KHz - আমি প্রতিটি 16-বিট নমুনা আউটপুট দিতে একটি 128 আমাদের বাধা ব্যবহার করছি। আই 2 সিও তার নিজস্ব বাধায় চলে। অতিরিক্ত সময় এসডি কার্ডের ডেটা বন্ধ পড়তে ব্যবহৃত হয়। লকআপ সম্পর্কে ভাল বক্তব্য লেখার ক্ষেত্রে কখনই ঘটে না। এডিসি ব্যতীত আমি সাধারণত আউটপুট ডিভাইসের জন্য আই 2 সি ব্যবহার করি। তবে - আপনি কি Wii রিমোট এবং Wii নুনচকের মধ্যে (যা 3 'কেবলের বেশি) 400 KHz এ আই 2 সি এর মধ্যে কেবল পঠন ইন্টারফেস (2 বোতাম, অ্যাকসিলোমিটার এবং জৌস্টিক) জানেন? ওয়েবে প্রচুর তথ্য এই ডিভাইসটির ইন্টারফেসটিকে হ্যাক করছে।
tcrosley

15

সাধারণভাবে, এসপিআই একটি দ্রুতগতির বাস - ঘড়ির ফ্রিকোয়েন্সি এক MHz এর পরিসরে হতে পারে। তবে এসপিআই-র দ্বি-দিকনির্দেশক যোগাযোগের জন্য কমপক্ষে 3 টি লাইন এবং বাসের প্রতিটি ডিভাইসের জন্য অতিরিক্ত দাস নির্বাচন করা দরকার।

আপনার কতগুলি ডিভাইস রয়েছে তা নির্বিশেষে আই 2 সি এর জন্য কেবল 2 টি লাইন প্রয়োজন (অবশ্যই সীমাবদ্ধতার মধ্যে)। গতিটি অবশ্য কেএইচজেডের পরিসরে (100-400kHz সাধারণত) is

বেশিরভাগ মাইক্রোকন্ট্রোলার আজকাল উভয় বাসের জন্য হার্ডওয়্যার সমর্থন করে, তাই উভয়ই একইভাবে ব্যবহার করা সহজ।


4
@ জেসন: আইআইসির বিরুদ্ধে আপনার কিছু কুসংস্কার রয়েছে বলে মনে হয় তবে অন্য ব্যক্তিকে এর কারণ হিসাবে ডাইং করা অন্যায্য। আইআইসি এবং এসপিআই উভয়ই "সহজ", যার যার নিজস্ব চুলকানি রয়েছে। এসপিআইয়ের অতিরিক্ত লাইন দরকার, যা সহজ হতে পারে না। আইআইসি কিছুটা জটিল, তবে সমস্ত ফার্মওয়্যার বাস্তবায়ন করা এখনও সহজ, যা আমি অনেক সময় করেছি। এটি এত বেশি কোড নেয় না। উভয়েরই নিজের জায়গা রয়েছে এবং উভয়ের পক্ষে এটি যথেষ্ট সহজ যে কারওর পক্ষে কোনও কারণ নেই যা তারা জানে যে তারা কী করছে।
অলিন ল্যাথ্রপ

5
@ জেসন: আমি সবেমাত্র যাচাই করেছি এবং 8 বিট পিআইসিসিতে আইআইসির ফার্মওয়্যার বাস্তবায়নের জন্য আমার জেনেরিক আইআইসি কোডটি কেবল 311 লাইন, এবং সম্ভবত এর অর্ধেকেরও বেশি মন্তব্য রয়েছে। এটি আপনাকে আইআইসি বাসে রুটিন পর্যায়ে শুরু, রাখা, পাওয়া, থামানো ইত্যাদির জন্য একটি প্রক্রিয়াগত ইন্টারফেস দেয় বড় চুক্তি। একটি সাধারণ EEPROM ড্রাইভ করার মডিউলটি ২ 27২ লাইন, আবার সম্ভবত ১/২ টি মন্তব্য এবং এর মধ্যে কিছু উচ্চ স্তরের ব্যবস্থাপনা যেমন ডিফল্ট ডেটা, ইউআরটি ডিবাগ ইন্টারফেস ইত্যাদি অন্তর্ভুক্ত রয়েছে এটি এতটা তুচ্ছ যে এটি 10 ​​টি নির্দেশাবলী কম নেয় কিনা তা বিতর্ক করে argu এসপিআই চেয়ে অর্থহীন।
অলিন ল্যাথ্রপ

2
@ অ্যান্ড্রু কোহলস্মিথ - 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. এটি সত্য
কনার ওল্ফ

5
@ ফেকনাম আপনি ভুল; আমি 13 বছর শিল্প বিদ্যুত ইলেকট্রনিক্স করে কাটিয়েছি। (LARGE তিন ফেজ মিটারগুলি শুরু করা এবং এটি নিরীক্ষণ করা একটি খুব গোলমাল পরিবেশ) এটি এসপিআই আরও নির্ভরযোগ্য হওয়ার কথা নয়, এটি সমস্ত ব্যর্থতা মোডের জন্য পরিকল্পনা করা এবং তার সাথে জড়িত সিস্টেমটি ডিজাইন করা এবং যেখানে প্রয়োজন সেখানে সিস্টেমে পুনরুদ্ধারের বিকল্পগুলি তৈরি করার বিষয়ে। আমি কখনই, আমার আই 2 সি (বা সেই বিষয়টির জন্য এসপিআই) কম শব্দ করতে পারি নি, তবে আমার জন্য সবকিছু করার জন্য আমি কখনও একচেটিয়াভাবে আই 2 সি নিয়ন্ত্রকের উপর নির্ভর করি না। এটি পরিকল্পনা এবং ডিজাইনের বিষয়, একটি বাসের চেয়ে ভাল হওয়ার নয়।
akohlsmith

2
@akohlsmith: সিঙ্গেল-মাস্টার সিঙ্গল-স্লেভ আই 2 সি একটি "বিট-ব্যাং" মাস্টারের সাথে দৃ .় হওয়া উচিত। যদি একাধিক ক্রীতদাস থাকে এবং দুজন একই সাথে "বিভ্রান্ত" হয়ে বিভিন্ন উপায়ে আসে তবে বাসটি অপরিবর্তিতভাবে লক হয়ে যেতে পারে (উদাহরণস্বরূপ যদি দুটি বা আরও বেশি মেমরি চিপগুলি শূন্যে ভরা থাকে তবে উভয়ই মনে করেন যে মাস্টার সেগুলি পড়ার চেষ্টা করছেন, তবে তাদের বিট কাউন্টারগুলি সিঙ্কের বাইরে চলে গেছে, তারপরে প্রত্যেকটি কেবল তখনই এসডিএ প্রকাশ করবে যখন অন্যটি দৃ as়তার সাথে বলছে, এবং মাস্টার যা কিছু করতে পারে তা বাস ছাড়বে না যতক্ষণ না এটি সমস্ত দাসকে
ছাড়িয়ে

12

আইপি 2 সি এর চেয়ে এসপিআই চালানো যায় (কিছু এসপিআই ডিভাইস 60MHz এর ওপরে যায়; আমি জানি না "অফিসিয়াল" আই 2 সি স্পেক 1MHz এর বেশি ডিভাইসগুলিকে অনুমতি দেয় কিনা)। উভয়ই প্রোটোকল ব্যবহার করে একটি ক্রীতদাস ডিভাইস বাস্তবায়নের জন্য হার্ডওয়্যার সমর্থন প্রয়োজন, যখন উভয়ই "সফ্টওয়্যার বিট-ব্যাং" মাস্টারগুলির সহজ প্রয়োগের অনুমতি দেয়। অপেক্ষাকৃত ন্যূনতম হার্ডওয়্যার সহ, কেউ একটি আই 2 সি-কমপ্লায়েন্ট স্লেভ তৈরি করতে পারে যা হোস্টটি নির্বিচারে বাড়ীতে 500 হাত পর্যন্ত একযোগে অতিরিক্ত হাতের তারের প্রয়োজন ছাড়াই বাসটিকে উপেক্ষা করার সিদ্ধান্ত নিতে পারে তা সঠিকভাবে পরিচালনা করবে। নির্ভরযোগ্য এসপিআই অপারেশন, এমনকি হার্ডওয়্যার সমর্থন সহ , সাধারণত প্রয়োজন হয় যে একটি হয় হ্যান্ডশেক তারের যুক্ত করা, নাহলে হোস্টটি "ম্যানুয়ালি" দাসের সবচেয়ে খারাপ ক্ষেত্রে প্রতিক্রিয়া সময়ের সমান প্রতিটি বাইটের পরে একটি বিলম্ব যুক্ত করে।

আমার কাছে যদি আমার ড্রথার থাকে তবে কন্ট্রোলারের এসপিআই সমর্থনটিতে হ্যান্ডশেকিং এবং জাগ্রত করার ক্ষমতা সহ কন্ট্রোলারদের মধ্যে 8 টি বিট-স্বচ্ছ দ্বিপাক্ষিক ডেটা স্থানান্তর সরবরাহের জন্য কয়েকটি সাধারণ অতিরিক্ত তিনটি দিক রয়েছে (ক্লক এবং এমওএসআই [মাস্টার মাস্টার থেকে-আউট-স্লেভ-ইন] দাসের কাছ থেকে এমআইএসও [মাস্টার-ইন-স্লেভ-আউট]। তুলনা করে, "স্টক" এসপিআই বন্দরগুলির সাথে মাইক্রোকন্ট্রোলারগুলির মধ্যে দক্ষ এবং নির্ভরযোগ্য যোগাযোগের জন্য, যখন উভয় প্রসেসর স্বতঃস্ফূর্তভাবে নির্বিচারে দীর্ঘায়িত হতে পারে, তখন আরও অনেক তার ব্যবহার প্রয়োজন (চিপ-সিলেক্ট, ক্লক, এমআইএসও এবং এমওএসআই) শুরু করার জন্য দাসের কাছ থেকে একরকম স্বীকৃতি তারের সাথে, যদি দাসটি অবিচ্ছিন্নভাবে প্রেরণের জন্য ডেটা থাকা শুরু করতে পারে (উদাহরণস্বরূপ কারণ কেউ একটি বোতাম চাপিয়ে দিয়েছে), তবে একজনকে অবশ্যই "ওয়েকআপ" হিসাবে অন্য একটি ওয়্যার ব্যবহার করতে হবে

আই 2 সি আমার "উন্নত" এসপিআইয়ের সমস্ত ক্ষমতা সরবরাহ করে না, তবে এটি অন্তর্নির্মিত হ্যান্ডশেকিং দক্ষতার অফার করে যা এসপিআইয়ের অভাব রয়েছে এবং অনেকগুলি বাস্তবায়নে এটি পাশাপাশি জাগ্রত প্রদানের জন্যও বদ্ধমূল হতে পারে, এমনকি যদি মাস্টার একটি হয় সফটওয়্যার বিট-ব্যাং আন্ত-প্রসেসর যোগাযোগের জন্য, এসপিআই সরবরাহের চেয়ে উচ্চ গতির প্রয়োজন ছাড়া আর আমি অতিরিক্ত পিনের ব্যবহার গ্রহণযোগ্যতা ব্যতীত এসপিআই-এর চেয়ে আমি আই 2 সি-র সুপারিশ করব recommend আন্ত-প্রসেসর যোগাযোগের জন্য যেখানে কম পিন গণনা প্রয়োজন, ইউআরটিগুলির কাছে তাদের সুপারিশ করার মতো অনেক কিছুই রয়েছে।


I2C এর একটি হাই-স্পিড সংস্করণ রয়েছে যা 1MHz অনুমতি দেয়; সাধারণ আই 2 সি 400kHz।
প্রতিরোধ

@ প্রতিরক্ষা: আমি জানি যে সাধারণ আই 2 সি ছিল 400kHz, তবে সংস্করণগুলি 1MHz পর্যন্ত নির্দিষ্ট করা হয়েছিল। আমি যা জানি না তা হ'ল দ্রুততম সংস্করণ নির্দিষ্ট করা হয়েছে কিনা।
সুপারক্যাট

স্পেসিফিকেশন অনুসারে 400 কেবিপিএস (কেএইচজেড নয়, আমি সেখানে ভুল ইউনিট ব্যবহার করেছি) হ'ল ফাস্ট-মোড, 1 এমবিপিএস হ'ল ফাস্ট-মোড প্লাস এবং 3.4 এমবিপিএস পর্যন্ত হাই-স্পিড মোড রয়েছে। আল্ট্রা-ফাস্ট 5 এমবিপিএসে যায়, তবে একমুখী হয়।
প্রতিরোধ

@ প্রতিরোধ: ধন্যবাদ আমি পরবর্তী সংস্করণগুলি শুনিনি। 'একমুখী' বলতে কী বোঝ? আমি জানি যে এসপিআই স্লেভ-টু-মাস্টার যোগাযোগের গতি মাস্টার-টু-ক্রীতদাসের চেয়ে দ্রুত গতিতে যেতে পারে কারণ স্লেভ মাস্টারটির পরে তার ঘড়ি পাওয়ার গ্যারান্টিযুক্ত তবে আমি আই 2 সি এর জন্য সমতুল্য ধারণা সম্পর্কে নিশ্চিত নই। একটি লিঙ্কি আছে?
সুপারক্যাট

এখানে অনুমান খুঁজুন । পৃষ্ঠা 23 এ বলা হয়েছে যে আল্ট্রা-ফাস্ট এমন ডিভাইসগুলির জন্য ব্যবহার করা যেতে পারে যা ডেটা ফেরত পাঠায় না (কেবল লিখুন), এমনকি এসিও নয়।
প্রতিরোধ

8

এই প্রশ্নটি এখানে দুর্দান্ত উত্তরে পুঙ্খানুপুঙ্খভাবে অন্বেষণ করা হয়েছে, তবে আমি চিপ প্রস্তুতকারকের দৃষ্টিকোণ থেকে প্রস্তাব করতে পারে I 2 সি এর কাছে আরও একটি দৃষ্টিকোণ রয়েছে।

আই 2 সি এর বৈদ্যুতিন ইন্টারফেসটি একটি মুক্ত সংগ্রাহক । এখন শ্বাস ফেলা এবং এর প্রভাবগুলি সম্পর্কে চিন্তা করুন। I 2 C ব্যবহার করে , আমি একটি চিপ ডিজাইন করতে পারি যা বাসের অপারেটিং ভোল্টেজের কাছে সম্পূর্ণ অজ্ঞাত। আমাকে যা করতে সক্ষম হতে হবে তা হ'ল এসডিএ লাইনটি নীচে টানতে হবে যদি তা করতে আমার সন্তুষ্ট হয়, এবং এসসিএল এবং এসডিএর ভোল্টেজগুলি কিছু স্থল-রেফারেন্সযুক্ত থ্রেশহোল্ড ভোল্টেজের সাথে তুলনা করুন, যা আমি বেছে নিতে পারি। এবং যদি আমি সাধারণ উচ্চতর দিকের সুরক্ষা কাঠামো ছেড়ে চলে যাই এবং তাদের অন্যান্য কাঠামোগুলির সাথে প্রতিস্থাপন করি তবে আমি একটি চিপ তৈরি করতে পারি যা পুরোপুরি তার নিজস্ব জীবন বাঁচতে পারে বাকী সিস্টেমের থেকে নির্ভর করে - এসসিএল, এসডিএ কখনই আমার চিপকে কোনও প্রবাহ সরবরাহ করে না এবং আমি অবশ্যই এই পিনগুলিতে কোনও বর্তমান খাওয়াবে না। এই কারণেই এটি রিয়েল-টাইম ঘড়ি এবং এর মতো অন্যান্য লো পাওয়ার শক্তির জন্য এত সুন্দর বাস।


4

অন্যান্য উত্তরে আমি উল্লেখ করে দেখিনি যে, আই 2 সি একই বাসে একাধিক মাস্টারকে সমর্থন করে। আপনার যদি দ্বি নির্দেশমূলক যোগাযোগের প্রয়োজন হয় এবং কোনও পোলিং-ভিত্তিক পদ্ধতি ব্যবহার করতে না চান, I2C কাজটি সম্পন্ন করবে।

দীর্ঘ দূরত্বে, ক্যানের একই ক্ষমতা এবং আরও শক্তিশালী। তবে ক্যান হ'ল একটি অ্যাসিনক্রোনাস প্রোটোকল যার জন্য হার্ডওয়্যার সমর্থন এবং একটি ট্রানসিভার প্রয়োজন, তাই এটি স্বল্প ব্যয় ব্যবস্থায় কোনও বিকল্প নাও হতে পারে।


ভাল পয়েন্ট (মাল্টি মাস্টার উপর), আমি বাধা পিন সহ এসপিআই ডিভাইসগুলিও দেখেছি, যখন একটি ডিভাইস এখনও মাস্টার, উভয়ই (দ্বি-দিকনির্দেশক) যোগাযোগ ইনস্ট্যান্ট করতে পারে। সেখানে দূরবর্তী ডিভাইসের জন্য অবশ্যই আরও শক্ত এবং ভাল বিকল্প রয়েছে (যেমন CAN)।
পল

0

এসপিআই প্রোটোকলটি ব্যবহার করুন এবং সিঙ্ক ক্লকটি যখনই বাড়ছে তখন সরাসরি আপনার বিটগুলি ডিভাইসে লিখুন। Xnor লজিক সার্কিটটি একটি মেমরি থেকে "হোমমেড" ঠিকানাটির সাথে ম্যাচ করার জন্য ব্যবহৃত ডিভাইসটি পছন্দ করতে চাইলে এটি আই 2 সি ডিভাইস হিসাবে ব্যবহার করা যেতে পারে।

আই 2 সি ডিভাইসের বিন্যাসের অভ্যন্তরে প্রামাণিক সার্কিটকে একীভূত করছে, মান ... ইত্যাদি জটিল এবং ভিন্ন, একটি এসপি দিয়ে আপনি স্ক্রিনে একটি ভিডিও প্রদর্শন করতে একটি স্পি মেমরি ব্যবহার করতে পারেন, তবে i2c নয়।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.