Hi, Möchte den angefügten logic level shifter namens MAX3373e verwenden, um mein i2c, welches auf 3.3V logiklevel ist, auf 5V logiklevel bringen. Habe es gemäss angefügten Bild aus datenblatt verschaltet. -->im Bild sind es 1.8V auf 3.3V, bei mir sind es 3.3V auf 5V. Nun zu meinem Problem: Habe einen gas-sensor am 3.3V i2c angehängt und ein digitalpotentiometer an 5V i2c angehängt. Aus bislang unerklärlichen gründen ist nur das Digitalpotentiometer erreichbar, wenn ich mit dem logic level shifter arbeite. Nehme ich den shifter raus, erkennt es meinen gas-sensor wieder. Ist der logic level shifter dafür gedacht um die i2c-geräte NUR am höheren Spannungspegel anzuschliessen? P.S. die bidirektionale kommunikation funktioniert aber. Sprich ich kann zum digitalpoti schreiben und auch lesen Danke für jegliche hilfe
Hast Du auf beiden Seiten die nötigen I2C-Pullups? Wo ist in Deiner Schaltung der µC? Auf der 3.3- oder auf der 5-V-Seite? Ansonsten würde ich einen PCA9517 verwenden, der ist von NXP explizit als I2C-Pegelwandler konzipiert: https://www.nxp.com/docs/en/data-sheet/PCA9517.pdf
Und warum nicht einfach mit den zwei N-Fets? LG, Sebastian
Hi, Danke für deine Antwort. Der uC(also Raspberry Pi) ist auf der 3.3V-Seite. Habe gesehen, dass ich die Pullups nur auf der 3.3V-Seite habe, welche ja nicht funktioniert!!!! ...Auf der funktionierenden 5V-Seite habe ich sie vergessen. Kann diese aber erst morgen Abend in meine Schaltung einfügen. Gibt es eine logische Begründung dafür, dass die 5V-Seite ohne Pullups funktioniert, die 3.3V-Seite mit Pullups aber nicht? Und danke für den Hinweis mit dem PCA9517, werde versuchen, in Zukunft diesen zu verwenden Danke
Manuel Neff schrieb: > Gibt es eine logische Begründung dafür, dass die 5V-Seite ohne Pullups > funktioniert, die 3.3V-Seite mit Pullups aber nicht? Ja. Du verwendest ein unpassendes Produkt. I2C erfordert Open-Collector bzw Open Drain IOs. Diese IOs können nur gegen Ground ziehen, nicht aber gegen Vcc. Dafür braucht es Pullups. Dein Level Shifter ist aber für Logiksignale gedacht und zieht sowohl nach Vcc als auch nach GND. So etwas kann man selbstverständlich für I2C nicht einsetzen. Also: wegwerfen und nochmal. fchk
Frank K. schrieb: > Dein Level Shifter ist aber für Logiksignale gedacht Das sieht das Datenblatt anders: > I²C Level Translation > The MAX3373E–MAX3376E, MAX3378E/MAX3379E > and MAX3390E–MAX3393E level-shift the data present > on the I/O lines between +1.2V and +5.5V, making them > ideal for level translation between a low-voltage ASIC and > an I²C device. Der /THREE-STATE-Pin könnte des Problems Ursache sein.
Manuel Neff schrieb: > ein digitalpotentiometer an 5V i2c angehängt. Nur aus bloßer Neugier: wofür verwendest du das Digipoti? Was wird damit angesteuert? Manuel Neff schrieb: > Gibt es eine logische Begründung dafür, dass die 5V-Seite ohne Pullups > funktioniert, die 3.3V-Seite mit Pullups aber nicht? Ja, die Begründung ist in der Struktur des I2C begründet. Es ist immer so, dass wenn mehrere Teilnehmer an 1 Bus hängen, dann muss es einen inaktiven/hochohmigen Zustand geben, weil sonst ja ein Busteilnehmer eine '0' und der nächste eine '1' aktiv auf den selben Bus treiben kann. Und das Ergebnis ist das, was du grade beobachtest: ein Buskollision. Dein Pegelwandler wäre z.B. super für SPI-Signale. DerEgon schrieb: > Der /THREE-STATE-Pin könnte des Problems Ursache sein. Auf der Seite 14 im DB ist das tatsächlich so beschrieben. Ich halte diese aktive Richtungsumschaltung vom Master aus allerdings für Murks, denn es wird spannend, wenn der Slave Clock-Stretching macht...
:
Bearbeitet durch Moderator
Irgendwie passt der Titel nicht so richtig zum Eröffnungsbeitrag. Um die Frage vom Titel zu beantworten: https://cdn-shop.adafruit.com/datasheets/AN10441.pdf Ich denke in dieser Application Note von NXP ist detailliert erklärt, wie einfache Level Shifter am I²C Bus funktionieren. Genau solche werden bei Aliexpress in Hülle und Fülle billig verhökert. Das IC dass du im Eröffnungsbeitrag ansprichst ist allerdings komplexer aufgebaut. Wie dieses Funktioniert müsste im Datenblatt stehen, allerdings hast du nicht danach gefragt.
Manuel Neff schrieb: > Habe es gemäss angefügten Bild aus datenblatt verschaltet. Dann zeige einfach mal deinen Schaltplan. Aus den Kästchen sind die entscheidenden Details nicht erkennbar.
Lothar M. schrieb: > Dein Pegelwandler wäre z.B. super für SPI-Signale. Laut Einleitungstext des Datenblattes wäre der Maxim für I2C geeignet. Ich würde trotzdem die Idee haben, besser einen Texas TXS0108E einzusetzen, von dem weiß man, dass er klaglos läuft. Stefan ⛄ F. schrieb: > Irgendwie passt der Titel nicht so richtig zum Eröffnungsbeitrag. Um die > Frage vom Titel zu beantworten: > https://cdn-shop.adafruit.com/datasheets/AN10441.pdf Das war wieder ein Beitrag der Sorte [bitte selbst ausdenken]. Gib Gas, damit Du endlich Deine 55.555 Beiträge erreichst!
Manuel Neff schrieb: > Gibt es eine logische Begründung dafür, dass die 5V-Seite ohne Pullups > funktioniert, die 3.3V-Seite mit Pullups aber nicht? Nein, der MAX3372/3 hat schon integrierte Pullups. Aber ohne einen genauen Schaltplan kann man nur raten. Manfred schrieb: > Ich würde trotzdem die Idee haben, besser einen Texas TXS0108E > einzusetzen, von dem weiß man, dass er klaglos läuft. Der MAX3373E ist ein Klon des TXS0102.
Manfred schrieb: > Laut Einleitungstext des Datenblattes wäre der Maxim für I2C geeignet. Das stimmt, da bin ich in die Irre gegangen... :-/ Das ist kein aktiver Pegelwandler, der ist eigentlich nur für I2C und artverwandte Busse geeignet. Für einen SPI-Bus ist ein high-Pegel via 10k-Widerstand eher fraglich. Clemens L. schrieb: > der MAX3372/3 hat schon integrierte Pullups. So ist es. Und zusätzlich noch "Flankenbeschleuniger" für die steigende Flanke. > Aber ohne einen genauen Schaltplan kann man nur raten. Und der Aufbau kann dann nochmal anders sein. Aber ich würde wie bei solchen seriellen Bussen üblich einfach mal mit dem Oszi messen, was sich da an den Pegeln und Flanken tut. @Manuel Neff: Hast du ein Oszi? Oder kannst du den I2C mal einfach langsamer fahren, damit sich bei flachen Flanken die Pegel ggfs stabilisieren können?
Clemens L. schrieb: > Der MAX3373E ist ein Klon des TXS0102. Na wenn schon, dann vom TXS0104. Leider nicht pinkompatibel.
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.