Forum: Mikrocontroller und Digitale Elektronik I2C-Bus mit 3,3V


von Sebastian Halle (Gast)


Angehängte Dateien:

Lesenswert?

Hi,

ich will mit meinen ARM9-Controller eine I2C-Uhr ansteuern, hab aber
das Problem, daß die Port-Pins nur 3,3V verkraften. Laut den
Datenblatt, von dem ich gern ein paar Sachen übernehmen würde, sollte
die Angelegenheit mit zwei FET-Transistoren zu bewältigen sein.
Vorsichtig wie ich bin habe ich die Beschaltung aber mit PSpice nochmal
simuliert. Laut der Simulation liegen für einen High-Pegel, der vom
Controller gesendet wird, auf dem Bus 5V. In Falle eines Low-Pegel aber
3,9V. ??? In die Gegenrichtung (Uhr sendet) ist alles bestens. Kann mir
jemand sagen ob man die Schaltung so verwenden kann und meine
Simulation falsch ist? Wäre die Schaltung auch für den Anschluß einer
PS/2-Tastatur geeignet? Falls es eine bessere Pegelwandlung gibt würde
ich mich über diese freuen! (der 5V-I2C-driver ist auf der ersten Seite
des Datenblatts oben abgebildet)

von KlaRa (Gast)


Lesenswert?

Hallo,
schau Dir mal im Elektor 12/2004 Seite 20 den Beitrag zum USB/I2C
Interface an. Für SDA und SCL wurde jeweils ein MOS-Fet FDV301N
spendiert. Source liegt am 3,3V - Controller und Drain am I2C-Bus.
Dieser Teil wird über 10K gegen +5V terminiert. Das Gate liegt an
+3,3V. Fertig ist der Pegelwandler.

Gruss Klaus.

von Sebastian Halle (Gast)


Lesenswert?

Danke für den Tipp! Da werd ich wohl mal reinschauen.

Gruss Sebastian

von Jochen (Gast)


Angehängte Dateien:

Lesenswert?

Hi Sebastian !

Hast Du de Schaltplan zu diesem Pegelwandler ?
Ich muss auch 5 V -> nach 3,3 V terminieren !!

Habe die Schaltung so gebaut wie in den Philips I2C Spec beschrieben ->
aber irgendwie funktioniert die noch nicht !

Habe 2 x BSS 138 verwendet -> siehe Schaltplan !!

Gruß
Jochen

von Sebastian Halle (Gast)


Angehängte Dateien:

Lesenswert?

Hi Jochen!

Hier hast Du schon mal den Schaltplan aus dem Elektor-Heft.
Für den ganzen Artikel (engl.) willst benötige ich aber Deine
Email-Adresse. Der ist leider etwas größer als 1 MB weil er etwas
unklug eingescannt wurde.

Gruss Sebastian

von Jochen (Gast)


Lesenswert?

Hi Sebastian !

Danke für den Schaltplan !

Ist genau die Schaltung, die ich aus den I2c Spez von Ohilios
rausgelesen habe.
Hast Du die CLK und Data Leitungen zufällig schon einmal
oszilloskopiert?

Gruß
Jochen

von Sebastian (Gast)


Lesenswert?

Hi Jochen!

Konnte die Schaltung leider noch nicht genauer untersuchen, da ich kein
Oszi besitze. Die Version mit den FDV301N funktioniert eigentlich ganz
gut bei 100kHz. Ich konnte leider die AppNote bei Philips nicht mehr
finden sonst hätte ich mal reingeschaut. Hast schon oszilloskopiert?

Gruss Sebastian!

von Sebastian (Gast)


Angehängte Dateien:

Lesenswert?

...die Beschaltung des BSS138 hab ich im Datenblatt eines eZdsp von TI
gefunden. Ist zwar in einem Reset-Schaltkreis gewesen, aber vielleicht
bringt es dich ja weiter. Aus einer Simulation wurde leider nichts, da
ich keinen BSS138 oder Ähnliches in PSpice finden konnte. Kenn mich
leider bei dem Namensgebungen für die Dinger nicht so gut aus. :-)

Gruss Sebastian!

von Isabelle (Gast)


Lesenswert?

Guten tag,
ich mache gerade ein projekt mit der Entwicklungsboard EVB 9328.Dieses 
muss mit Linux funktionieren.Ich habe aber die Schwierigkeit, dass ich 
das Programm für das board nicht habe ,mit dem ich die datei entpacken 
muss.
Könnten Sie mir vieleicht helfen?
 Isa.

von Ron (Gast)


Lesenswert?

Hallo.
Ich möchte einen Sensor über I2C mit meinem µC verbinden und dessen 
Werte einlesen.
Der Controller wird mit 3,3V versorgt.Der Sensor wird allerdings über 
DVDD mit typ.1,8V (max. 2,3V) betrieben und dessen SCL-und SDA-Leitungen 
auch an DVDD gelegt,wo noch je Leitung ein 10K Widerstand nach DVDD 
gezogen ist.

Dabei kann es doch Probleme mit den High-bzw. Low Pegeln geben oder?
Wie kann ich dieses Problem beheben?

von Oliver (Gast)


Lesenswert?

>Dabei kann es doch Probleme mit den High-bzw. Low Pegeln geben oder?

Kann. Muß aber nicht. I²C ist ein low-aktiver Bus, high wird niemals 
aktiv getrieben, sondern ergibt sich über die pull-up-Widerstände. Wie 
hoch die high-Spannung ist, ist damit erst einmal egal, es kommt nur 
darauf an, daß dein Mikrocontroller die 1,8V des Sensors sicher als high 
erkennt. Ob er das tut, steht im Datenblatt.

>Wie kann ich dieses Problem beheben?

Wenn die 1,8V zu wenig sind, brauchst du einen Pegelwandler. Siehe oben.

Oliver

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Das Problem ist mit einem PCA9517 zuverlässig und stabil lösbar.

von Ron (Gast)


Lesenswert?

Danke für die Info´s ;-)

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.