-
-
Erfahrener Benutzer
Fleißiges Mitglied
3,3V und 5V gemeinsam an einem I2C-Bus
Hallo zusammen.
Ich habe einen Atmel Xmega, der mit 3,3V arbeitet. An dem hängen dann per I2C diverse Schaltkreise dran. Den RTC DS1307 (5V) könnte ich ja noch gegen einen DS1338 (3,3V) austauschen. Problemtisch wird es allerdings beim Luftdrucksensor HCA0811AR. Der ist zwar auch in 3,3V verfügbar, aber das nur in Stückzahlen, die meinen Bedarf weit übersteigen. Also kommt da nur die 5V Variante in Frage.
Kann man überhaupt 3,3V und 5V Komponenten am I2C-Bus betreiben? Wenn ja wie?
Hat da jemand schon mal erfahrungen gemacht?
-
Sind die für die I2C Schnittstelle verwendeten Pins des Xmega 5V tolerant? So weit ich weiß hat der sowas. Dann könntest du den Bus einfach mit 5V betreiben.
-
Erfahrener Benutzer
Lebende Robotik Legende
Hallo
@ darxon69
Wäre es nicht am einfachsten den AVR mit 5V zu betreiben, da diese Spannung schon angeblich vorhanden ist ?
MfG
-
Neuer Benutzer
Öfters hier
Alternativ kannst du ja auch einen bidirektione treiber zur pegelanpassung benutzen, kann dir jetzt aber nicht genau sagen welcher dafür geeignet ist aber wenn wilst schau ich mal was es da so gibt aber ich brauch ein paar tage für den soviel zeit hab ich grad net
-
jetzt hab ich doch mal nachgelesen..
Der µC verträgt keine 5 V betriebsspannung noch hat er 5V tolerante I/Os.
Hier ist eine Lösung beschieben:
http://www.semiconductors.philips.co...8/39340011.pdf Seite 42
-
Erfahrener Benutzer
Fleißiges Mitglied
Danke kounst
Da hat nur der HCA Probleme macht, werde ich den den einfach mit den Mosfets entkoppeln. Alle anderen ICs gibt es ja auch in 3,3V.
-
Erfahrener Benutzer
Roboter Experte
Da der I2C doch sowieso externe Pullups verwendet,
sollte man doch einfach den I2C gegen 3,3V Pullen.
Die 5 Volt Devices sollten das schon noch erkennen.
Gruss Klaus
-
Erfahrener Benutzer
Robotik Einstein
Kann funktionieren, muss aber nicht, da "üblicherweise" bei 5V-Geräten ein "High"-Pegel erst ab 0,7*Vcc = 3,5V erkannt wird. Einfach testen.
-
Erfahrener Benutzer
Roboter Experte
Jaecko,
wie kommst du denn da drauf ?
z.B lt datenblatt ATmega 88 ist H-Pegel ab ca. 0,7V garantiert.
Im Übrigen wird sowas ja ständig beim Betrieb von 3,3 V SD Karten an
5V Prozessoren gemacht.
Gruss K.
-
Erfahrener Benutzer
Robotik Einstein
Von nem Mega88 sagt doch hier niemand was.
Ausserdem: Lies die Stelle mit der Spannung nochmal genau.
(s. 302, Tabelle 28.2: DC Characteristics, Zeile V_IH)
Da steht nicht "0,7V" sondern "0,7Vcc", also 0,7 * Versorgungsspannung, wobei wir bei 5V Vcc wieder bei den 3,5V wären.
Dass 3,3V erkannt werden, _kann_ sein, muss aber nicht.
Oder anders: Der Hersteller garantiert erst ab 3,5V eine sichere Erkennung.
Das Problem ist hier doch, dass der Sensor (5V) die 3,3V vom Bus noch erkennen muss. In dem Datenblatt, das ich dazu gefunden hab (http://www.sensortechnics.com/download/hca-baro-641.pdf)
ist der Wert - zumindest wenn man ihn so interpretieren kann - noch extremer angegeben: "Input high level: Min. 90% of Vs", also 0,9*5V = min. 4,5V.
Für solche Spannungsprobleme am I2C hab ich auch schon mehrfach die Schaltung mit den FETs verwendet (meine Standardtypen: BSS13; haut wunderbar hin; auch mit 400 kHz noch.
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen