RS485: Busauslegung und alternativ: CAN-Treiber-Chips?

Begonnen von Beta-User, 22 Februar 2018, 15:14:12

Vorheriges Thema - Nächstes Thema

rob

@frober: Interessant. Danke für die Info.

Dass man das GW nicht zum Aktor machen soll, hatte ich zwischendrin auch mal beiläufig gelesen. Aber so drastische Wirkung hätte ich nicht erwartet. Höchstens, dass das Relais halt mitschaltet, auch wenn ein Node gemeint war.

VG
rob

frober

Zitat von: Beta-User am 07 April 2021, 10:13:20
So ganz verstanden habe ich das Problem bzw. die Lösung noch nicht. Ich habe auch einige Relais bzw. SSR's an diversen Nodes im Einsatz... Die Versorgung dieser Nodes ist aber über die zentrale 12V-Strecke, so dass ausreichend Saft da sein sollte, um die jeweils zu schalten, ohne die Kommunikation in den Abgrund zu ziehen...

Ansonsten freut es mich ja sehr, wenn man auf mich hört, aber ich weiß (leider, zum Glück, ...) auch nicht alles :P .

Mit der Stromversorgung hat es nichts zu tun, an den Nodes sind Photomos verbaut.

Das Problem waren die definierten Relais in der Node0 (Gateway). Da hatte ich anfangs Probleme, da diese mit den Relais der anderen  Nodes geschaltet wurden. Erst nach ändern der ChildID hat es im Test funktioniert.
Nun hatte das GW aber anscheinend Probleme damit.

Wie du schon angemahnt hattest, GW ist GW, das sollte keine weiteren Aufgaben erledigen.

Evtl. funktioniert es, wenn man receive im GW besser eingrenzt, damit nur die ChildIDs für die Node0 verarbeitet werden.
Jetzt muss es erstmal laufen, damit ich meinen Rasen säen kann....

Vielleicht probiere ich es Mal, wenn ich mehr Zeit habe...
Raspi 3b mit Raspbian Buster und relativ aktuellem Fhem,  FS20, LGW, PCA301, Zigbee, MQTT, MySensors mit RS485(CAN-Receiver) und RFM69, etc.,
einiges umgesetzt, vieles in Planung, smile

********************************************
...man wächst mit der Herausforderung...

frober

#227
Zitat von: rob am 07 April 2021, 11:50:58
@frober: Interessant. Danke für die Info.

Dass man das GW nicht zum Aktor machen soll, hatte ich zwischendrin auch mal beiläufig gelesen. Aber so drastische Wirkung hätte ich nicht erwartet. Höchstens, dass das Relais halt mitschaltet, auch wenn ein Node gemeint war.

VG
rob

Das mit dem Mitschalten kannst du über eine noch nicht verwendete ChildID verhindern.
Wie eben schon geschrieben, hilft es vielleicht die empfangenen Nachrichten besser zu filtern.
Raspi 3b mit Raspbian Buster und relativ aktuellem Fhem,  FS20, LGW, PCA301, Zigbee, MQTT, MySensors mit RS485(CAN-Receiver) und RFM69, etc.,
einiges umgesetzt, vieles in Planung, smile

********************************************
...man wächst mit der Herausforderung...

frober

Nach den ganzen Erkenntnissen, sollte das Wiki angepasst werden.
Ich werde mich Mal anmelden und die Tage versuchen etwas einzubringen.

Wäre toll, wenn die  Grafiken auch angepasst werden könnten.
- CAN nur mit 120 Ohm am jeweiligen Ende.
- Terminierung auf 12 oder 24V nur für RS485 (MAX485 etc.)
Raspi 3b mit Raspbian Buster und relativ aktuellem Fhem,  FS20, LGW, PCA301, Zigbee, MQTT, MySensors mit RS485(CAN-Receiver) und RFM69, etc.,
einiges umgesetzt, vieles in Planung, smile

********************************************
...man wächst mit der Herausforderung...

Beta-User

Zitat von: frober am 07 April 2021, 12:11:58
Nach den ganzen Erkenntnissen, sollte das Wiki angepasst werden.
Ich werde mich Mal anmelden und die Tage versuchen etwas einzubringen.
Gerne! Werde mich da aber erst mal zurückhalten, ich habe im Moment wohl einfach zu wenig aktuelle praktische und theoretische Kenntnisse...
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

