मुझे I2C का पता क्या चुनना चाहिए?


16

अब मुझे पता है कि I2C पता अपने लिए आरक्षित करने के लिए आपको I2C लोगों को कुछ पैसे देने होंगे। लेकिन मैं ऐसा नहीं करना चाहता।

मैं इस बात पर सलाह ले रहा हूं कि मुझे अपने प्रोजेक्ट के लिए अपने गुलाम और मास्टर एमसीयू के लिए क्या पता चुनना चाहिए। बोर्ड पर एक EEPROM भी होगा। इसलिए मैं EEPROM के पते का उपयोग करने से बचूंगा। मैं मास्टर को सेंसरों की एक विस्तृत श्रृंखला से कनेक्ट करने की योजना बनाता हूं, जिसमें गायरोस और एक्सेलेरोमीटर और शायद अतिरिक्त मेमोरी डिवाइस शामिल हैं। क्या मेरे द्वारा स्पष्ट किए जाने वाले पतों के कोई ब्लॉक हैं? मैं सिर्फ मास्टर के लिए 0x00 और दास के लिए 0x01 का उपयोग करने के बारे में सोच रहा था, क्योंकि वे शायद ही कभी उपयोग किए जाते हैं।

एक और सवाल: क्या 10-बिट डिवाइस और 7-बिट डिवाइस को एक ही बस में मिलाना बुरा होगा? मैं अपने एमसीयू को 10-बिट एड्रेसिंग के साथ संवाद करने की संभावना पर विचार कर रहा था, लेकिन केवल सेंसर के लिए 7-बिट एड्रेस का उपयोग कर रहा था।


1
@ W5VO। हां, एसडी कार्ड वालों के ठीक बगल में केवल 3,000 डॉलर चाहिए।
थॉमस ओ

1
@ थोमसो, आपको एक पते को सुरक्षित रखने के लिए उन्हें भुगतान करने की आवश्यकता नहीं है, एक पहचानकर्ता की तरह, डिवाइस बनाने के लिए आपको यह भुगतान करने की आवश्यकता नहीं है, वे एक सेवा बेच रहे हैं। एसडीकार्ड वे अपनी बौद्धिक संपदा को लागू कर रहे हैं, वे आपको यह करने के लिए कह सकते हैं या एक अलग तकनीक चुन सकते हैं।
कोर्तुक

1
@ थोमसो, मैं एक मुद्दा बना रहा था कि इस मामले में आप कुछ दे रहे हैं। इसके अलावा, दो हजार एक वास्तविक उत्पाद में ज्यादा नहीं है।
कोर्तुक

1
@ थोमस ओ $ 3,000 वास्तव में उत्पादों के लिए बहुत ही उचित है। यह किसी भी कंपनी के उत्पाद बनाने के लिए बाल्टी में एक बूंद है।
कालेनजब

2
@reemrevnivek, लेकिन पेटेंट धारक ने चुना कि उन्हें इसके लिए आवश्यकता होगी और खुले हार्डवेयर का उपयोग करने की अनुमति न दे, और इस शुल्क का भुगतान करने की आवश्यकता है। पेटेंट धारक के रूप में, उनके पास यह अधिकार है। मैं, जब तक कानून नहीं बदलते, यह सुनिश्चित करने के लिए जा रहा हूं कि यह स्पष्ट है। मैं पेटेंट और कॉपीराइट ओवरहाल करना चाहता हूं, लेकिन जब तक वे हैं, यह इसी तरह है कि जिन इंजीनियरों के पास अच्छे विचार हैं वे संरक्षित और पुरस्कृत हैं।
कोर्तुक

जवाबों:


13

सबसे पहले, 0x00 और 0x01 का उपयोग न करें, जो आरक्षित हैं! I2C बस विशिष्टता की तालिका 3 आरक्षित पते (और कारणों के कारण) को सूचीबद्ध करती है:

दास addr आर / डब्ल्यू विवरण
 0000 000 0 सामान्य कॉल पता
 0000 000 1 स्टार्ट बाइट
 0000 001 X CBUS पता
 विभिन्न बस प्रारूप के लिए 0000 010 एक्स आरक्षित
 0000 011 एक्स भविष्य के प्रयोजनों के लिए आरक्षित
 0000 1XX एक्स एचएस-मोड मास्टर कोड
 1111 1XX 1 डिवाइस आईडी
 1111 0XX X 10-बिट गुलाम संबोधन

आपको 0x00 से भी स्पष्ट होना चाहिए क्योंकि इसमें कोई बढ़त नहीं है, और एक त्रुटि स्थिति हो सकती है (और यह डीबग करना कठिन है)।

