क्या कोई निश्चित I2C पिन-आउट मार्गदर्शन है? "मानक" की तलाश में नहीं


16

संपादित करें: यह कई बार दोहराया गया है, इसलिए इसे शीर्ष पर रखा जाता है: हाँ, यह सर्वविदित है कि I2C अंतर-डिवाइस कनेक्टर के लिए कोई "मानक" नहीं है, लेकिन निश्चित रूप से यह समुदाय "मार्गदर्शन" बनाने के लिए बिंदुओं की एक सूची तैयार कर सकता है इस तरह के इंटरकनेक्ट्स, गलत व्यवहार के कारण सिग्नल व्यवहार, शोर कम से कम और जोखिम के शमन पर आधारित हैं।


NXP ने I2C कनेक्टर्स के लिए पिन-आउट निर्दिष्ट किए बिना I2C मानक को परिभाषित किया , मेरी समझ है। NXP का एकमात्र मार्गदर्शन SDA और SCL के बीच ग्राउंड और / या Vss रखने का उल्लेख प्रतीत होता है यदि Vss / Gnd को इंटरकनेक्ट के पार ले जाया जाता है।

विभिन्न I2C मॉड्यूल की खरीद ने मुझे I2C पिन-आउट की एक किस्म के साथ छोड़ दिया है, और उन छोटे रिबन-केबल-स्विचिंग शिम का ट्रैक रखने का एक काम है जो मुझे उनके लिए बनाना था।

