Ich würde gerne folgenden Pegelwandler benutzen um ein 3,3V I2C und ein 5V I2C System miteinander zu verbinden.
Chan1:
Funktioniert die Datenübertragung wenn ich 5V SDA an TX0 und RX1 anschliesse, und 3,3V SDA an TX1 und RX0 ? Für die Kommunikation in beide Richtungen.
Chan2:
5V SCL an RX1. Die 3,3V Komponenten welche das SDL Signal empfangen sollen an RX0.
Also ich würde mir die Variante mit den BSS138 selber bauen. Das kostet nur ein paar cent (die BSS138 gibt es bei Reichelt für 7 cent, die Widerstände kann man sich zur Not irgendwo auslöten). Der SMD BSS138 ist als SMD auch noch lötbar.
Alternative: MAX3373 o.ä. Ist allerdings SOT23 mit .65mm pitch
Hallo,
aus meiner Sicht müsste der Sparkfun Pegelwandler bidirektional arbeiten. Die Schaltung basiert auf einer Application Note von Philips, die man hier nachlesen kann: http://www.mikrocontroller.net/attachment.php/256452/levelshifter.pdf
Ist aber wie gesagt eine rein theoretische Betrachtung
Gruß Reinhard
Der Pegelwandler bei Watterott ist für genau diesen Anwendungsfall gedacht. Und ja, die Philips Appnote ist da grundlegend - dort ist auch nachzulesen, warum und wie das funktioniert. In diesem Thread (LSM303DLH an Arudino Pro mini 5V - #8 by system - Deutsch - Arduino Forum) kann man nachlesen, wie man den Pegelwandler anschließen muß (angehängtes Bild).
Natürlich gibt es viele Möglichkeiten, verschiedene Logikpegel miteinander zu verbinden. Es gibt ICs auf der Basis der Philips Appnote die es erlauben, mehrere I2C-Busse mit unterschiedlichsten Pegeln miteinander zu multiplexen, einfach auch über I2C gesteuert. Man muß halt sehen, was man braucht. Meiner Erfahrung nach sind die Sparkfun-Teile (um diese handelt es sich bei dem Watterott-Teil) für einen Breadboard-Aufbau keine schlechte Wahl.