BMA180 एक्सेलेरोमीटर। यह I2C और SPI के बीच पिन साझा करने का प्रबंधन कैसे करता है?


11

BMA180 एक्सेलेरोमीटर या तो SPI दास या I 2 C दास हो सकता है। दोनों बसों के लिए पिन साझा किए गए हैं।

SPI mode                    I2C mode
---------------------------------------------------
SDI  input                  SDA  bidirectional (!)
SDO  output                 ADDR address bit, input
SCLK input                  SCL  input
CSB  chip select, input     I2C  mode select, input

डेटाशीट के अनुसार (अध्याय 8 देखें) , बसों के बीच चयन सीएसबी पिन के माध्यम से किया जाता है। जब CSB कम होता है, तो उपकरण एक SPI दास होता है। जब CSB अधिक होता है, तो डिवाइस I 2 C गुलाम होता है।

यहां एक विफलता मोड है , जिसके बारे में मैं चिंतित हूं। मान लीजिए, BMA180 SPI बस में है। उसी बस में एक अन्य उपकरण भी है, जिसमें स्वयं का चिप चयन है। मान लीजिए, एसपीआई बस मास्टर उस अन्य डिवाइस को संचार कर रहा है। BMA180 के लिए CSB अधिक है, इसलिए यह I 2 C सक्षम होना चाहिए। BMA180 एससीएल (एसपीआई की एससीएलके) और एसडीए (एसपीआई के एमओएसआई) पर बिट्स द्वारा घड़ी के किनारों को देखता है। क्या होगा अगर इनमें से कुछ बिट्स BMA180 को एक मान्य I 2 C रीडिंग लेनदेन की शुरुआत की तरह देखते हैं , और BMA180 डेटा और मौजूदा SPI लेनदेन को क्लोब करने के लिए शुरू होता है? BMA180 के डिजाइन को कैसे रोका जाएगा?

यह कौतूहल का विषय है। मैंने अभी तक इन मुद्दों के साथ प्रयोग नहीं किया है। मैं SPI पर BMA180 का उपयोग करूंगा।

किसी भी सुझाव, अंतर्दृष्टि या संदर्भ वास्तव में सराहना की है!

अपडेट करें। डेटाशीट में कुछ मिला (देखें 7.7.11) । यह बिट 2 सेट करके I 2 C को अक्षम करने की सलाह देता है dis_i2c, यदि SPI के माध्यम से BMA180 के साथ संचार कर रहा है।

जब SPI इंटरफ़ेस का उपयोग किया जाता है, तो खराबी से बचने के लिए dis_i2c को 1 पर सेट करना अत्यधिक अनुशंसित होता है।

BMA180 ने EEPROM में बिल्ट-इन किया है। रजिस्टर सामग्री को EEPROM में संग्रहीत किया जा सकता है और स्वचालित रूप से पावर-अप अनुक्रम पर लोड किया जा सकता है। इसलिए, BMA180 को I 2 C को पूरी तरह से और हमेशा अनदेखा करना संभव है ।

अपडेट करें। L3GD20 gyro एक और आईसी है, जो समान तरीके से I 2 C और SPI के बीच पिन साझा करता है । ऐसा लगता नहीं है कि I 2 C मोड को अक्षम करने के लिए थोड़ी सेटिंग है। इसलिए, इसे ADXL345 जैसे OR गेट की आवश्यकता होगी, जिसे @markrages ने लाया है।

सचेत! बॉश ने BMA180 ( यहां आधिकारिक पत्र ) की शिपिंग रोक दी ।

जवाबों:


14

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

मैंने सावधानी से एसपीआई को परिधीय का उपयोग करने के बजाय थोड़ा धमाके के रूप में फिर से लिखा, जिससे घड़ी के उच्च होने पर एमओएसआई लाइन को नहीं बदलना सुनिश्चित किया गया। (यह I2C प्रारंभ स्थिति है।) जो चीजों को हल करने के लिए लग रहा था।

यदि मैं खरोंच से शुरू कर रहा था, तो मैं इसके बजाय I2C बस या ADXL345 के लिए एक समर्पित SPI पोर्ट का उपयोग करने का प्रयास करूंगा।

जाहिर है मैं यह मुठभेड़ करने के लिए केवल एक ही नहीं था। यह अनुच्छेद ADXL345 डेटाशीट के बाद के संशोधन में दिखाई दिया:

यहाँ छवि विवरण दर्ज करें


+1 और धन्यवाद! सिर्फ डेटाशीट में पाया गया कि BMA180 में I2C अक्षम बिट (देखें 7.7.11) है। यह उल्लेखनीय है कि BMA180 में एक अंतर्निहित OR फाटक भी है, और यह स्पष्ट रूप से डेटाशीट में उल्लिखित नहीं है।
निक एलेक्सीव

1
OR गेट प्रभावी रूप से I2C मोड को निष्क्रिय कर देता है, इसलिए यह चिप में निर्मित नहीं है। (यदि चिप डिजाइनर अतिरिक्त पिन को छोड़ सकता है, तो स्थिति को पूरी तरह से टाला जा सकता है।)
चिह्नित करता है

मुझे पिछली पोस्ट में "भी" नहीं लिखना चाहिए था। I2C निष्क्रिय बिट के अलावा "भी" का अर्थ है "। मैं यह भी गलत था कि इस योजना में, OR गेट को एक्सेलेरोमीटर IC में स्थायी रूप से बनाया जा सकता है। यह अच्छे के लिए सभी के लिए I2C को निष्क्रिय कर देगा। मैं उस पिछली टिप्पणी को फिर से लिखूंगा।
निक एलेक्सीव

BMA180 में 3x DNC / आरक्षित पिन हैं। हो सकता है, वे पहले से ही कारखाने के प्रयोजनों के लिए उपयोग किए जाते हैं।
निक एलेक्सीव

1
मैंने देखा है कि डिजिटल एक्सेलेरोमीटर एक दूसरे के साथ पिन-संगत होते हैं। यह अप्रयुक्त पिंस की व्याख्या कर सकता है। या कारखाना परीक्षण जैसा आपने कहा।
चिह्नित करता है
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.