I2C Bus verlängern

Hallo! Ich habe eine Sache mit einem I2C-Bus zu machen, wo das mit Master/Slave wichtig wäre. Allerdings bräuchte ich Insgesamt 5-7m Länge. Wie würde das gehen? :roll_eyes: Wie? Oder gibt es einen Anderen Bus? (Zum Einsatz kommen werden wahrscheinlich mehrere Atmega328 und vielleicht ein paar Attinys) Danke für Hilfe :) margau

Für sowas nimmt man in der Regel I2C-Extender wie den P82B715. Den gibt es auch schon als fertiges Modul zu kaufen, du bräuchtest am Anfang und am Ende deiner langen Leitung jeweils 1 Stück.

Ginge das auch anders? Weil ich hab so ca. jeden halben Meter en Mikrocontroller

Bei der Konstellation würde ich einen RS485 empfehlen ist auch recht einfach zu implementieren dank Software Serial. Benötigt wird dann aber je ein SN75176 oder MAX 485. Wenn du bidirektionale Kommunikation nutzten willst dann 3 Pin je Controller sonst nur 1!. Damti kannst du dann auch bis zu 1000m Linken.
Mal ein Link dazu
http://www.gammon.com.au/forum/?id=11428

Rick Gammon ist auch ein Arudino Forum Member.

Gruß
Der Dani

Wieviele Mikrokontroller kann ich da dranghängen? 128? Und: Gibts dafür eine Libary mit der ich Strings versenden kann? Software Serial ist UART, oder?

Hier sind Treiber Spezifisch 32 Nodes angegeben es können aber nach meinen Erfahrungen auch mehr. Software Serial ist eben nicht die UART. Software Serial kann auf jedem Pin des Arduinos verwendet werden.
Übertragung byteweise aber wenn du als ASCII überträgst kannst du auch Texte senden.
Gruß
Der Dani

Hier noch ein älteres Beispiel von mir wo ich auch Tinys als Slaves habe. http://arduino.cc/forum/index.php/topic,109050.0.html Gruß Der Dani

Gibts für das mit ASCII auch Libariys?

Bekomm ichs auch hin, wenn ich das einfach mit Transistoren verstärke?

margau: Ginge das auch anders? Weil ich hab so ca. jeden halben Meter en Mikrocontroller

Mit den P82B715 kannst Du nicht nur eine Punkt zu Punkt verbindung herstellen sondern auch den I2C Bus generel verstärken und somit bei jedem Arduino einen P82B715 hinzuschalten. siehe Seite 7 Fig 6 bzw Seite 10 Fig 9 http://www.nxp.com/documents/data_sheet/P82B715.pdf

http://www.smacula.co.uk/2011/12/communicating-between-arduino-boards.html

Grüße Uwe

margau: Ich habe eine Sache mit einem I2C-Bus zu machen, wo das mit Master/Slave wichtig wäre. Allerdings bräuchte ich Insgesamt 5-7m Länge. Wie würde das gehen? :roll_eyes:

Guten Abend,

zwar leidet mein Projekt an unerklärlichen Schwankungen der Meßergebnisse, hat mit dem I2C, was ich zum Steuern des 7m weiter liegenden LCDs und Keypads einsetze, höchstwahrscheinlich aber nichts zu tun. Bei mir funktioniert das LCD und das Keypad über ca. 6 m wunderbar ohne Verstärker.

Grüße Michael

Fordere Dein Glück nicht zusehr heraus ;) ;) ;) Wahrscheinlich hast Du ein Kabel erwischt, das eine kleine Kapazität hat. Grüße Uwe

uwefed:
Kabel erwischt, das eine kleine Kapazität hat.

Ein gutes vieraderiges Telefonkabel, “Rundes Telefonkabel 2x2x0,6mm²J-Y(ST)Y 4-adrig 50Meter” aus der Bucht.
Aber einen Verstärker werde ich ich sicherheitshalber einbauen - wenn ich die größeren Probleme mit den Schwankungen hinter mich gebracht habe.

Grüße
Michael

Hier im Forum hat einer mal ein paar Tests gemacht. Hier habe ich den älteren Thread: http://arduino.cc/forum/index.php/topic,68367.0.html Gruß Der Dani

neben dem I2C-Extender P82B715 gibt es auch noch den I2C-Buffer P82B96.
Der kann lt. Datenblatt bis zu 200m überbrücken. Braucht aber eine 12V Spannungsversorgung

Infos und Testplatinen hier:
I2C-Buffer P82B96.
http://www.horter.de/i2c/i2c-buffer/buffer_1.html

I2C-Extender P82B715
http://www.horter.de/i2c/i2c-extender/i2c_extender_1.html