I2C को लंबी दूरी पर उपयोग करने के लिए डिज़ाइन नहीं किया गया है, लेकिन मुझे कई अनुप्रयोगों के बारे में पता है जहां यह वास्तव में लगभग 2 मीटर की दूरी पर उपयोग किया जाता है। मुझे एक मामले का भी पता है, जहां उनके साथ मुद्दे थे और यह ग्राउंड लूप्स को ठीक करके निश्चित रूप से तय किया गया था, जो मुझे विश्वास है।
यह सुनिश्चित करने के लिए कि यह कार्य करेगा, आपको P82B715 की तरह एक I2C बस एक्सटेंडर का उपयोग करना चाहिए।
हालाँकि, PB2B715 की डेटशीट धारा 8.2 में निम्नलिखित बताती है:
टेलीफोनी या ईथरनेट (कैट 5 ई) वायरिंग के लिए इस्तेमाल की जाने वाली विशिष्ट मुड़ जोड़ी या फ्लैट केबलों के लिए, वह समाई 50 pF से 70 pF / मीटर तक होती है, इसलिए केबल, सिद्धांत रूप में, 50 मीटर तक लंबी हो सकती है । व्यावहारिक अनुभव से, 30 मीटर ने एक सुरक्षित केबल लंबाई साबित की है इस सरल तरीके से, 100 kHz तक, दिखाए गए मानों के साथ। लंबी दूरी और उच्च गति संभव है लेकिन अधिक सावधान डिजाइन की आवश्यकता है।
तो विशेषज्ञ (NXP पूर्व फिलिप्स, I2C के आविष्कारक हैं) का कहना है कि 30 मीटर एक सिद्ध दूरी साबित हुई है। मेरा अनुभव कहता है कि 2 मीटर एक उल्लेखनीय दूरी है, और जो अनुभव मुझे वापस रिपोर्ट किए गए थे, वे संकेत देते हैं कि बिना किसी एक्सटेंडर के अधिक भारी लोड वाली I2C बसें भी संभव हैं।
I2C बसों को लंबी दूरी पर काम करने के लिए मुख्य बिंदु हैं:
- एक कम समाई केबल (मुड़-जोड़ी / ईथरनेट) का उपयोग करना;
- बस की गति सीमित करना;
- पुल-अप होने से वे सही आकार के होते हैं।
पुलअप गणना
टेक्सास इंस्ट्रूमेंट्स में पुल-अप गणना के बारे में एक अच्छा एप्लिकेशन नोट (SLVA689) है ।
- (3.6 V−1 V) / 20 mA=130 Ω
- Rmax=tr/(0.8473∗Cb)trCbCbtr=1ms), then you'll find Rmax=2950 Ω . TI's application note has graphs so that you can find appropriate values quickly.
- Of course the value for the pullup is the equivalent value of all pullups in parallel combined. You may have a pullup on the master end, the slave end, and any other slave/master on the bus.
- The more you are "at the limit", the more you also need to account for "parasitics" such as the voltage drop in the cable.