क्या I2C मिश्रित आवृत्ति संभव है?


12

मान लीजिए हमारे पास 400 kHz I 2 C बस है। एक मास्टर और दास उपकरणों का एक समूह है। हम एक और गुलाम डिवाइस पेश करना चाहते हैं, लेकिन दुर्भाग्य से यह केवल 100 किलोहर्ट्ज़ तक जाता है।

स्पष्ट रूप से, ठोस डिजाइन विकल्प हैं:

  • बस उस बस को 100 kHz पर चलाएं
  • 400 kHz और 100 kHz बाह्य उपकरणों के लिए अलग-अलग बसों का उपयोग करें

लेकिन सवाल सिर्फ एक हैक के बारे में है: क्या होगा अगर हम एक बस का उपयोग करते हैं, और 400 kHz पर 400 kHz उपकरणों को संबोधित करते हैं, और 100 kHz गुलाम से बात करते समय बस को 100 kHz पर स्विच करते हैं?

या धीमी दासी 400 kHz हैश के जवाब में दुर्व्यवहार कर सकती है जो इसे I 2 C लाइनों पर देखता है क्योंकि यह गलती से सोचता है कि इसे संबोधित किया जा रहा है?

क्या हम अभी भी 100 kHz उपकरणों पर निर्भर हो सकते हैं जो अभी भी 400 kHz I 2 C सिग्नल को संसाधित करने में सक्षम हो सकते हैं, अन्य गुलामों की ओर भेजे गए संदेशों को मज़बूती से अनदेखा करने के लिए पर्याप्त रूप से अच्छी तरह से संकेत देते हैं?


4
आपके अंतिम वाक्य के बारे में, मुझे नहीं लगता कि आप 100kHz उपकरणों पर निर्भर हो सकते हैं जो 400kHz सिग्नल को प्रोसेस करने में सक्षम हो।
gbmhunter

फिर भी, अगर हम इस तरह के हैक को लागू करते हैं, तो यह वास्तव में हम पर निर्भर करता है, इसलिए यह मूल रूप से प्रश्न से बाहर है।
काज

जवाबों:


7

जैसा कि आप सुझाव देते हैं, ऐसा करना एक अच्छा इंजीनियरिंग अभ्यास नहीं है। हालांकि कुछ डिवाइस ट्रैफ़िक को नज़रअंदाज़ कर देते हैं, जिन्हें वे प्राप्त नहीं कर पाते हैं (अंडरस्म्प्लम), अन्य डिवाइस गलत फ्रेम के साथ बस को अव्यवस्थित कर सकते हैं।

इस प्रकार, आप जिस उत्तर की तलाश कर रहे हैं वह आपके आवेदन की बारीकियों पर निर्भर करता है जैसे:

  • आपके I2C कनेक्शन की लंबाई
  • पुल-अप रेसिस्टर्स वैल्यू
  • डिवाइस संगतता

बेशक, यह अनुमान लगाना कठिन है कि सड़क से कुछ साल पहले इसके चश्मे के बाहर संचालित डिवाइस का क्या होगा।

एक अन्य विकल्प उपकरणों को धीमा करने या क्लॉक लाइन को पारित करने के लिए एक शटडाउन लाइन को चलाने के लिए है (बशर्ते कि वे एक घड़ी के माध्यम से घड़ी संकेत उत्पन्न नहीं कर सकते)।


10

एक अन्य विकल्प, यदि आपके पास अपने मास्टर से निकलने वाली अतिरिक्त I2C बस नहीं है, तो I2C स्विच का उपयोग करें, जैसे कि PCA9543A / 43B । एक शाखा पर 400kHz गुलाम और दूसरे पर 100kHz दास रखो और इसे आवश्यकतानुसार स्विच करें।


अगर आप फिलिप्स (प्रवर्तक) ने जो कहा है, उसे देखें तो यह ठीक यही है। वे संगत नहीं हैं, और एक बस स्विच अनुशंसित उपाय है। (यह एक ऐप नोट में है)।
गबरी

6

इस बात की कोई गारंटी नहीं है कि 400kHz ट्रैफिक के संपर्क में आने पर 100kHz डिवाइस गलत व्यवहार नहीं करेगी - NACKs से लेकर बस हैंग तक कुछ भी संभव है।

आपको या तो पूरी बस को 100kHz पर चलाना चाहिए या आपके धीमी परिधीय के लिए अलग-अलग कम गति वाली बस होनी चाहिए।


3

अन्य विकल्प। दो busses होने के बजाय, आप एक अतिरिक्त लाइन का उपयोग कर सकते हैं (एक सॉफ्टवेयर के साथ आसान / I 2 C बिटबैंग )। एक अलग घड़ी लाइन, या एक अलग डेटा लाइन। या कुछ भी बदलने के लिए बिना उस खंड पर उस एकल 100 मेगाहर्ट्ज चिप को लगाने के लिए I 2 C बफर या I 2 C स्विच का उपयोग करें।

या फिर एक ही बस में इसका परीक्षण करें। यह बहुत संभव है कि 100kHz चिप लाइन को प्रभावित करे। यह हर 4 बिट को पढ़ सकता है और अंत में यह सोचकर कि इसे संबोधित किया गया है। लेकिन इसे एक वैध शुरुआत स्थिति को देखना होगा, और फिर अगले 32 बिट्स में से हर 4 बिट को पढ़ना होगा क्योंकि यह सटीक पता है, फिर इसे या तो रजिस्टर करने के लिए लिखने के लिए वैध जानकारी के रूप में अगले दो बाइट्स पढ़ने की कोशिश करनी होगी। , या डेटा को देखने का प्रयास करें। मुझे नहीं लगता कि यह बहुत अधिक संभावना है। सर्वश्रेष्ठ शर्त यह है कि इसे एक परीक्षण सर्किट में सरल तार लगाया जाए और इसे जांचा जाए।

