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

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

Vorheriges Thema - Nächstes Thema

Ranseyer

#180
Zitat von: Beta-User am 16 Mai 2020, 09:38:34
- Wer sinnvolle Ergänzungen/Querverweise hat und die notwendigen Rechte, direkt ins Wiki zu schreiben: just do it (v.a. @Ranseyer), ich fühle mich schlicht nicht in der Lage, das "unfallfrei" ins Wiki zu übersetzen, was da zu


Hi,

ich halte mich aus dem Thread /Wiki in letzter Zeit weitgehend raus. Einerseits ist für mich alles geklärt. Anderseits teile ich nicht alle Meinungen hier, und habe auch relativ wenig Zeit.

Prinzipiell ist jeder Beitrag und jede Aktivität super.


-Aber RS485 hat m.E. mit MySensors nichts zu tun. Das wäre absolut einen eigenen Wiki Artikel wert.
-Leitungen für "Funkverbindungen" sollen durchgängig den selben Wellenwiderstand haben und auch unbedingt mit genau diesem terminiert werden, dann gibt es nirgendwo Reflektionen.
-RS485 betreibt man nicht mit 1MBit, dann würde ich es doch gleich mit 9600 / 19200 Baud betreiben. Anfangs in diesem Thread habe ich mal berechnet: 800-900m bei 19200 Baud funktionieren ohne die 120 Ohm Abschlusswiderstände. Die kann man also einfach weglassen.
-Problem bleibt: Die Busleitung verläuft lange und parallel. Somit bildet die Leitung einen Kondensator. Wenn also die Leitung umgepolt werden soll, muss diese geladen oder entladen werden. Das kostet Zeit, die Signale "verwaschen" (Signalflanken gehen mehr und mehr verloren) und es bringt den RS485 Chip ggf. auch ein bisschen mehr zum schwitzen.
-Somit ist für mich die beste und einfachste Lösung das Widerstandsnetzwerk analog zu Homematic-Wired an eine beliebige Stelle im Bus zu platzieren. Damit wird dann der Treiber-Chip unterstützt und die Leitungen schneller und vor allem sicherer auf Ihre Pegel gezogen.
-Da ich kein religiöser Prediger bin, reicht es mir dass ich selbst damit zufrieden bin. Falls allerdings jemand fragen wollte, würde ich jedem genau diese Methode empfehlen. Zumindest bei 24V ist die HM-Wired Variante nicht nur tausendfach erbrobt. Die 12V Variante ist allerdings relativ eng davon abgeleitet: https://wiki.fhem.de/wiki/Easy-RS485-Bus#Terminierung (Hier finden sich die Widerstandswerte für 12 + 24V)

PS: Das sollte alles zutreffen unabhängig vom RS485 / CAN Chip...
FHEM mit FTUI. Homematic-Funk für Thermostate und Licht. MySensors als Basis für eigene HW.
Zentrale ist der MAPLE-CUL mit RFM69+HModUART-AddOn.
Doku zu meinen Projekten: Github/Ranseyer. Platinen falls verfügbar gerne auf Anfrage.
Support: gerne wenn ich Zeit+Lust habe im Forum. Nicht per PN!

Beta-User

@Ranseyer: Danke nochmal für den Hinweis auf die "Easy"-Terminierung. Scheint mir auch (sehr) valide, habe daher jetzt einen Hinweis auf den ganzen Artikel im Guide reingenommen (da könnte man die Baustelle mal abbauen, oder?).

Zitat von: Schotty am 17 Mai 2020, 10:26:24
Nein, habe ich aber doch so auch nie behauptet/gesagt?!
Wer hatte behauptet, du hättest was mit dem "outdated"-Hinweis zu tun ;D ?

Was die Austauschbarkeit angeht: Da die CAN-Transceiver ganz andere typische Anwendungfelder haben, ist mMn. nicht unbedingt sichergestellt, dass die Nachfolger wirklich auch mit den niedrigeren Baudarten laufen. Daran hatte der Autor des Hinweises auf die "minor changes" uU. gar nicht gedacht... (Wir werden sehen ;D .)
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

Schotty

Zitat von: Beta-User am 18 Mai 2020, 10:13:34
Wer hatte behauptet, du hättest was mit dem "outdated"-Hinweis zu tun ;D ?

Naja, das:
Zitat von: Beta-User am 17 Mai 2020, 07:39:13
Was die "verwende den Nachfolger"-Frage angeht: Es ist ok, wenn der Hersteller sagt, er hätte was neues (stromsparenderes, btw), und dessen Verwendung empfiehlt, aber das heißt doch noch lange nicht, dass die alten Murks waren, oder?
klang für mich so, als wenn das auf den Satz "der wird früher oder später bspw. auch darauf stoßen, dass die MCP2551er eigtl nicht mehr verwendet werden sollten, sondern die Nachfolger MCP2561 und MCP2562 eingesetzt werden sollten" in meinem langen Geschreibsel davor bezogen gewesen wäre. Aber dann ist ja alles gut ;)

Beachten sollte man bei einem drop-in-replacement für die MCP2551er m.A.n. noch die jeweils geänderten Funktionen von Pin 5 bei den MCP2561/2ern und damit einhergehende etwaige Änderungen an der Schaltung, aber das ist ja vermutlich auch nichts neues, wenn man sich das Migration-Sheet und die Datenblätter ansieht.
Dann mal viel Spaß beim Testen, ich bin gespannt..   
Handbuch zur BSB-LAN Hard- & Software (Anbindung v. Heizungsreglern, u.a. von Brötje & Elco):
https://1coderookie.github.io/BSB-LPB-LAN/

rob

#183
Anbei werfe ich mal diese Bilderchen in den Ring. Steckbretter sind weg und KISS as possible  ;D  Ins Wiki kann ich es auch reinsetzen, falls gewünscht. Ansonsten kann ich die Übersichten noch etwas reifen lassen.

Ich habe die anderen zwei Posts mit den Bildern auf Draft gesetzt. Dort wollte ich nicht weiter editieren, weil man da sonst nicht mehr durchsieht.

Viele Grüße
rob


Beta-User

So ist es auch hübsch!

Inhaltlich:
- Kannst du die Verbindung DE-RE optisch besser hervorheben? Das geht mMn. etwas unter, wenn die über das MAX-Modul läuft, von oben her als "normale" Kabelabzweigung wäre vermutlich klarer.
- Irgendwie ist mir R7 an "Node 1" entgangen. Der sollte da selbstredend auch noch weg (dto. der etwas verwirrende Hinweis in der CAN-Transceiver-Variante).
- Die Hinweise auf "Nano" sind teilweise komisch, da (in der Regel) ein Pro Mini abgebildet ist (dto. in der CAN-Variante, da ist bei der letzten Pro Micro genannt).