जैसे

  • मोनो ओएलईडी मॉड्यूल: एससीएल, एसडीए, जीएनडी, 5 वी (स्पष्ट रूप से आदर्श नहीं है, क्योंकि घड़ी और डेटा एक दूसरे के बगल में हैं।
  • Arduino के लिए सेंसर शील्ड: एसडीए, एससीएल, जीएनडी, 5 वी (फिर से आदर्श नहीं, प्लस एससीएल / एसडीए स्विच किया गया)
  • रंग एलसीडी मॉड्यूल: एससीएल, जीएनडी, 5 वी, एसडीए (याय!)
  • नो-नेम I2C रिपीटर: एससीएल, 5 वी, जीएनडी, एसडीए (ऑउच, उन्होंने पावर पिंस स्विच किया! लगभग जादू के धुएं को बाहर निकलने दें।)

मेरे सवाल तो यह है :
वहाँ एक निश्चित / आधिकारिक है दिशानिर्देश उपयोग करने के लिए I2C 4-पिन कनेक्टर पिन-बाहर अनुक्रम, जहां दोनों Vss और GND डिवाइस के लिए मेजबान से ले जाने के लिए कर रहे हैं के लिए?

इसे विफल करते हुए, क्या कोई निर्देशिका है, हालांकि, I2C मॉड्यूल / उपकरणों की अपूर्ण है, जो प्रत्येक ने पिन-आउट को सूचीबद्ध किया है?

स्पष्टीकरण: इस तरह के रूप दिशा निर्देशों के लिए खोज रहे बल्कि एक परिभाषित मानक जो स्पष्ट रूप से करता है की तुलना में मौजूद नहीं है "क्योंकि ... SCL के करीब Vss डाल"।


3
इसलिए सवाल।
अनिन्डो घोष

1
आपके अपने प्रश्न से, यह देखने के लिए स्पष्ट है कि कोई मानक नहीं है ... और अगर वहाँ था, तो जाहिर है लोग इसका पालन नहीं कर रहे हैं। तुम शिम बना रहे हो। : पी
टोबी लॉरेंस 12

1
@ अनिन्दोघोष हेह। यदि यह मेरे होते, तो मैं शायद पहले से खरीदे गए मॉड्यूल को खोदता और अपने स्वयं के ब्रेकआउट बोर्डों को एक ध्रुवीकृत हेडर का उपयोग करके मानकीकृत पिनआउट के साथ रोल करता। शायद 6 पिन जैसे कुछ, एसडीए, एससीएल और 5 वी के बगल में जीएनडी के साथ ... और फिर कम शोर में मदद करने और हस्तक्षेप को अस्वीकार करने के लिए प्रत्येक सिग्नल के पास जमीन रखने के लिए तीन मुड़ जोड़े के साथ एक केबल का उपयोग करना।
टॉबी लॉरेंस

3
ऐसा लगता है कि कुछ लोग इस बात से नाराज हैं कि I2C Arduino उपयोगकर्ताओं के लिए बेचे जाने वाले कई मॉड्यूलों के लिए एक लोकप्रिय डिफ़ॉल्ट कनेक्शन विकल्प है। भले ही यह बाहरी बोर्ड कनेक्टर के लिए कभी भी डिज़ाइन नहीं किया गया हो, यह यहाँ है और यह बेचता है और मार्गदर्शन के लिए पूछ रहा है कि नए उपकरणों के लिए कनेक्टर को बेहतर बनाने के लिए हमारे लिए उपयोगी है न कि विशेषज्ञ और संभव है कि विशेषज्ञ इस तरह से न हों।
ExcitingProjects

1
@ExcitingProjects नहीं, वे जो कहते हैं, उसके बारे में सही हैं, I2C इसके लिए नहीं था, और स्पष्ट रूप से इंटरडाइसिस कनेक्शन में कई चुनौतियों का सामना करता है। यह सिर्फ ऐसा होता है कि मॉड्यूल डिजाइनरों ने I2C के साथ जाने के लिए चुना है। अगर मेरे पास कोई विकल्प होता तो भी मैं "नाराज" होता।
अनंदो घोष

जवाबों:


16

मैंने हाल ही में अपना खुद का रोल किया है जहाँ तक I2C कनेक्टर्स चलते हैं। कनेक्टर स्वयं बहुत महत्वपूर्ण नहीं है, अभी मैं केवल 100mil पिच हेडर का उपयोग कर रहा हूं (आमतौर पर बोर्ड पर महिला इसलिए जुड़ा नहीं होने पर यह इतना पोके नहीं है), लेकिन कोई भी 4plus पिन कनेक्टर करेगा। इसके अतिरिक्त, मैं का उपयोग कर रहा हूँ P82B715I2C बस एक्सटेंडर के रूप में TI से। यह लंबे समय तक चलने वाले I2C को बंद करने से जुड़े समाई मुद्दों को खत्म करता है, जिसे लोग कहते रहे हैं, I2C शुरू में इसका उद्देश्य नहीं था। मैंने कई अलग-अलग संयोजनों की कोशिश की, जैसे आपके द्वारा दिए गए उदाहरणों में और मैंने देखा कि प्रदर्शन में कोई अंतर नहीं है। मेरा मानना ​​है कि यह इसलिए है क्योंकि I2C अपेक्षाकृत धीमा है, एसडीए और एससीएल के बीच हस्तक्षेप एक मुद्दा नहीं है। मूल रूप से बस में उतार-चढ़ाव (जब हस्तक्षेप होगा) के लिए वृद्धि का समय थोड़ी लंबाई की तुलना में बहुत छोटा है। तो, यह वह नहीं हो सकता है जिसे आप सुनना चाहते हैं, लेकिन यह अधिक विकल्प देता है। व्यक्तिगत रूप से मैं [वीसीसी, एसडीए, जीएनडी, एससीएल] इस चिप से / आसानी से रूट किया जा सकता था और साथ ही पीछे की तरफ प्लग होने पर वीसीसी / जीएनडी मिक्स अप करने के लिए प्रतिरक्षा हो सकता था।


2
+1 + स्वीकार करें। धन्यवाद, शायद अब तक का सबसे व्यावहारिक जवाब है, "इंटरडाइसिस I2C मौजूद है, यहां बताया गया है कि मैं इसका उपयोग कैसे करता हूं और क्यों"। VCC / GND मिश्रण-अप परिहार उपयोगी है। बोर्ड पर पोके पिन हेडर से बचने पर अच्छा बिंदु, मैंने दुर्घटना से कुछ सेंसर मॉड्यूल से कुछ पिनों को काट दिया है।
अनिन्डो घोष

यह केवल उत्तर है जो वास्तव में मददगार है और अगर मेरे पास पर्याप्त प्रतिष्ठा है तो मैं इसके लिए @Samuel को एक बोनस दूंगा और मैं इस सवाल को पसंद करता हूं क्योंकि मेरे पास कई I2C मॉड्यूल हैं और इस गाइड के बाद किसी दिन I2C मॉड्यूल का निर्माण करेंगे।
ExcitingProjects

11

जब यह पहली बार स्थापित किया गया था, I2C (अंतर-एकीकृत सर्किट) बस एक ही पीसीबी असेंबली पर चिप्स को जोड़ने के लिए थी। यह कभी भी एक साथ कई बोर्डों को जोड़ने के लिए केबलों पर इस्तेमाल करने का इरादा नहीं था, और इसलिए, उस उद्देश्य के लिए कोई भी कनेक्टर परिभाषित नहीं किया गया था।

केवल "मानक" I2C- आधारित बाहरी इंटरफेस, जिनके बारे में मैं जानता हूं कि उपयोगकर्ता इंटरफ़ेस उपकरणों को कंप्यूटर से कनेक्ट करने के लिए अल्पकालिक ACCESS.bus हैं और वीजीए, डीवीआई और एचडीएमआई कनेक्टर्स पर निगरानी जानकारी प्राप्त करने के लिए वीईएसए डिस्प्ले डेटा चैनल का उपयोग किया जाता है।


मैं समझता हूं कि मूल उद्देश्य अलग था, लेकिन चूंकि I2C का उपयोग अब बहुत सारे केबल-कनेक्टेड मॉड्यूल के लिए किया जा रहा है, मुझे उम्मीद है कि किसी ने विभिन्न उत्पादों, विशेष रूप से कई उत्पादों के खानपान द्वारा उपयोग किए जाने वाले पिन-आउट के दस्तावेजीकरण के लिए एक सहयोगी डेटाबेस शुरू किया है। Arduino और अन्य माइक्रोकंट्रोलर बोर्ड बाजार।
अनंदो घोष

4

कोई मानक पिन-आउट नहीं, कोई मानक कनेक्टर नहीं। I2C मानक इस तरह की चीज़ के लिए वास्तविक रूप से उत्तरदायी नहीं है। यह बस के स्तर पर निर्दिष्ट है, न कि उपकरण स्तर पर। उदाहरण के लिए, जब आप I2C डिवाइस में प्लग करना चाहते हैं, तो क्या आप मानक द्वारा जानते हैं कि पुलअप मेजबान पर है या डिवाइस पर ?? नहीं, बहुत से अन्य सामान जिन्हें आप नहीं जानते, या तो, जैसे कि आपकी केबल कैपेसिटेंस कहाँ हैं, Vcc की क्या आवश्यकता है ...।

वास्तव में, यहां तक ​​कि I2C डिवाइस भी हैं जिन्हें इंटरप्ट और अन्य सादे पुराने डिजिटल I / O के लिए अतिरिक्त लाइनों की आवश्यकता होती है। आप उन्हें कैसे मानक में जोड़ते हैं, अगर आपको कितने पिनों पर समझौते की आवश्यकता नहीं है।

नीचे की रेखा, यदि आपकी इंटरकनेक्सेस में पोर्टेबिलिटी और स्थिरता की तलाश है, तो I2C और SPI वह नहीं हैं, जहाँ आपको देखने की आवश्यकता है।


3
क्या होगा अगर कोई अपने डिवाइस को बनाने के लिए एक दिशानिर्देश की तलाश कर रहा है, जो 'डुइनो' के लिए उन सभी अन्य मॉड्यूलों के साथ (और जैसे) काम करेगा? वहाँ एक बाजार है, एक बिंदु को नजरअंदाज न करें। संयोग के अनुसार, उपकरण पर होस्ट और वैकल्पिक में पुल-अप की आवश्यकता होती है।
अनिंदो घोष

5
मानकों के बारे में "अच्छी" बात यह है कि चुनने के लिए बहुत सारे हैं! आप एक अच्छी तरह से परिभाषित कनेक्टर के साथ एक मानक चुनते हैं, जैसे मिडी, यूएसबी, आरएस 232 (उस बेवकूफ नल मॉडेम चीजों से अलग), और अपने डिवाइस में एक अनुवादक का निर्माण करें। अन्य विकल्प IEEE जैसे मानकों org के माध्यम से एक मानक कार्यसमूह बना रहा है। डिवाइस पर "वैकल्पिक" पुलअप पूरे बस के व्यवहार को प्रभावित करता है, जिससे मेरी बात बिल्कुल ठीक हो जाती है। MIDI वैकल्पिक रूप से प्रत्येक डिवाइस को मानक से अलग करता है, इसलिए आज्ञाकारी उपकरण इन मुद्दों का कारण नहीं बनते हैं
स्कॉट सीडमैन

1
मानकों के बारे में अजीब बात है, लेकिन सच बिंदु के लिए +1! :-)
अनिंदो घोष