rob

Zitat von: rob am 29 März 2021, 21:52:21
Mein GW ist nun fertig. Die erste Node fast. Ich wollte eigentl. berichten, wenn wenigstens die zwei stabil zusammenarbeiten. Aber ich warte mal wieder auf eintrudelnde Bestellungen...
So, Krams ist da und verbaut. Node konnte ich gestern nach div. Tests erfolgreich in Betrieb nehmen  :D Hat ja nur ein Jahr gedauert  ::) Aufbau beruht auf Empfehlungen von Ranseyer u. Beta-User. HW-serial, 24V mit Widerstandsnetzwerk, MCP-Module, Abschluss m. 120Ohm nur am Node, ferngespeist (analog letztes Bild im Wiki).
Die Node löst meinen EspEasy am Eingang ab (5 Aktoren, 6 Sensoren, Wiegand-Rfid). Läuft bis jetzt stabil u. reagiert schön flink.
Next Step ist dann die Garagensteuerung abzulösen. Mal schauen, wie lange das wieder dauert  ;D

Viele Grüße
rob


frober

Zitat von: rob am 09 April 2021, 09:37:14
So, Krams ist da und verbaut. Node konnte ich gestern nach div. Tests erfolgreich in Betrieb nehmen  :D Hat ja nur ein Jahr gedauert  ::) Aufbau beruht auf Empfehlungen von Ranseyer u. Beta-User. HW-serial, 24V mit Widerstandsnetzwerk, MCP-Module, Abschluss m. 120Ohm nur am Node, ferngespeist (analog letztes Bild im Wiki).
Die Node löst meinen EspEasy am Eingang ab (5 Aktoren, 6 Sensoren, Wiegand-Rfid). Läuft bis jetzt stabil u. reagiert schön flink.
Next Step ist dann die Garagensteuerung abzulösen. Mal schauen, wie lange das wieder dauert  ;D

Viele Grüße
rob

Das mag auf kurzer Distanz funktionieren.
Wichtig ist zw. CanH und CanL ~0V und H-VCC/L-GND ~2,5V

Bei mir hat das Widerstandsnetzwerk die Werte verzerrt. Ich habe NUR 120Ohm an beiden Enden.
Raspi 3b mit Raspbian Buster und relativ aktuellem Fhem,  FS20, LGW, PCA301, Zigbee, MQTT, MySensors mit RS485(CAN-Receiver) und RFM69, etc.,
einiges umgesetzt, vieles in Planung, smile

********************************************
...man wächst mit der Herausforderung...

rob

@frober:
Hast Du Erfahrungswerte sammeln können wieviel als "kurz" gilt und ab wann ungefähr mehr Aufwand nötig wird?
Aktuell habe ich ja nur eine Node mit ca. 16m Leitung. Wenn die nächste hinzukommt, würde sich die Leitungslänge schon verdoppeln. Wäre natürlich spannend eine Art "best practise" im Wiki zu haben - wie Du schon geschrieben hattest ;)

Vielen Dank und beste Grüße
rob

frober

Zitat von: rob am 09 April 2021, 11:30:33
@frober:
Hast Du Erfahrungswerte sammeln können wieviel als "kurz" gilt und ab wann ungefähr mehr Aufwand nötig wird?
Aktuell habe ich ja nur eine Node mit ca. 16m Leitung. Wenn die nächste hinzukommt, würde sich die Leitungslänge schon verdoppeln. Wäre natürlich spannend eine Art "best practise" im Wiki zu haben - wie Du schon geschrieben hattest ;)

Vielen Dank und beste Grüße
rob

Ich habe ca. 45m. Wo die Grenze ist kann ich nicht beurteilen.
Die CAN- Receiver können im Highspeed 1Mbit/s ohne Widerstandsnetzwerk! Nur die 120Ohm sind wg. Reflektionen wichtig.
Das Kabel sollte verdrillt sein, ist bei mir nicht 'perfekt' -> Telefonkabel.

Lt. Wiki sind so bei 500kbit/s bis zu 100m, bei 125kbit/s 500m möglich.
Die Geschwindigkeit wird meines Wissens nach automatisch ausgehandelt.
Raspi 3b mit Raspbian Buster und relativ aktuellem Fhem,  FS20, LGW, PCA301, Zigbee, MQTT, MySensors mit RS485(CAN-Receiver) und RFM69, etc.,
einiges umgesetzt, vieles in Planung, smile