Wunsch:
Die MAX-Variante mit dem Widerstandsnetzwerk wie von @Ranseyer vorgeschlagen. Dann kommen (nach meinem Verständnis) _alle_ Widerstände von den Modulen, und es muß einen (? In https://wiki.fhem.de/wiki/Easy-RS485-Bus sind zwei erwähnt?) Busabschluss geben, wobei @12V dann entsprechend meinen bescheidenen Physik-Kenntnissen statt der 22k 11k stehen müßten? (@rob: Eilt nicht, kannst du ja ggf. auch austesten, wenn die CAN-Transceiver ohne R da sind.).
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

Es fällt mir nicht leicht die Infos auf die Reihe zu bringen. Einerseits alle extra Widerstände weglassen und nix weglöten (plug'n'play, nicht verwirrend), andererseits Widerstände bzw. Widerstandsnetzwerk einbauen (wofür verbaute R's weg müssten, wenn max485-Module im Einsatz). Ich versuch es trotzdem mal ;)

Hatte hin und her überlegt, R7 an Node1 zu belassen und im CAN-Schema R1/R2 wegzulassen. Andererseits sind im Orig-Wiki-Bild Hinweise, R7 am Anfang/Ende zu lassen und von Zwischen-Nodes R7 zu entfernen. Hab mich nicht getraut und doch bildlich u. textlich am Wiki-Original orientiert.

Zitat von: Ranseyer am 17 Mai 2020, 10:51:58
Anfangs in diesem Thread habe ich mal berechnet: 800-900m bei 19200 Baud funktionieren ohne die 120 Ohm Abschlusswiderstände. Die kann man also einfach weglassen.
...PS: Das sollte alles zutreffen unabhängig vom RS485 / CAN Chip...
OK weglassen. Müsste fürs MAX-Schema dann gelten, dass Einsteiger doch überall R5-R7 runterlöten und stattdessen drei Widerstände 4K7, 5K6 und 22K (f. 24V) "irgendwo" einbauen sollen (CAN analog, nur dass da nix abgelötet werden muss)? Nackte max485/487 sind ja kein plug'n'play.
"Irgendwo" bedeutet wahrscheinlich egal, ob am Anfang, Ende oder in der Mitte vom Bus. Vorschlag: am GW, weil die Nodes meist mit Sensorik "voller" sind.

Zitat von: Ranseyer am 17 Mai 2020, 10:51:58
Die 12V Variante ist allerdings relativ eng davon abgeleitet: https://wiki.fhem.de/wiki/Easy-RS485-Bus#Terminierung (Hier finden sich die Widerstandswerte für 12 + 24V)
Die 12V-Variante hab ich dort leider nicht gefunden. Ansonsten hat Beta-User bereits 11K vorgeschlagen (ca. 4V). Vielleicht gingen auch 8K2Ohm (ca. 4,9V)? Ich hab keine Ahnung.

Egal welcher Widerstand für 12V gelten soll: 24V und 12V wird in einer Grafik ggf. verwirrend. Mit vier Grafiken lösbar: 12V MAX+CAN; 24V MAX+CAN (ggf. zu viel im Wiki)?

Hat natürlich Zeit. Ich geh denken und teste erstmal ein wenig  :)

Viele Grüße
rob

Schotty

Zitat von: rob am 19 Mai 2020, 21:46:51
Hatte hin und her überlegt, R7 an Node1 zu belassen und im CAN-Schema R1/R2 wegzulassen. Andererseits sind im Orig-Wiki-Bild Hinweise, R7 am Anfang/Ende zu lassen und von Zwischen-Nodes R7 zu entfernen. Hab mich nicht getraut und doch bildlich u. textlich am Wiki-Original orientiert.
OK weglassen.

Das ist kein 'Original', das ist nur ne Skizze von mir und keineswegs in Stein gemeißelt! ;)
Ich finde deine Abbildungen schicker, also wenn du Zeit und Lust hast, dann kannst du gerne eine Neuauflage von meinem Bild mit den Nanos machen und es damit ersetzen, dann sehen alle gleich aus!
Ich hatte damals auf die Schnelle auch nicht das MAX485-Bild gefunden, was du benutzt hast und daher unten nochmal die Bezeichnungen bzgl DE etc hingeschrieben, bei deinen Bildern sind die ja bereits auf den Modulabbildungen vorhanden. Ist auch nochmal übersichtlicher. 
Handbuch zur BSB-LAN Hard- & Software (Anbindung v. Heizungsreglern, u.a. von Brötje & Elco):
https://1coderookie.github.io/BSB-LPB-LAN/

Beta-User

