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

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

Vorheriges Thema - Nächstes Thema

Brasletti

Evtl. erst mal mit hohem Stromverbrauch (ohne Kondensator) testen und dann mit verschiedenen Kondensatoren ausprobieren.

Ranseyer

Zitathttps://www.mikrocontroller.net/articles/Wellenwiderstand#AC-Terminierung

Das ist aber ein heißes Eisen...

Denke man könnte das bei künftigen Platinen wie folgt einplanen: ein geschlossener SMD Jumper zum aufschneiden über dem Platz eines 0805 Kondensators.
Also im Normalfall nicht genutzt, und auch kein Bedarf eine Brück zu schliessen wenn man es traditionell machen will.

ZitatZum Stromverbrauch hab ich noch was gefunden von Maxim https://pdfserv.maximintegrated.com/en/an/AN1090.pdf
Danke, das ist cool!
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!

Brasletti

AC-Terminierung ist denke ich auf jeden Fall experimentell, daher auch der Hinweis erst mal ohne testen!
Umsetzen würde ich ich es auch wenn da mehr Interesse besteht bzw. auf künftigen Platinenversionen wie du sagst mit einem SMD Jumper.

Aber wie du auf dem Diagramm auf Seite 8 siehst gibt es da doch Stromsparpotential ;)

Beta-User

Zitat von: Ranseyer am 23 Februar 2018, 14:48:13
Das ist aber ein heißes Eisen...
Denke man könnte das bei künftigen Platinen wie folgt einplanen: ein geschlossener SMD Jumper zum aufschneiden über dem Platz eines 0805 Kondensators.
Also im Normalfall nicht genutzt, und auch kein Bedarf eine Brück zu schliessen wenn man es traditionell machen will.
Die Jungs von eQ-3 werden schon ihre Gründe haben, warum die für HM-Wired wieder was anderes und eine ganz eigene Art der Busterminierung machen ::) .

Da aber der benötigte Kondensatorwert ziemlich stabil zu sein scheint, spricht eigentlich alles dafür, das wie vorgeschlagen erst mal als Option vorzusehen und dann - sollte sich das als zuverlässig erweisen - kann man immer noch hergehen, und das für neue Platinen standardmäßig öffnen und den Kondensator als Standard vorsehen (bzw. wer will, kann ja dann immer noch eine Lötbrücke drüber legen).

Wenn ich (hoffentlich am WE) dazu komme, das Busende und das GW umzubauen, mache ich das jedenfalls so, dass als Option auch der Kondensator noch Platz findet.

Was die LC-Tech-Modulen angeht: Neben den MAX und den besprochenen drei Widerständen sind da auch noch zwei Kondensatoren mit drauf, und dann noch je ein 1k-Widerstand zwischen den 3/4 Arduino-PINs und den Ein- und Ausgängen.
Da ich bisher die Module benutzt habe, aber auch noch separate MAX487 rumliegen habe und das GW eh' nochmal anfassen muß und die Empfehlung sein soll, die Module nicht zu verwenden:
- sollte ich auch wieder 1k zwischen Arduino-Pin und MAX einplanen? (Sorry, steht bestimmt irgendwo anders geschrieben...)
- sollte man noch was wegen der Kondensatoren tun? Also auf den vorhanden Modulen noch was runterwerfen bzw. (außerhalb des Abschlußblocks) noch was zusätzlich vorsehen?
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

Brasletti

Zu den 1K Widerständen sag ich jetzt mal, da müsste man im mySensors Code nachschauen, wahrscheinlich werden die internen Pullups des Atmegas verwendet. Sollte das der Fall sein könntest du die auch von deinen Modulen runter schmeißen. 

Ich würde sie erst mal drauf lassen, auf dieser Seite (uC<->Max487) hat ja alles funktioniert.
Den Kondensator kannst du drauf lassen.

Ranseyer

Zitatund die Empfehlung sein soll, die Module nicht zu verwenden:
Das hab ich voerst in dem Thread zu einem universellen Bus geschrieben.

Grund: Man kann kaum sinnvoll 10 solche Module an einen Bus hängen.

1. Somit sehe ich keinen Vorteil mehr an dem Modul wenn man eh etwas änder muss.
2. Müsstest Du wenn du die Teile trotzdem nutzen willst mal einen kompletten Schaltplan malen (oder suchen) um diese restlos zu verstehen, ansonsten weisst du bei einem Fehler nie woran es liegt.
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!

Brasletti

Schaltplan gibt es auf jeden Fall hier http://yourduino.com/docs/MAX485-Module-Sch1.jpg
Die 1K Wiederstände sind Pullups und die Kondensatoren wohl zur Spannungsstabilisierung. Da kennt sich Ranseyer besser aus!

Beta-User

(Jetzt hat sich das wieder überschnitten, ihr seid aber schnell)...

Die 1k bleiben klar auf den Modulen, aber evtl. baue ich das Modul an der letzten Node aus und ersetze es durch einen kompletten "Eigenbau".

Um die Auslegung dieses Eigenbaus ging es mir eigentlich, und dabei stellen sich die Fragen, ob die 1k wieder drauf sollen und ggf. (welche?) Kondensatoren. Entsprechendes gilt, wenn ich das HW-Serial-ProMicro-GW doch nochmal anfasse.
Zu den Widerständen: Da es Pullups sind und ich zu faul bin, den MySensors-Code mal eben so in der Tiefe zu analysieren (in /hal/transport/RS485/MyTransportRS485.cpp bzw. MyTransportHAL.h taucht jedenfalls nichts mit pullup auf), dürfte es zielführend sein, diese Widerstände vorzusehen, auch wenn sich anders verdrahtet zu sein scheinen, als ich das erst angenommen hatte.
Zu den Kondensatoren: Werde mal versuchen zu messen, mit was wir es zu tun haben. Vielleicht hat da jemand ja in dieselbe Richtung gedacht (der 2., der nur bei einer der Typen abgebildet ist, aber bei meinen immer drauf) dürfte die Spannungsversorgung stützen. Könnte also Sinn machen, das zu kopieren...


@Ranseyer
Was die LC-Tech-Module und die Skepsis dazu angeht:
(Noch einen) Schaltplan und weitere Infos gibt es hier: https://arduino-info.wikispaces.com/RS485-Modules
Solange es auch für Einsteiger "nur" darum geht, Widerstände runterzuwerfen ist das m.E. noch ok, und mehr als 32 Nodes wird auch kaum einer betreiben. Ist vermutlich (auch zum Debuggen) einfacher, als "Hühnerfutter" auf Platinen zu verteilen, deren Schaltplan man (noch) nicht verstandenen hat. Voraussetzung wäre aber, dass man sich bei mehr als drei Nodes dann einfach folgende drei Schritte machen kann:
- einen (komplizierteren) Busabschluß zusammenbauen,
- den 120Ohm am GW beibehalten und nur die anderen beiden eliminieren
- und beim Rest schlicht alle Widerstände R5-7 auslöten.

Das Umlöten auf MAX487 bzw. andere pinkompatible ist auch nicht sooo schwierig, habe ich als Groblöter auch hinbekommen...

Just my2ct
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

Ranseyer

Im Prinzip ist ja nur R7 mit den 120Ohm böse.

Alles andere unnötig (wenn im Arduino die Pins richtig konfiguriert sind).
Wobei 10 und 20KOhm ja recht hoch sind und kaum ins Gewicht fallen. (Aber 10*10KOhm bei 10 Modulen parallel wären waren halt nur noch 1KOhm und irgendwann mal gibts dann bestimmt Kummer ab ner gewissen Menge)

PS: Denke mit nett beschrifteten Platinen ist es einfacher. Aber wir sind ja ein freies Land...

PPS: Wenn man den Schaltplan studiert sieht man die die beiden Kondensatoren nichts mit dem Bus zu tun haben sonden nur die Versorgungsspannung etwas verbessern sollen. Die LED könnte auch weg, aber was solls...
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

War nicht böse gemeint, und mein Beitrag war zwei mal fast fertig, wodurch ich immer noch was angeflickt habe (das mit den Kondensatoren habe ich dann auch gesehen, aber wieder was löschen?)...

Die Idee, einfach zu handhabende Platinen zu haben ist gut!
Vor allem dann, wenn man nebenbei das Thema der Zahl der Teilnehmer noch verkleinert usw... Also weiter so!
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

Ranseyer

ZitatIm Prinzip ist ja nur R7 mit den 120Ohm böse.
Ähm, das war auch nicht böse gemeint!

Alles ist gut, und jeder soll bastel wie er will... !
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

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

Ranseyer

#27
Damit wir mal etwas diskutieren können hier mal je ein Bild des Signals vom Max487.
(GND ist natürlich zusätzlich zu A+B verbunden und die Messung jeweils gegen GND)

A) Das Signal ganz ohne Terminierung direkt am Sensor gemessen
B) Das Signal mit 150Ohm terminiert und mit je 330 Ohm nach GND und Plus gezogen

Da sieht man schon mal deutlich den Einfluss.
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!

Brasletti

Interessant finde ich das "null" Signal ohne Pullup/Pulldown.

Ich hab da auch noch was bezüglich der Kabel und dem spezifischen Wellenwiderstand gefunden:

Beispielhaft einige Werte für verschiedene Kabeltypen aus microcontroller.net:
-Koaxialkabel RG58 und RG174, 50Ω
-Koaxialkabel RG59, 75Ω;
-Twisted Pair CAT3/5/7 für Ethernet, 100Ω
-Flachbandkabel, 150Ω typ.
-Leiterbahnen auf Platinen mit 30...150Ω

Und noch ein Zitat von dort "Eine Leitung wird mit einem ohmschen Widerstand terminiert, welcher den gleichen Wert wie der Wellenwiderstand aufweist."

Meine Frage ist jetzt, ob es nicht Sinn macht auf 100Ω Terminierung (Pullup/Terminator/Pulldown:~330Ω/120Ω/330Ω) umzusteigen wenn wir uns einig sind Twisted Pair Kabel zu verwenden?

Berechnet mit http://dcs-bios.a10c.de/rs485-resistors.html

Ranseyer

Zitat"Eine Leitung wird mit einem ohmschen Widerstand terminiert, welcher den gleichen Wert wie der Wellenwiderstand aufweist."

So soll es sein. Aber 20% hin oder her...
Wenn ich mit 105Ohm rechne bei dem Online Rechner komme ich wieder auf 120Ohm...

Da wird es sich doch stärker auswirken wenn man korrekt beide Enden terminiert...  8)
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!