********************************************
...man wächst mit der Herausforderung...

frober

So, mal eine Zusammenfassung von mir:

Meine Nodes laufen stabil, kein Ausfall, zuverlässige Übertragung usw.

Aufbau:
Gateway ohne Zusatzfunktion (loop() ist leer)
4 Nodes, Gesamtlänge ca. 45m


  • CAN-Tranceiver MCP2551, Rs-PIN mit 10k auf Masse (kein Highspeed)
  • Terminierung 120 Ohm zw. CANL und CANH, mehr nicht!
  • MY_RS485_BAUD_RATE 19200
  • MY_RS485_SOH_COUNT 3
  • HW- und SW-Seriel gemischt
  • 8-adriges Telefonkabel (mäßig verdrillt), darüber laufen RS485, 12V DC und 24V AC, Schirmung einseitig auf GND
  • Versorgung der Nodes mit 12V, GW mit 5V über ein Netzteil
  • Masse von GW und Nodes, durch die Spannungswandler, komplett verbunden, auch die 5V-Seite

Mit dieser Konfiguration hatte ich, durch einen nachträglich eingebauten Bug 8), mehrere Datenübertragungen pro Sekunde über mehrere Tage ohne Probleme.


Bzgl. MCP2551 und High-Speed (Rs-PIN auf VCC) das betrifft auch den TJA1050 (kann nur High-Speed), das funktioniert evtl. mit vernünftig geschirmten und verdrillten Kabel (z.B. Cat7).
Raspi 3b mit Raspbian Buster und relativ aktuellem Fhem,  FS20, LGW, PCA301, Zigbee, MQTT, MySensors mit RS485(CAN-Receiver) und RFM69, etc.,
einiges umgesetzt, vieles in Planung, smile

********************************************
...man wächst mit der Herausforderung...

pikim

Ich habe die Diskussion bzgl. der Verwendung von CAN-Transceiver-Chips anstelle RS485-Transceivern mit Interesse verfolgt und plane das auch so zu tun. Nutzt ihr hier denn die Vorteile der entsprechenden Bauteile? Da das MySensors-Protokoll das nicht berücksichtigt wohl nicht, oder habe ich was übersehen?

frober

Erst einmal Willkommen im Forum.

Welche Vorteile meinst du?
Die Fehlerverarbeitung bezgl. Störfaktoren machen die Chips selbständig.
Ein Vorteil ist die einfachere Terminierung.

Ansonsten, MySensors unterstützt die CAN-Receiver mWn nicht.
Raspi 3b mit Raspbian Buster und relativ aktuellem Fhem,  FS20, LGW, PCA301, Zigbee, MQTT, MySensors mit RS485(CAN-Receiver) und RFM69, etc.,
einiges umgesetzt, vieles in Planung, smile

********************************************
...man wächst mit der Herausforderung...

pikim

Wenn mit RS485-Transceivern Kollisionen auftreten, kannst du das auf Sender-Seite nicht erkennen. Bzw. nur durch Ausbleiben eines Acknowledge oder durch die Rückmeldung eines anderen Busteilnehmers. Mit CAN-Transceivern kann der Sender es selbst feststellen, indem er auf dem Rx rückliest und vergleicht. Setzt aber eben voraus, dass das in der SW so umgesetzt ist.

Welche Fehlerverarbeitung meinst du?

frober

Zitat von: pikim am 12 Dezember 2021, 16:37:00

Welche Fehlerverarbeitung meinst du?

Störfaktoren auf der Leitung durch z.B. "Elektrosmog".  Bei Kollisionen bin ich mir nicht sicher, da war ich der Meinung, dass die das auch selbständig machen.
Raspi 3b mit Raspbian Buster und relativ aktuellem Fhem,  FS20, LGW, PCA301, Zigbee, MQTT, MySensors mit RS485(CAN-Receiver) und RFM69, etc.,
einiges umgesetzt, vieles in Planung, smile

********************************************
...man wächst mit der Herausforderung...

pikim

Hinsichtlich Störungen dürften die nicht viel besser sein als RS485-Treiber. Kollisionen behandeln sie nicht. Das macht der CAN-Controller (z.B. MCP2515 via SPI oder die im Mikrocontroller verbauten).