Forum: Mikrocontroller und Digitale Elektronik RS485 Sterntopologie


von Christian S. (christian_s123)


Angehängte Dateien:

Lesenswert?

Liebe alle,

ich versuche derzeit, ein kleines Projekt mit Arduino und MAX485 
umzusetzen - konkret eine kleine, DMX-ähnliche Lichtsteuerung. Leider 
ist die Verkabelung schon fest vorgegeben, so dass ich mit einer 
Sterntopologie arbeiten muss - wie schon öfter im Forum diskutiert 
scheint das zwar mit niedrigen Datenraten einigermaßen zu funktionieren, 
trotzdem würde mich interessieren, wie man es "sauber" aufbauen kann.

Bei mir wird der Master immer nur senden (nie empfangen), gleichzeitig 
werden die Slaves immer nur empfangen (und nie senden). Die Daten werden 
regelmäßig (alle 1/10 s) übertragen und mit CRC gesichert, so dass es 
für den Slave nicht schlimm ist, wenn mal ein Datenpaket verpasst / 
nicht korrekt empfangen wird.

Daher die Frage, ob eine Schaltung wie im Anhang gezeichnet, möglich 
ist: Links kommt das RS485-Signal vom Master, wird von einem MAX485 
empfangen und wieder über ein paar MAX485 ausgegeben - damit könnte man 
die einzelnen Stern-Stränge separieren und damit den Abschlusswiderstand 
bei den empfohlenen 120 Ohm halten? Würde diese Schaltung funktionieren?

Für eine Rückmeldung schonmal vielen herzlichen Dank,
Christian

von Frederic S. (Gast)


Lesenswert?

Hallo Christian,

Das funktioniert grundsätzlich so, jeder DMX Splitter funktioniert so. 
Du solltest an jedem IC einen 100nF Keramikkondensator sehr nah am IC 
anschließen, Stichwort Abblockkondensator.

Beide Enden der DMX Kette brauchen einen Terminierungswiderstand, Du 
brauchst also an jedem Sender eine 120 Ohm Terminierung.

Achte auf eine vernünftige Stromversorgung, ordentlichen Elko etc., pro 
Ausgang fließen bis zu 250mA (bei Kurzschluss der Leitungen A und B). Im 
Sendebetrieb immerwieder kurze Pulse.

Mein selbstgebauter DMX Splitter hat 2 Ausgänge, Spannungsversorgung mit 
5-24V und Signal LED auf 45x45mm.
Viele DMX Splitter haben einen Terminierungsschalter.
Ist vielleicht für dich eine Anregung.

Frederic

von robotron (Gast)


Lesenswert?

Moin,

ja - das funktioniert so. Wenn es mehr Transceiver werden, müsstest Du 
zwischen RO des Eingangs-MAX485 und DI der Ausgangs-MAX485 noch zwei 
oder mehr Buffer setzen um die ganzen DI Pins zu treiben.

Ausbaupotenzial aus der Praxis:

1) Isolierung der Ausgänge und des Eingangs
   - jeder MAX485 wird über einen isolierenden DC/DC versorgt
   - Optokoppler vor DI

2) ESD Schutz
   - TVS Dioden zwischen A/B und GND
   - 10-47R Serienwiderstand zwischen Steckverbinder und Transceiver A/B

3) Bias-Widerstände/Terminierung (falls kein DMX Kabel am Eingang oder 
Bus Idle)
   - 390R von A nach VCC
   - 390R von B nach GND
   - 120R zwischen A und B

Bei Verwendung des MAX485 würde ich Dir insbesondere den letzten Punkt 
empfehlen. Sonst geht die Party erst richtig los, wenn Du Dein DMX Pult 
ausschaltest. ;)

von georg (Gast)


Lesenswert?

Christian S. schrieb:
> gleichzeitig
> werden die Slaves immer nur empfangen (und nie senden)

Hardwaremässig funktioniert das, aber jeder Client empfängt alles. Man 
muss also mit einer Adressierung arbeiten, damit nur der gewünschte 
Client reagiert.

Georg

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.