Anschließen der I2C-Schnittstelle eines 9-V-ICs an 3,3 V Arduino DUE

Ich muss einen TDA7312 über SDA/SCL an die I2C-Schnittstelle von Arduino DUE anschließen.

TDA7312 arbeitet mit 9 V, Arduino DUE mit 3,3 V. Ist es möglich, es sicher anzuschließen, ohne es zu verbrennen? Oder was soll ich verwenden (Level-Shifting vielleicht?), Was ist der richtige Weg?

Ich habe einige Schaltpläne für 5 V <-> 3,3 V gesehen, aber nichts für höhere Spannungen.

Antworten (4)

Die beiden I2C-'BUS'-Eingänge/Open-Drain-Ausgänge haben v ICH H von mindestens 3 V, daher sollten sie direkt von einem 3,3-V-Logikausgang (I2C-Pullup auf 3,3 V) in Ordnung sein. Dies sollten die einzigen Verbindungen zwischen den beiden Geräten sein (außer Masse).

Geben Sie hier die Bildbeschreibung ein

Danke, das macht es klar. Ich werde Pullup-Widerstände auf 3,3 V setzen und das reicht aus, um sie nicht zu verbrennen.
Ich denke, im Referenzdesign hat der Due 1,5k Klimmzüge auf den TWDx/TWCKx-Linien an Bord. (Der niedrige Wert ist vermutlich für die Geschwindigkeit?) In jedem Fall schadet es nichts, keine Klimmzüge zu haben, nur der i2c funktioniert nicht.

Denken Sie daran, dass der I2C-Bus als offener Kollektor spezifiziert ist , siehe Wikipedia-Link für weitere Informationen . Dies bedeutet, dass kein I2C-Gerät einen tatsächlichen High-Side-Treiber enthält. Ihre Platine muss die Busleitungen über Widerstände auf die Spannung hochziehen, die mit Ihren Geräten kompatibel ist. Jedes Gerät kann dann entweder die Leitungen auf hohe Impedanz (um den Wert der Leitung zu lesen oder eine '1' zu schreiben) oder Masse setzen die Zeile (um eine '0' zu schreiben). Das Minimum v ICH H beträgt anscheinend 3 V für den TDA7312, was bedeutet, dass jede Spannung über 3,0 V als '1' gelesen werden sollte. Da 3,3 V > 3,0 V sind und Ihr Duo 3,3-V-Eingänge tolerieren kann, sollte ein Pull-up-Widerstand zur 3,3-V-Stromschiene den Bus mit beiden Geräten kompatibel machen, ohne dass eine Übersetzung der Logikpegel erforderlich ist.

Von der NXP-Website:

AN10441 - Pegelverschiebungstechniken im I2C-Bus-Design .

Verwendete die Schaltung, um einen 5-V-Arduino an einen 3,3-V-Wii-Nunchuck anzuschließen. Lief wie am Schnürchen.

Willkommen bei EE.SE, Seawolf! Der Link, den Sie gepostet haben, ist großartig, aber leider haben Link-Only-Posts wie Ihrer keinen sehr hohen Rang auf den StackExchange-Sites . Möchten Sie die Lösung näher erläutern, mit der Sie die Geräte verbunden haben? Vielleicht würde es ausreichen, nur ein oder zwei relevante Absätze zu extrahieren. Danke!!

Ein bidirektionaler Pegelumsetzer wie der im Schema von Sparkfun gezeigte sollte für Ihre Anwendung funktionieren, da die Hochspannung durch die maximale Nennspannung des MOSFET begrenzt ist.