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
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
Moin, wenn nicht dafür, wofür ist ein Levelshifter dann geeignet? Könnte höchstens noch mal den LTC1555 ausprobieren, da steht zumindest in dem Artikel, dass der auch für 1,8V geeignet ist...
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.