welcher Bus für 10m Nym-Leitung?

Hallo,
ich möchte 2 Arduinos verbinden. Dazwischen habe ich 10m einfache NYM-Leitung - also kein Schirm, nicht verdrillt...
Welcher Bus eignet sich da? Bei I2C habe ich immer wieder Verbindungsabbrüche(nach mehreren Stunden).
Jemand eine Idee?

Tobi

Dann versuch es mal mit RS485.
Das sollte funktioniere.

RS232 würde auch gehen, ist aber kein Bus.

Wahrscheinlich funktioniert Serial. Notfalls mittels 2 TTL RS232 Adaptern wie zB MAX232.

RS485 braucht eine Flußkontrolle weil der Bus nicht Vollduplex ist sondern nur Halbduplex funktioniert (hat keine gesonderte Leiungen für Rx und Tx). Hat aber gegenüber RS232 eine Höhere Reichweite. Wir reden bei 9600 Baud von 150m zu 1200m.

Grüße Uwe

uwefed:
Wahrscheinlich funktioniert Serial. Notfalls mittels 2 TTL RS232 Adaptern wie zB MAX232.
.....

Für RS2323 sind die Module sogar Pflicht.
Ohne die ist es nur Serial/UART.

Wie viele Adern hast?

Wenn nur zwei Teilnehmern könnte RS232 reichen, 10m wäre für mich aber schon grenzwertig.
Wenn mehr Teilnehmer gefragt sind RS485.
Wenn nur zwei Leitungen vorhanden sind CAN

Letztens habe ich MCP2515 CAN Bus Modul ausprobiert. Abgesehen von dem Parameter für den 8 MHz Quarz bei 16 MHz Standard war das aus meiner Sicht dank guter Bibliothek leicht zu nutzen. CAN ist schon als Bus konzipiert und enthält auch CRC.

stfan1409:
Bei I2C habe ich immer wieder Verbindungsabbrüche(nach mehreren Stunden).

Verwendest Du Busextender?

uwefed:
Wahrscheinlich funktioniert Serial. Notfalls mittels 2 TTL RS232 Adaptern wie zB MAX232.

HotSystems:
Für RS2323 sind die Module sogar Pflicht.
Ohne die ist es nur Serial/UART.

Ich meinte Serial TTL ( GNG, RX und TX) ohne TTL-RS232 Adapter direkt verbinden.
Könnte bei 10m noch funktionieren.
Da man das ohne Kauf von Zusatzteilen probieren kann und es wie I2C nur 3 Leitungen braucht, kann man es ja mal versuchen.

Grüße Uwe

uwefed:
Ich meinte Serial TTL ( GNG, RX und TX) ohne TTL-RS232 Adapter direkt verbinden.
Könnte bei 10m noch funktionieren.
Da man das ohne Kauf von Zusatzteilen probieren kann und es wie I2C nur 3 Leitungen braucht, kann man es ja mal versuchen.

Grüße Uwe

Ok, hatte ich falsch verstanden.
Ja, testen kann man es.
Vermute aber, es ist sehr störanfällig bei dem Kabel.

HotSystems:
Vermute aber, es ist sehr störanfällig bei dem Kabel.

Ich habe keine Erfahrung damit daß ich was sicheres sagen kann.

Wenn man Zusatzhardware braucht, könnte man auch 2 I2C Extender zB P82B715 nehmen und dann funktioneirt der Bus sicher auf 10m.
Auch ein I2C Accelerator zB LTC1694 macht, daß der HIGH Pegel schneller erreicht wird als mit einem Pulupwiderstand und könnte den Bus zuverlässiger machen.

Grüße Uwe

Ja mit dem Kabel habe ich selbst auch keine Erfahrungen, egal ob I2C oder RS232.
Aber mit einfachen Adern (kein Telefonkabel) habe ich nur schlechte Erfahrungen gemacht.
Jede Lampe oder Haushaltsgerät hat Störungen bis hin zum Absturz gemacht.

Mit verdrilltem Telefonkabel hat es dann auch funktioniert. Bei I2C allerdings mit Bus-Extender.

Hallo,
vielen Dank für die Antworten.
Die meisten sind ja für RS485, denn ein zweiter Slave kommt bestimmt noch. Ich habe nun erst mal 2 Max485 zum testen bestellt. Da ich einen Stromzähler (SDM120-Modbus) liegen habe, werde ich als erstes versuchen, den mit dem Arduino(Master) auszulesen.

Der Stromzähler hat folgende Daten:
RS485 Modbus RTU Kommunikationsschnittstelle
Modbuskommunikation:

  • Protokoll - Modbus-RTU
  • Bautrate - 1200, 2400, 4800, 9600 bps
  • Adressbereich - 1 bis 127
  • Parity ; Data bit ; Stop bit - NONE/EVEN/ODD ; 1 ; 8

Ich werde mal eine passende Library suchen.

Das sollte doch mit dem Stromzähler funktionieren...oder?

Also vielen Dank,
Tobi

na wenn du sogar ein vorgebenes Protokoll hast, dann nimm es! Dann stellt sich ja die Frage gar nicht nach dem Physischen Layer.

für Modbus Slaves auslesen würde ich die SimpleModbus von Juan Bester nehmen. Super dokumentiert, sehr gute PDF's gibts dazu! Nimm nur keine Forks sondern wirklich das Original (ist glaub ich momentan nur auf Google Drive).

edit hier: https://drive.google.com/drive/folders/0B0B286tJkafVYnBhNGo4N3poQ2c?tid=0B0B286tJkafVSENVcU1RQVBfSzg

oh vielen Dank für den Tip.
Werde ich am Wochenende austesten

uwefed:
Ich meinte Serial TTL ( GNG, RX und TX) ohne TTL-RS232 Adapter direkt verbinden.
Könnte bei 10m noch funktionieren.
Da man das ohne Kauf von Zusatzteilen probieren kann und es wie I2C nur 3 Leitungen braucht, kann man es ja mal versuchen.

Dann auch noch nur so schnell wie nötig übertragen: es muss nicht immer 115K sein!

Wenn Du mehr als 2 Geräte verbinden willst dann fallen sowieso viele Vorschläge in Wasser.
Serial TTL und RS232 sind nicht busfähig sondern Punkt zu punkt verbindungen.
Grüße Uwe