4

बहुत से लोग दो पीसीबी के बीच I ofC सिग्नल और पावर ले जाने के लिए किसी प्रकार के कनेक्टर का उपयोग करते हैं। उदाहरण के लिए,

लंबी दूरी पर I²C सिग्नल ले जाने के कुछ सामान्य सुझाव:

ps: मैं देख रहा हूँ कि I²C सर्किट इंटरकनेक्शन इस प्रश्न से जुड़ा हुआ है।


3

हालांकि, कोई I areC पिनआउट या कनेक्टर मानक नहीं है, फिर भी कुछ ऐसे स्थान हैं जिनका I isC उपयोग किया जाता है जो मानकीकृत हैं। कुछ जो दिमाग में आते हैं वे हैं मेमोरी मॉड्यूल (DIMM, SO-DIMM), वीडियो कनेक्टर ( DVI , VGA में DDC ) और SM-Bus (हाँ, उनका वेबपेज कुछ ऐसा दिखता है जैसे कि 90 के दशक के मध्य में बना बच्चा)। विशेष रूप से, एसएम-बस कनेक्टर को बंद किया गया है और इसमें केवल I andC और शक्ति शामिल है, लेकिन SM-Bus अतिरिक्त प्रतिबंध लगाते हैं इसलिए तकनीकी रूप से प्रत्येक IicallyC डिवाइस को वास्तविक SM-Bus से कनेक्ट नहीं किया जाना चाहिए। कुछ और मालिकाना प्लग भी आस-पास हैं, जैसे कि लेगो एनएक्सटी सेंसर।