इसके अलावा, मैं कहूंगा "बस इसे कॉन्फ़िगर करने योग्य बनाएं।" यदि आप विभिन्न प्रकार के सेंसर में प्लग करने में सक्षम होना चाहते हैं, तो आप या तो एक पते के लिए एनएक्सपी का भुगतान कर सकते हैं, या इसे समायोज्य पते दे सकते हैं। यदि आप स्रोत कोड वितरित करना चाहते हैं, तो सॉफ़्टवेयर संशोधन स्पष्ट होना चाहिए। आपके चयनित पते के एक या दो बिट्स (डिजिटल पिंस पर सोल्डर जंपर्स) को टॉगल करने का एक हार्डवेयर विकल्प सस्ता और आसान है, या ए / डी पिन से जुड़े जम्पर्स के साथ प्रतिरोधों की एक सीढ़ी नेटवर्क आपको हार्डवेयर में पूर्ण नियंत्रण दे सकता है।


1
कॉन्फ़िगर करने योग्य पते के लिए +1। मैंने इसे दासों पर देखा है जो एक ही बस में एक ही चीज के कई होंगे।
कालेनजब

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

16

एक उपकरण चुनें जिसे आप अपने डिजाइन में उपयोग नहीं कर रहे हैं और इसका उपयोग I2C पता है। उदाहरण के लिए, यदि आपको RTC की आवश्यकता नहीं होगी, तो आप 0xA2 और 0xA3 का उपयोग कर सकते हैं, जो NXP PCF8563 (और शायद अन्य RTCs) द्वारा उपयोग किया जाता है।


मुझे यह बहुत पसंद है।
निकल्डन

दुर्भाग्य से कुछ डिवाइस अभी भी बंद हैं, उदाहरण के लिए ST STNN75 और TI DAC8571 या माइक्रोचिप 24AA025E48 और TI ADC121C027
Xcodo

10

यहाँ 1999 के रूप में आवंटित पतों की एक सूची है: http://www.nxp.com/acrobat_download2/selectionguides/SELGUIDE.PDF

वे इस तर्क के साथ पूरी सूची जारी नहीं करते हैं:

प्रश्न: क्या आज तक उपयोग किए गए सभी I -C- दास पतों की सूची प्राप्त करना संभव है?

A: नहीं। NXP सेमीकंडक्टर्स सभी पहले से असाइन किए गए दास पतों की इस सूची को जारी नहीं करते हैं, क्योंकि यह एकमात्र तरीका है जिससे हम गारंटी दे सकते हैं कि सूची अद्यतित है और प्रत्येक निर्दिष्ट पता अद्वितीय है। यदि यह सूची उपलब्ध करा दी गई, तो I²C- बस लाइसेंसधारी स्वयं दास के पते का चयन करना शुरू कर देंगे और केंद्रीय सूची जल्द ही अधूरी हो जाएगी, जिससे पता संघर्ष हो सकता है। स्थापित सिद्धांत, अच्छी तरह से काम करने के लिए सिद्ध है, यह है कि प्रत्येक लाइसेंसधारी एनएक्सपी सेमीकंडक्टर्स के भीतर एक एकल संपर्क के लिए एक दास पता अनुरोध भेजता है, जो तब एक एकल मास्टर सूची के आधार पर दास पता आवंटित करता है।

से http://www.nxp.com/products/interface_control/i2c/faq/

अब, यदि आपकी परियोजना में सब कुछ आंतरिक होने जा रहा है, तो कोई कारण नहीं है कि आप किसी भी पते का चयन नहीं कर सकते हैं जो आप तब तक चाहते हैं जब तक कि वह किसी भी चीज़ से संघर्ष नहीं करता है जिसे आप कनेक्ट करने की योजना बनाते हैं।


अजीब तर्क: कोई सूची नहीं होने से वे सूची को अद्यतित रखना सुनिश्चित करते हैं ...: - /
फेडेरिको रुसो

सरल तर्क: वे यह सुनिश्चित करना चाहते हैं कि जो कोई भी आईडी आवंटित करता है, उसके पास वास्तव में अद्यतित सूची होगी; सूची से बाहर की तारीख की प्रतियां चल रही है कि लक्ष्य को कमजोर होगा।
सुपरकाट

1
@Federico उनके पास एक सूची है, वे सिर्फ इसे प्रकाशित नहीं करते हैं ताकि लोग यह सुनिश्चित करने के लिए उनके माध्यम से जाने के लिए मजबूर हो जाएं कि सूची अद्यतित है। यदि सूची प्रकाशित की गई थी तो अप्रयुक्त पते चुनने वाले लोगों के टन होंगे, तब क्या होगा जब कोई व्यक्ति उस पते को ठीक से रखता है?
कालेनजेब

FWIW: SELGUIDE.PDF इंटरनेट आर्काइव लिंक में है
HiTechHiTouch

1

जैसा कि कैलेनजेब कहता है कि आपको दास डिवाइस पतों की पूरी सूची नहीं मिलेगी।

हालांकि कई आरक्षित पते हैं जिनका आप उपयोग नहीं कर सकते हैं (उदाहरण के लिए 0x00 सामान्य कॉल पता है)।

सूची यहाँ है

मिक्सिंग 10 और 7 बिट एड्रेसिंग तब तक ठीक है जब तक कि 7 बिट स्लेव्स I2C मानक का पालन करते हैं और 10 बिट एड्रेस को अनदेखा करते हैं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.