Komisches Verhalten I2C-Bus

OP #2389162
Lesenswert?

Moin,
ich bastel gerade mit einem gumstix-Board rum, und probiere den I2C-Bus 
zum Laufen zu kriegen, um einen Slave auszulesen. Irgendwie wollte das 
die ganze Zeit nicht funktionieren, obwohl das Start und das Senden der 
Slave-Adresse im Logic-Analyser gar nicht schlecht aussah.
Heute habe ich zum ersten Mal ein Oszi dran gehängt, um wirklich mal die 
Pegel zu überprüfen. Das gumstix-Board hat Pull-ups auf dem Board (4k7), 
jedoch nur einen 1,8V Ausgangslevel. Der Sensor, den ich verwenden 
möchte, braucht aber 3,3V. Dafür habe ich einen Levelshifter eingesetzt 
(P82B96). Dieser Bekommt 3,3V Versorgungsspannung und hat auf der 3,3V 
Seite Pull-Ups (5k6) gegen die 3,3V.

Was man jetzt jedoch im Skope sieht (auf der 1,8V Leitung), ist, dass am 
Ende des Sendens der Slave-Adresse, der Bus (SCL und SDA) auf ca. 0,9V 
geht, also genau zwischen den Pegeln. Nehme ich den Slave ab, dann sieht 
alles richtig aus. Der Slave funktioniert allerdings an anderen System 
ohne Probleme, den LevelShifter habe ich auch in anderen Projekten im 
Einsatz (nur nicht mit 1,8V, was aber nach dem Datenblatt kein Problem 
darstellen sollte...).

Könnt Ihr Euch einen triftigen Grund vorstellen, was da am Ende warum 
mit den beiden Leitungen passiert?

Vielen Dank für Eure Hilfe,
Ozzy
Gast #2389199
Lesenswert?

Kann mich ja irren, aber ist da ein Levelshifter so geeignet dafür?

Durch die 3,3V Pullups legt der ja an der 1,8V Seite relativ niederohmig 
(Ausgangswiderstand des Levelshifters) die 1,8V an. Das heißt auf der 
Seite sind die Pullups ja eigentlich nutzlos.
Wenn dann der uC versucht den Pegel runter zu ziehen knallt es im ersten 
Moment bis die Latenzzeit vorbei ist und die Buffer umgeschaltet werden 
(vorausgesetzt der uC bekommt den Ausgang des Levelshifters 
runtergeknüppelt).

Schau mal z.B. da:
http://www.mikrocontroller.net/articles/Pegelwandler#I2C-Bus:_gemeinsam_3.3V_und_5V

Grüße

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren