PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Anschluss I2C



BlackBroom
27.04.2007, 11:18
Hallo
Ich habe das RN-Mega 128 Funkboard von Robotikhardware. Daran habe ich ein Beschleunigungsensor angeschlossen.

http://www.lipoly.de/index.php?main_page=product_info&cPath=814_821&products_id=5612

Den SCL / SDA Anschluss des Sensors habe ich an die des Controller angeschlossen und an den VDD Anschluss des Sensors habe ich 2,5 V dran und an den GND Anschluss des Sensors habe ich - dran.

Wie muss man da jetzt den Pullup Widerstand anschliessen? Wo kommt der hin?

KlaRaw
27.04.2007, 11:48
Hallo,
beim I2C-Bus kommen die Pullups von SCL/SDA an +3,3V bzw. +5,0V.
Gruss Klaus.

shaun
27.04.2007, 12:54
Und der Controller läuft auch mit 2,5V? Ansonsten brauchst Du wohl noch einen Pegelwandler, da der Chip nach erstem Überfliegen des Datenblattes nicht 3,3- bzw 5V-tolerant ist.

BlackBroom
27.04.2007, 15:50
Hallo,
Ja habe die 5V runtergeregelt.
Wie genau müssen aber jetzt die Widerstände. Ich habe 2 Kabels, die gehen von dem Controllerboard aus zu einem Regler, der das auf 2,5 V regelt. Von dort gehen zwei Kabels zu VDD und GND des Sensors. Dann habe ich zwei kabel die gehen von dem Sensor SCL/SDA zu dem SCL/SDA Anschluss des Board.
Soll der Widerstand von dem SCL/SDA Anschluss des Boards zur 2,5V oder beim Sensor?

shaun
27.04.2007, 20:52
Ich meinte nicht die Sensor-Vcc, sondern den Pegel der Datenleitungen. Die Widerstände müssen an die Sensor-Vcc, also 2,5V. Wenn Dein Controller mit 5V läuft, stehen die Chancen gut, dass er ein high vom Sensor (sprich 2,5V über den Pullup) nicht sicher als high wahrnimmt, daher mein Hinweis auf Pegelwandler. Wenn der Controller einen dedizierten I2C-Controller hat, also nicht Portleitungen mit bit-bang benutzt werden, sollten die Ausgänge wohl tatsächlich Open Collector bzw Open Drain sein, zumindest aber kein 5V-"high" auf die I2C-Leitungen schicken. Dies alles wäre noch zu klären...

BlackBroom
27.04.2007, 21:14
Hallo
Ok jetzt ist klar.
Habe aber in der Anleitung des Boards folgendes gesehen:
http://www.robotikhardware.de/download/rnmega128funk.pdf

SJ1 und SJ2 I2C Pullup-Widerstände
Der I2C-Bus funktioniert nur korrekt, wenn zwei Pullup-Widerstände zwischen +5V und den I2C Leitungen SDA und SCL liegen. Oft machen dies bereits angeschlossene I2C-Boards, in diesm Fall ist das bei RN-Mega128Funk nicht mehr notwendig. Sollte dieses jedoch kein
angeschlossenes Board machen, müssen diese beiden Lötbrücken jeweils mit einem Tropfen Lötzinn geschlossen werden.

Ich müsste da doch einfach Löten und dann hätte ich doch den Pullup Widerstand. Oder? Habe diese Anschlüsse aber nicht gefunden.
Könntet Ihr mir da weiterhelfen?

shaun
27.04.2007, 23:40
Damit hast Du immer noch unzulässig hohen high-Pegel am Sensor (was gut gehen mag, weil die Spannung durch die Eingangsschutzdioden begrenzt wird - ist aber unsauber und out-of-specs) und vor allem kein sicher auswertbares high vom Sensor und Controller.