यह एक दिया गया है कि कोई मानक नहीं है ... मैं जिस चीज की उम्मीद कर रहा हूं वह दिशा-निर्देशों का एक कैनोनिकल संग्रह है, जो डिवाइस डिजाइनर तब अनुसरण कर सकते हैं। उदाहरण के लिए, SMBus के बाहर की तरफ 5V लाइन है, जबकि NXP सिग्नल के निशान के बीच + V और GND दोनों की सिफारिश करता है। कौन सा तरीका बेहतर है, और क्यों?
अनंदो घोष

2

कोई मानक नहीं है।

कोई आम प्रथा नहीं है।

अपने आप को क्या करना है यह तय करने के मुद्दों के रूप में:

  1. संकेतों को एक बोर्ड पर रखें जैसे कि वे पहले स्थान पर थे। IIC लाइनों में काफी उच्च प्रतिबाधा है, सिंगल एंड हैं, और इसलिए शोर के लिए अतिसंवेदनशील हैं और ट्रांसमिशन लाइनों को अच्छी तरह से समाप्त नहीं करेंगे। IIC बस बोर्ड से दूर जाने के लिए नहीं है।

  2. यदि आप किसी भी रास्ते से जाने वाले हैं, तो बस को छोटा रखें। कुछ इंच शायद ठीक है। एक मीटर या अधिक वास्तव में परेशानी के लिए पूछ रहा है।

  3. शोर स्रोतों से दूर बोर्ड लाइनों रखें। उदाहरण के लिए, उन्हें मोटर के चारों ओर न लपेटें, या एक के पास जाने की भी कोशिश करें।

  4. एक कनेक्टर का उपयोग करें जो पीछे की तरफ हुक नहीं किया जा सकता है। अगर कोई इसे पीछे की तरफ से प्लग कर सकता है, तो कोई करेगा।

  5. रिबन केबल शायद उपयोग में सबसे आसान है। आपको न्यूनतम, एससीएल, एसडीए और ग्राउंड तीन तारों की आवश्यकता है। शक्ति जोड़ना शायद एक अच्छा विचार है। किसी भी स्थिति में, सुनिश्चित करें कि जमीन का तार एससीएल और एसडीए के बीच है। बिजली का तार शोर नहीं होना चाहिए, इसलिए इसे एक तरफ से चिपका दें, इससे कोई फर्क नहीं पड़ता।

  6. कनेक्टर्स के साथ गड़बड़ करने और संभावित समस्याओं का पीछा करने के बाद, महसूस करें कि बिंदु 1 वास्तव में केवल एक ही था जिसे आपको जानना चाहिए था।


तो हम सभी सैकड़ों I2C चीजों के लिए लोगों को रेत में सिर डालते हैं जो कि Arduino और अन्य माइक्रोकंट्रोलर के शुरुआती लोगों के लिए बना और बेच रहे हैं?
ExcitingProjects

1

हमेशा की तरह किसी भी पोस्ट के बारे में पूछने पर कि कुछ क्यों है [nt] मानकीकृत:
सौभाग्य से, चार्जिंग अब हल हो गई है कि हमने मिनी-यूएसबी पर सभी मानकीकृत कर दिया है।  [या यह माइक्रो-यूएसबी है?  मल।
XKCD से


शायद अगर आपने प्रश्न को अधिक ध्यान से पढ़ा हो, या कई टिप्पणी सूत्र, आपने देखा होगा कि यह एक मानक नहीं है, बल्कि विहित दिशा-निर्देशों के रूप में ज्ञान का संग्रह है।
अनिन्डो घोष

1
@AnindoGhosh - मुझे नहीं लगता कि इससे कोई फर्क पड़ता है। यदि आप उपरोक्त हास्य में दिशानिर्देश के साथ मानक को प्रतिस्थापित करते हैं, तो यह समान रूप से मान्य है। किसी भी स्थिति में जहां कुछ करने के लिए कई तरीके होते हैं, आम तौर पर कई लोगों के लिए कई तरीके होते हैं। भले ही यह एक औपचारिक "मानक" न हो।
कॉनर वुल्फ
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.