Forum: Mikrocontroller und Digitale Elektronik I2C TWI 5V / 3V / SCL / SDA / Pegelwandler Interface Anpassung Schaltung


von Bernhard S. (bernhard)


Angehängte Dateien:

Lesenswert?

Geschätztes Forum,

ein 3,3V Slave (z.B.HP03S) soll an einem 5V I2C-BUS betrieben werden.

Könnte man diese Schaltung verwenden, welche Nachteile hat sie?


Die SCL -Leitung wird theoretisch nur vom MASTER (µC) angesteuert, 
somit würde ja eine einfache Diode ausreichen, um SCL gegen GND zu 
ziehen.


Nur bei der SDA -Leitung wird's interessant, denn der Slave muss dies 
Leitung auch gegen GND ziehen können.

Ein einfacher Transistor (in Basisschaltung) könnte dies Aufgabe 
übernehmen, ein FET wäre natürlich auch möglich.


Welchen FET würdet Ihr empfehlen?

Bernhard

: Bearbeitet durch User
von Stefan (Gast)


Lesenswert?

Hallo,

Bernhard S. schrieb:
> Die SCL -Leitung wird theoretisch nur vom MASTER (µC) angesteuert,
> somit würde ja eine einfache Diode ausreichen, um SCL gegen GND zu
> ziehen.

Nein, denn es gibt das sogenannte "Clock-stretching". Der Slave kann 
denn Clock eine Weile (mehrere Mikrosekunden bis ...) auf Low ziehen bis 
er die Daten etc. bereit hat und so den Master bremsen.

Du musst beide Leitungen gleich behandeln!!!

von Bernhard S. (bernhard)


Angehängte Dateien:

Lesenswert?

Noch ein Vorschalg mit einem N-Kanal-FET BSN10.

von Sven B. (scummos)


Lesenswert?

Wenn du Glück hast kannst du die einfach direkt verkabeln und Pullups 
auf 3.3V machen. Der 5V-Baustein müsste das eigentlich als High 
erkennen.

Ansonsten wird's schwer von Hand, dann würde ich lieber einen der 
zahlreichen 5V-toleranten I2C-Bus-Repeater ICs einsetzen.

Grüße,
Sven

von Bernhard S. (bernhard)


Lesenswert?

>Nein, denn es gibt das sogenannte "Clock-stretching"....

>Du musst beide Leitungen gleich behandeln!!!


Danke, ein sehr wertvoller Hinweis.


Bernhard

von Bernhard S. (bernhard)


Lesenswert?

>Wenn du Glück hast kannst du die einfach direkt verkabeln und Pullups
>auf 3.3V machen. Der 5V-Baustein müsste das eigentlich als High
>erkennen.

Ja, aber !!!

Es ist nicht auszuschließen, dass am BUS (z.B. Programmierfehler) ein 
Pegel von 5V aniegt, dann könnte der SLAVE ev. Schaden nehmen und 
unbrauchbar werden.

Bernhard

von Sven B. (scummos)


Lesenswert?

Es ist auch nicht auszuschließen, dass du einen Hammer auf deinen 
Schaltkreis fallen lässt. Dann ist er auch hin. ;)

Solange du nicht explizit deine I2C-Pins auf Output und dann auf High 
schaltest, wüsste ich nicht, was da schief gehen sollte.

von Mike (Gast)


Lesenswert?

Was spricht gegen die von NXP in der AN10441 gezeigte Schaltung?
http://www.nxp.com/documents/application_note/AN10441.pdf

Oder sonst die im Artikel Pegelwandler genannten Varianten

von Max H. (hartl192)


Lesenswert?

Bernhard S. schrieb:
>>Wenn du Glück hast kannst du die einfach direkt verkabeln und
> Pullups
>>auf 3.3V machen. Der 5V-Baustein müsste das eigentlich als High
>>erkennen.
>
> Ja, aber !!!
>
> Es ist nicht auszuschließen, dass am BUS (z.B. Programmierfehler) ein
> Pegel von 5V aniegt, dann könnte der SLAVE ev. Schaden nehmen und
> unbrauchbar werden.

Und es wäre auch außerhalb der Spezifikationen:
Laut "Two-wire Serial Interface Characteristics" des ATmega8 muss die 
Input High-Voltag min. 0.7Vcc sein, 5V*0.7=3.5V...

von Sven B. (scummos)


Lesenswert?

Ich bin ein bisschen skeptisch ob ein beliebiger Pegelwandler reicht, 
schließlich hat i2c noch diesen Tri-State-Zustand der auch korrekt 
abgebildet werden muss. Ich würde dann eher zu einem i2c bus repeater 
raten. Ich habe mal den hier [1] verbaut, funktioniert gut.

Das mit den 3.5V ist natürlich Pech, dann geht die einfache Lösung 
leider nicht. Naja.

_____
[1] http://www.nxp.com/documents/data_sheet/PCA9515.pdf

: Bearbeitet durch User
von Max H. (hartl192)


Lesenswert?

Sven B. schrieb:
> Tri-State-Zustand
Ich zähle nur zwei:
- Transistor im IC schaltet durch: Low auf der Leitung
- Transistor sperrt (also hochohmig): Pullup zieht die Leitung auf High
Diese beiden zustände gehen Problemlos durch den Pegelwandler aus dem 
MOSFET + Widerstände.
Diese Lösung wird auch in einer Appnote von NXP beschrieben:
http://www.nxp.com/documents/application_note/AN10441.pdf

: Bearbeitet durch User
von Sven B. (scummos)


Lesenswert?

Ok, stimmt. Der Tri-State an den ich dachte ist derselbe wie der zweite 
den du auflistest.

von Bernhard S. (bernhard)


Lesenswert?

@alle

ich danke Euch für die zahlreichen Antworten.


Bernhard

von Uwe R. (uwe_r)


Lesenswert?

Wie siehts damit aus:
http://www.dx.com/p/jy-mcu-5v-3v-iic-uart-spi-level-4-way-converter-module-adapter-178286

Hat jemand sowas schon mal verwendet ?

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.