I2C 3.3 से 5.0 V रूपांतरण


35

मैं एक 5V Arduino के लिए 3.3VI 2 C डिवाइस को इंटरफेस करने की कोशिश कर रहा हूं ।

मुझे SCL लाइन में कोई समस्या नहीं है। मैं एक साधारण वोल्टेज डिवाइडर का उपयोग कर सकता हूं लेकिन मेरे पास एसडीए लाइन के साथ एक मुद्दा है क्योंकि यह द्वि-दिशात्मक है।

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

क्या कोई और उपाय है?


भविष्य के पाठकों को पता होना चाहिए कि भले ही ओपी केवल एक दिशा में एससीएल का उपयोग कर सकता है, लेकिन I2C आमतौर पर एससीएल को द्विदिश करने की अनुमति देता है।
फोटॉन

जवाबों:


25

विषय के बारे में अच्छा दस्तावेज I2C- बस और अन्य प्रणालियों के लिए द्वि-दिशात्मक स्तर का मज़दूर है जो द्वि-दिशात्मक स्तर के मज़दूर के रूप में एक एकल मस्जिद का उपयोग करता है।


मुझे फिलिप्स सर्किट पसंद है। चतुर। यह कुछ मायनों में बेहतर हो सकता है यदि I2C आउटपुट को सभी पुल-अप से सभी करंट को डुबोना न पड़े, लेकिन एक सक्रिय I2C रिपीटर को डिजाइन करना कठिन है; मुझे नहीं लगता कि यह सामान्य तर्क के साथ किया जा सकता है, क्योंकि पुनरावर्तक को एक बढ़ती बढ़त का पता लगाने में सक्षम होना चाहिए और इससे पहले कि वह किसी भी I2C को कर सके।
सुपरकैट

2
लिंक मर चुका है!
ज़िमानो

14

शिवू के उत्तर का विस्तार करने के लिए, यह तथाकथित "बस स्विच" के लिए एक सामान्य उपयोग है जो मूल रूप से तर्क-नियंत्रित MOSFO हैं। असतत MOSFETs का उपयोग करने में कुछ कमियां हैं (परजीवी समाई / कैपेसिटिव युग्मन एक है) और यह एक अच्छा MOSFET चुनने के लिए मुश्किल हो सकता है। हाई-स्पीड लॉजिक सर्किट में उपयोग के लिए बस स्विच को अनुकूलित किया गया है।

कई निर्माता उन्हें बनाते हैं, जिनमें फेयरचाइल्ड, TI, IDT और Pericom शामिल हैं। NC7SZ384 पर एक नज़र डालें

अन्य लोगों के बीच, निम्नलिखित नोटों को देखें:


8

कई Arduino के पास 3.3 V पर चलने के लिए ऑनबोर्ड समर्थन है। वास्तव में, सभी 3.3 V पर चल सकते हैं और FTDI चिप योजनाबद्ध एक उदाहरण में बताते हैं। Teensy USB Arduino बनाने वाले पॉल ने सुझाव दिया था कि मैं USB केबल को खोलकर केबल की V CC लाइन के स्थान पर 3.3 V वोल्टेज की आपूर्ति कर सकता हूं । आप यह कोशिश कर सकते हैं। लेकिन अन्य विकल्प भी हैं।

  1. Arduino के लिए तर्क स्तरों की जाँच करें। मेरा मानना ​​है कि वे तर्क वी के रूप में 3.3 वी का समर्थन करते हैं यहां तक ​​कि 5 वी खट्टा Atmel पर भी। SparkFun लेख में कहा गया है: "* 3.3 V डिजिटल आउटपुट पिन को 5 V इनपुट पिन से कनेक्ट करना अक्सर सीधा होता है। अधिकांश डिवाइस न्यूनतम वोल्टेज के प्रति काफी सहिष्णु होते हैं कि वे डिजिटल उच्च मूल्य के रूप में स्वीकार करेंगे। उदाहरण के लिए, अधिकांश Atmel माइक्रोकंट्रोलर। 0.6 * V CC से ऊपर की किसी भी चीज़ को उच्च के रूप में स्वीकार करें , इसलिए 3.3 V डिवाइस को 3 V (0.6 * 5 V) से ऊपर के स्तर का उत्पादन करना चाहिए। "
  2. Arduino क्लोनों में से एक खरीदिए जिसमें 3.3 V और 5 V चयनकर्ताओं की छलांग लगाई गई है। मैं RBBB क्लोअन का उपयोग करता हूं जिसे मैंने 3.3 वी के लिए आपूर्ति केबल FTDI चिप सेट किया है। लेकिन कई अन्य हैं जिनके पास वास्तविक 3.3 V कॉन्फ़िगरेशन विकल्प हैं, जिनमें से एक हालिया आधिकारिक Arduinos भी शामिल है अगर मुझे सही याद है। आप अपने Arduino प्लगइन के साथ Teensy USB का उपयोग कर सकते हैं और 3.3 V नियामक स्थापित करने के लिए उसकी साइट पर निर्देशों का पालन कर सकते हैं ।
  3. USB केबल को विभाजित करें और USB केबल के V CC लाइन के स्थान पर एक प्रयोगशाला विद्युत आपूर्ति गुणवत्ता 3.3 V स्रोत प्रदान करें। यह कम वर्तमान होना चाहिए, जैसा कि पॉल ने सुझाव दिया है। इसलिए, या तो एक अच्छी गुणवत्ता वाले वोल्टेज स्रोत। आप वांछित वोल्टेज प्राप्त करने के लिए श्रृंखला में बैटरी के एक जोड़े को भी रख सकते हैं।
  4. यदि आप रुचि रखते हैं, तो मैं आपके Arduino के योजनाबद्ध की जांच करने का प्रयास कर सकता हूं और शायद यह संभव है कि FTDI कॉन्फ़िगरेशन में बदलाव किया जाए जो 3.3 V के लिए अनुमति देगा।

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

  • इनलाइन रोकनेवाला। यूनी-दिशात्मक। केवल स्टेप-डाउन - करंट कम करता है, IC I / O क्लैंपिंग डायोड अधिकतम इनपुट को सीमित कर सकता है।
  • श्रृंखला प्रतिरोधों। यूनी-दिशात्मक। स्टेप-डाउन केवल, लेकिन दानेदार।
  • डायोड। यूनी-दिशात्मक। त्यागपत्र देना। सुरक्षित। 5 वी ब्लॉक डायोड से उच्च; 3.3 V पक्ष तो उच्च संबंध रखता है। लेकिन, यदि आप डायोड कॉन्फ़िगरेशन को उल्टा करते हैं, तो क्या आप स्टेप-अप भी नहीं कर सकते हैं?
  • MOSFET। द्वि-दिशात्मक। स्टेप-डाउन या स्टेप-अप।
  • टिप्पणियों में: ऑप्टिकल अलगाव उदाहरण: 4N25। तेज करंट।
  • टिप्पणियों में: जेनर डायोड उदाहरण: 1N4728A
  • टिप्पणियों में: 74HC244 / 125 यूनी-दिशात्मक

6

आईसी-स्तर पर शिफ्टिंग I2C के लिए विशेष रूप से आईसी उपलब्ध हैं:

मुझे नहीं पता कि आपके डिजाइन में किस तरह की बाधाएं हैं, लेकिन मुझे लगता है कि एक समर्पित आईसी का उपयोग करना आसान होगा फिर अपने स्वयं के समाधान के साथ आना।

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