दो बातें ध्यान दें, यदि यह एक बंद सर्किट है, या आप केवल कुछ ही बना रहे हैं, तो इसे जोखिम में डालना, या इसे बदलना काफी आसान है। यदि यह एक बड़े पैमाने पर उत्पादित वस्तु है, तो आप बस दूसरी बस चाहते हैं। अन्य, यह है कि आपको यह विचार करना होगा कि 100kHz चिप केवल मूल I 2 C कल्पना के लिए बनाई गई थी , और यह उच्चतर घड़ी की गति का बहुत अच्छा समर्थन कर सकती है। यह सिर्फ उच्च गति 400kHz कल्पना के लिए परीक्षण नहीं किया गया था।


2

I2C बस का डिज़ाइन ऐसा है -

  1. जब SCL पर एक गिरती हुई धार होती है, जो किसी विशेष न्यूनतम विलंब के बिना, एसडीए को तुरंत दावा करने के लिए एक दास डिवाइस का कारण बन सकती है;
  2. बढ़ते और गिरते किनारों का सापेक्ष क्रम महत्वपूर्ण महत्व है।

ड्राइवर की ताकत और लाइन कैपेसिटी में अंतर के कारण, यह सैद्धांतिक रूप से संभव होगा कि एक डिवाइस एससीएल पर एसडीए को चलाकर कुछ धीमी गति से गिरने वाली बढ़त का जवाब इतनी तेजी से दे सकता है कि दूसरा डिवाइस एसडीए को सबसे पहले गिरता हुआ देखेगा।

एससीएल पर कई लॉजिक थ्रेसहोल्ड को परिभाषित करना संभव हो सकता है, और यह निर्दिष्ट करें कि एससीएल पर गिरने वाली बढ़त के लिए एसडीए पर बढ़त के बाद आने वाले के रूप में माना जाता है, यह अभी भी 2/3 वीडीडी से ऊपर होना चाहिए जब एसडीए पर बढ़त का पता चलता है। लेकिन एक डिवाइस एसडीए को एससीएल पर एक गिरती बढ़त के जवाब में जोर नहीं दे सकता है जब तक कि यह 1/3 वीडीडी से नीचे न हो, लेकिन इस तरह के शब्दों में कल्पना नहीं लिखी जाती है।

इसके बजाय, जो उपकरण एसडीए और एससीएल पर एक साथ गिरने वाले किनारों को देखते हैं, वे आमतौर पर एससीएल पर किनारे का संबंध मानते हैं, जब तक कि यह एसडीए पर बढ़त से पहले नहीं होता है। कुछ I2C कार्यान्वयन एससीएल और एसडीए को कुछ बाहरी घड़ी के साथ सिंक्रनाइज़ करके संभालते हैं और आवश्यकता होती है कि एसडीए के गिरने वाले छोर को एससीएल के दो अवधियों से पहले देखा जाना चाहिए ताकि वे पहले आ जाएं। यदि SCL और SDA पर परिचालन की गति सिंक्रोनाइज़िंग क्लॉक के सापेक्ष बहुत तेज़ है, तो डिवाइस SCL और SDA पर उच्च और निम्न संकेतों के मनमाने क्रम का अनुभव कर सकते हैं; अगर उन दृश्यों में से एक ऐसा लगता है जैसे यह धीमी डिवाइस को संबोधित कर रहा है, तो यह तदनुसार प्रतिक्रिया कर सकता है, जो किसी भी अन्य संचार को रोक रहा है जो चल रहा है।

ऐसा कोई विशेष कारण नहीं है कि I2C बस में उपकरणों को एक सिस्टम क्लॉक पर सिंक्रोनाइज़ेशन पर निर्भर होना चाहिए (SCL पर दो असतत थ्रेसहोल्ड बेहतर होगा), लेकिन तथ्य यह है कि वास्तव में कुछ डिवाइस इस तरह से काम करते हैं। ध्यान दें कि भले ही एक उपकरण जो धीमी गति तक सीमित था, आंतरिक रूप से एक तेज बस के साथ मिलकर काम करना चाहता था, यह संभवत: कम से कम रोजगार की घड़ी में होता है जब भी कुछ ऐसा हो रहा होता है जिसमें उसकी रुचि हो।

यह कुछ संचारों को अन्यथा धीरे-धीरे होने की तुलना में अधिक धीरे-धीरे होने का कारण होगा, लेकिन गति में गिरावट की संभावना लगभग इतनी खराब नहीं होगी जितनी कि घड़ी-सिंक्रनाइज़ किए गए डिजाइन (वास्तविक राशि जिसके द्वारा धीमी डिवाइस स्ट्रीचेस घड़ियों की संभावना नहीं होगी) के साथ आवश्यक है वह राशि जितनी खराब हो, जिसके द्वारा घड़ी को सिंक्रनाइज़ किए गए घड़ी इकाइयों में सबसे खराब स्थिति से बचने के लिए धीमा किया जाना चाहिए)।

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