Zitat von: rob am 19 Mai 2020, 21:46:51
Es fällt mir nicht leicht die Infos auf die Reihe zu bringen. Einerseits alle extra Widerstände weglassen und nix weglöten (plug'n'play, nicht verwirrend), andererseits Widerstände bzw. Widerstandsnetzwerk einbauen (wofür verbaute R's weg müssten, wenn max485-Module im Einsatz). Ich versuch es trotzdem mal ;)
Hatte hin und her überlegt, R7 an Node1 zu belassen
Vorab: R7 an Node 1 sollte (in V 1.3) noch weg. Es dürfte zwar bei 3*120Ohm noch funktionieren, aber das ist nicht entsprechend Spec. Die CAN-Variante paßt soweit und ist seit gestern auch schon im Wiki eingebaut. Ausdrückliches Danke dafür, finde das auch sehr schick (und zu 100% informativ)!

Was das Rumpfriemeln an den MAX-Modulen angeht: Ja, das ist und bleibt für den Einsteiger irritierend, ganz egal, wie rum man das darstellt oder angeht. "Komplette Module" für p&p kaufen und dann was weglöten...? Ist nicht das, was sich der komplette noob erhofft, aber besser was weglöten, wie Hühnerfutter suchen müssen ;D .

MMn. ist es so: zum erste Erfahrungen sammeln, nimmt man die "fertigen" MAX-Module. Klappt das soweit (auf dem Steckbrett), kann man sich dran machen, Nodes "für's echte Leben" zu konzipieren. Und da kommen dann z.B. die Platinen von @Ranseyer und das Widerstandsnetzwerk ins Spiel: Da verwendet man nämlich "nackte" IC's, packt ggf. noch einen Kondensator im Miniaturformat dazu und verstöpselt das ganze mit sauber gecrimpten Steckern ;) . Auch das ist Easy, aber wer diese Variante haben will, muß und wird sowieso anders planen wie der, der nur "irgendwo" mal eben schnell eine "normale" Funk-MySensors-Node hinpacken will bzw. muß.

Zitat
stattdessen drei Widerstände 4K7, 5K6 und 22K (f. 24V) "irgendwo" einbauen sollen (CAN analog, nur dass da nix abgelötet werden muss)? Nackte max485/487 sind ja kein plug'n'play.
"Irgendwo" bedeutet wahrscheinlich egal, ob am Anfang, Ende oder in der Mitte vom Bus. Vorschlag: am GW, weil die Nodes meist mit Sensorik "voller" sind.
Irgendwo ist wahrscheinlich egal; die geringsten Verluste hat man vermutlich, wenn es beim Netzteil wäre. Irgendwie ist "Busabschluss" verwirrend, das deutet von der Wortwahl her auf das Ende der Kabelstrecke hin...
ZitatDie 12V-Variante hab ich dort leider nicht gefunden. Ansonsten hat Beta-User bereits 11K vorgeschlagen (ca. 4V). Vielleicht gingen auch 8K2Ohm (ca. 4,9V)? Ich hab keine Ahnung.
(Das war ein Schludrigkeits-Rechenfehler, die ca. 8k sind selbstredend passender.)

Zitat
Egal welcher Widerstand für 12V gelten soll: 24V und 12V wird in einer Grafik ggf. verwirrend. Mit vier Grafiken lösbar: 12V MAX+CAN; 24V MAX+CAN (ggf. zu viel im Wiki)?
Agreed, eine Variante (iVm. dem Verweis auf den Hauptartikel zum "Easy-Bus") ist mMn. völlig ausreichend, kannst dir gerne aussuchen, ob 12V oder 24V.

Und wie bereits geschrieben: das muß nicht sofort im Wiki landen, es reicht auch später noch; wer grade Interesse an dem Thema hat, liest hier ja sowieso mit...
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: Schotty am 13 Mai 2020, 14:17:41
Ich hätte auch meine Fritzing-Datei einstellen ... aber das scheint ja nicht mehr nötig zu sein. Falls doch gewünscht: Bitte eben melden.. ;)
Hallo Schotty.

Wär super, dann würde ich das Design vereinheitlichen :) Ich möchte deshalb gern Dein Angebot annehmen und Dich bitten, die Datei einzustellen.
Mit der anderen Übersicht mache ich dann weiter und würde den einigermaßen stabilen Stand auch meinerseits zur Verfügung stellen wollen.

