Hi@all, ich möchte ein I2C Sensor an einen Atmega anschließen und Daten auslesen. Der Mega läuft mit 5Vcc und der Sensor mit 3,3Vcc. Nun habe ich mir einen LC bestellt. Weiß allerdings noch nicht so richtig ob meine Gedanken hierzu richtig sind. Hier ist der Schaltplan: http://www.sparkfun.com/datasheets/BreakoutBoards/Level-Converter-v10.pdf Ich dachte mir, dass ich für SDA einfach TX_LV - TX_HV parallel zu RX_LV - RX_HV schließe. Dann sollte das doch bidirektional funzen?! Das gleiche wollte ich bei Channel 2 für SCL machen. Hab ich da nen Denkfehler? Wenn ich das so anschließe benötige ich doch auch keinen Pullup mehr?! Danke schonmal, Sebastian
Hallo, Seb! I²C funktioniert grundsätzlich nicht mit Pegelwandlern, Bustreibern usw. dazwischen. Den AVR kannte auch mit 3,3V betreiben - kein Wandler notwendig -> alle glücklich. Gruß - Wolfgang
Wolfgang schrieb: > I²C funktioniert grundsätzlich nicht mit Pegelwandlern, Bustreibern usw. > dazwischen. Das tut I²C sehr wohl, wenn man einen I²C-Pegelwandler einsetzt, wie z.B. den PCA9517. Der eignet sich vorzüglich, um in einem Gerät gemischt I²C-Bausteine mit 5V und 3.3V zu nutzen.
Hallo Wolfgang, der Atmel läuft nicht mit 3,3V (4,5 V - 5V)! Die Aussage von dir halte ich allerdings für falsch. Überall im Netz findet man Level Converter im I2C Einsatz. Das ist sogar DIE gängige Methode! Siehe LC-Beschreibung...dort steht auch das man den LC für I2C nutzen kann. http://www.sparkfun.com/products/8745 Aber trotzdem Danke ;) ----> Zurück zu meiner Frage: Sind meine Gedanken bezüglich des anschließens richtig oder falsch?
Ich habe das immer so gemacht, wie in der AppNote 97055 von NXP (http://ics.nxp.com/support/documents/interface/pdf/an97055.pdf) auf Seite 10, das hat bisher gut funktioniert. Den genauen MOSFET-Typ und Pullup-Widerstände könnte ich heute Abend noch nachliefern sobald ich zu Hause bin.
Ich habe einen Farbsensor (3,3V) mit einem Atmega8 (5V) über I²C mit der Pegelwandlerschaltung (2N7002,2x10k) angeschlossen, geht bidirektional. Ich denke der Spannungteiler soll nur die "Sparvariante" sein.
Danke für die Antworten und Ratschläge! Ich habe im Augenblick nur den von mir beschriebenen Level Converter zur Verfügung. Bevor ich auf was anderes zurück greife wollte ich diese Möglichkeit testen. Ich bin mir allerdings nicht sicher obs funzt - deshalb meine Frage. Das es auch anders geht is mir schon klar ;) Schöne Grüße @Sascha: Ja gern! P.S. Wenn ich das richtig übersetze sollte es funzen, oder?! In nem Forum gefunden: ----------Frage------------------------------------------------ Syvwlch | August 16, 2008 at 8:23 AMComment Rating4 Hi, and thanks for all the good work. One question on this logic level converter: If I want to use this to connect a 5V processor to a 3.3V I2C sensor, can I connect one pin of the processor to the SDA pin of the sensor with both a TXI-TXO and a RXO-RXI line in parallel, and then switch that processor pin from input to ouput as required? ------------Antwort-------------------------------------------- If not, what do you recommend I do? Quazar | September 30, 2008 at 11:41 AMComment Rating2 I think you can do that with this board. You'll need to use the two "TX" channels, (the ones with the MOSFETs), since I2C requires bidirectional I/O for both lines. There is a good appnote on the subject here.
Ich habe die Antwort gefunden. Der BOB-08745 ist recht einfach (wenn man es weiß) einsetzbar. für SCL und SDA werden einfach die beiden TX der zwei Kanäle genutzt. Vergleich: http://www.sparkfun.com/datasheets/BreakoutBoards/Level-Converter-v10.pdf mit http://www.nxp.com/documents/application_note/AN10441.pdf Falls es mal jemand brauch. RX wird also nicht benötigt. Schöne Grüße Sebastian
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.