Vielen Dank und beste Grüße
rob

Schotty

Handbuch zur BSB-LAN Hard- & Software (Anbindung v. Heizungsreglern, u.a. von Brötje & Elco):
https://1coderookie.github.io/BSB-LPB-LAN/

rob

Ich hab Schottys File reingenommen und die zwei Versionen mit Widerstandsnetzwerk erstellt (12V u. 24V). @Schotty: Vielen Dank :)

Dummerweise komme ich nicht zum Testen der MCP-Module, weil meine Step-Down-Wandler irgendwo zw. CN und DE festsitzen. Jedenfalls haben die MCP-Module tatsächlich je einen Widerstand und eine Kapazität an CANL u. CANH hängen.
Weil die zwei Widerstandswerte mit je 100Ohm recht klein sind, müssten man sie auf den Modulen belassen können, ohne am Widerstandsnetzwerk ändern zu müssen. Die beiden Kapazitäten liegen bei gemessen knapp 1nF - sollten auch nicht weiter stören.

Viele Grüße
rob

Beta-User

Thx, hab's (ohne eingehende Prüfung im Detail, was die Widerstandswerte angeht) im Wiki in die Gallerie aufgenommen und in dem Zuge dann auch das evtl. verwirrende Foto meines Breadboard-GW's rausgeworen.

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

Die Widerstandswerte hatte ich aus Ranseyers Wiki-Eintrag rausgeklaut (https://wiki.fhem.de/wiki/Easy-RS485-Bus) und für 12V wie hier bespr. der 22K durch 8.2K ersetzt. Sollte was nicht passen ändere ich es natürlich ab.

Anbei nun die Fritzing-Dateien, aus welchen ich die Bilder generiert hatte (gepflegt ist die Steckbrettsicht). Das erste Bildchen der Galerie könnte m.E. weg, weil ich das eigentl. durch MySensors_RS485_Max485_SoftSerialv1.3.png ersetzt angeboten hatte. Sicherheitshalber nochmal anbei.

Viele Grüße
rob

Beta-User

Ups, sorry, die V 1.3 ist mir irgendwie durchgerutscht.

Jetzt ist es drin, und ich habe es auch drin gelassen, denn in der Variante mit den LED's sieht man die DE-RE-Verbindung nicht ganz so deutlich.

(Nett, wie das jetzt so hübsch einheitlich nebeneinander dargestellt ist. Fehlen nur noch deine step-down, damit du auch praktisch loslegen kannst :) ).
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

frober

Hi,

wie habt ihr den Bus mit den MCP2551 nun laufen?

Mein Bus ist teils HW, teils serial mit 19200 Baud.

- Mein Testaufbau mit nur 2x 120 Ohm hat funktioniert (Länge ca. 1m).
- Das GW mit einer 20 cm entfernten Node lief ohne Terminierung problemlos.
- Die Nodes, eine Richtung ca. 12m und andere Richtung ca. 25m haben geredet (beidseitig 120 Ohm). Je weiter weg, um so weniger kam aber an (4 Nodes in Reihe, GW hängt dazwischen).
- Beim GW nur mit der 20 cm entfernten Node und der entfernten Termination (andere Nodes ohne Strom), hat sich der Bus aufgehängt.
- Umbau des GWs auf 12V und entsprechende Terminierung aus Wiki, redet nicht einmal die 20cm entfernte Node mehr.

Aktuell ist alles auf 12V-Versorgung. falls machbar würde ich gerne die Terminierung wieder auf die 5V beziehen, so dass ich die anderen Nodes auch mal abschalten kann. GW kann mit 5V und 12V.

@Beta-User: Du hast noch die 2x 120 Ohm am Ende und je 2 kOhm CanH -> 5V, CanL -> GND?


Danke und Gruß
Bernd
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...