Forum: Mikrocontroller und Digitale Elektronik RS485 Terminierung/Kabel/Spannung


von Patrick (Gast)


Lesenswert?

Hallo,

ich komme aus der Informatik-Branche und habe nur sehr grundlegendes 
Elektronikwissen. Ich habe mir für ein kleines Home-Automation-Projekt 
ein paar Schaltmodule, die über den RS485-Standard kommunizieren, 
gebaut, die auf meinem Schreibtisch so weit funktionieren.

Jetzt gilt es, das zu installieren.

Um mir sehr viel Aufwand und Kabel zu ersparen, würde ich sehr viele 
Stichleitungen, also schon fast eine Sterntopologie in Kauf nehmen. Die 
maximale Teilstrecke ist ca. 80 Meter. Betrieben wird der Bus mit 9600 
Baud, die Geschwindigkeit kann ich aber noch um einiges verringern, 
sollte das einen Unterschied machen.

Kann ich hier 4-adriges Telefonkabel verwenden (A,B,GND,V+)? Muss ich 
diese Stichleitungen zwingend mit einem Abschlusswiderstand terminieren? 
("Ruhige" Umgebung und niedrige Bitrate/Länge; s. o.) Falls ja, wie 
berechne ich diesen Abschlusswiderstand?

Eine weitere Frage: Auf den Schaltmodulen befindet sich der folgende 5V 
Spannungsregler:

http://www.reichelt.de/ICs-KA-LF-/LF-50-CV/index.html?;ACTION=3;LA=444;GROUP=A214;GROUPID=2911;ARTICLE=39420;START=0;SORT=artnr;OFFSET=16;SID=10ToHnYH8AAAIAADFPqjo6a6e8892a6e16b44897517de5ad47994

Welche Spannung würdet ihr auf die Busleitung legen, damit die 5V 
überall gewährleistet sind, aber die Spannungsregler nicht überlasten/zu 
heiß werden?

Vielen Dank im Voraus!

Patrick

von Patrick (Gast)


Lesenswert?

Ach ja, mein Protokoll ist mit Prüfsumme und erneuter Übertragung im 
Fehlerfall gesichert, das heißt, ich kann eine gewisse Bitfehlerrate in 
Kauf nehmen.

von spess53 (Gast)


Lesenswert?


von Mine Fields (Gast)


Lesenswert?

Stichleitungen werden dir bei mehreren Metern Länge wahrscheinlich 
Probleme bereiten, da solltest du dir ernsthaft über eine andere Lösung 
Gedanken machen.

Zu deiner Frage mit der Spannung kann man dir keine Antwort geben, da 
wesentliche Angaben fehlen. Drop-Out-Spannung ist im Datenblatt doch 
gegeben und den Spannungsbfall über die Leitung kannst du leicht selbst 
rechnen, wo ist das Problem?

von Patrick (Gast)


Lesenswert?

Hallo und vielen Dank für die Antworten.

http://www.profibus.felser.ch/index.html?der_einsatz_von_stichleitungen.htm

Kann man dieser Tabelle hier glauben?

von Mine Fields (Gast)


Lesenswert?

Wenn man sie richtig interpretiert, ja.

von Termi (Gast)


Lesenswert?

Auf jeden Fall mal "slew rate limited" Treiber verwenden, wie 
beispielsweise den LT1785, o.ä. Dieser ist zwar extrem teuer, hilft dir 
aber auch gegen ESD und gestattet den Einsatz von einfachen 
Surge-Filtern.

Gut als Kabel geeignet ist Cat-5-Kabel. Nimm ein Paar für A/B und ein 
anderes für +Vcc/0V.

Vermeide in jedem Fall Brummschleifen über der 0V Leitung. Im Schirm, 
sofern du einen verwendest, stört Brumm dagegen kaum. Den Schirm kannst 
du an jedem Kabelende direkt erden, die 0V solltest du dagegen mit einem 
10nF/1kV weich erden, auch an jedem Kabelende. So machen das die 
PROFIBUS-Leute mit Erfolg.

Wenn durch falsche Kabelverlegung, also zu lange Stichleitungen, 
störenden Reflektionen auftreten, hilft nur Herunterfahren der 
Übertragungsrate.

von Patrick (Gast)


Lesenswert?

OK, danke. Heißt das, dass meine Konfiguration mit einer Hauptleitung 
von 80 Metern und Stichleitungen von in Summe etwa 150 Metern bei 
einer Baudrate von 9600 mit Telefonkabel funktionieren sollte? Ich weiß 
leider nicht, wie man mit den Leitungskapazitäten hier rechnet und 
welche sonstigen Unterschiede zwischen dem "PROFIBUS Kabel Typ A" und 
einem gewöhnlichen Telefonkabel hier Einfluss haben.

von Termi (Gast)


Lesenswert?

Reflektionen sind nur schwer aufzuspüren, wenn du nur nach den 
Übertragungsfehlern gehst. Dewswegen solltest du dein RS485-System mit 
zunächst sehr niedrigen Datenraten antesten, die du dann in KLEINEN 
Schritten vergrößerst. Sobald Übertragungsfehler auftreten, verringerst 
du die Übertragungsrate wieder.

von Elmü M. (elmue)


Angehängte Dateien:

Lesenswert?

Hallo

Ich arbeite schon einige Jahre mit RS485, deshalb kann ich aus eigener 
Erfahrung berichten.

Zuerst einmal:
Du solltest auf keinen Fall Telefonkabel verwenden!
Nimm abgeschirmtes Netzwerk Kabel (LAN) stattdessen!

Wenn du mal ein Netzwerk Kabel aufgemacht hast, weißt du dass darin 4 
verdrillte Paare sind. (englisch twisted pair)

Ich nehme mal an du hast dich mit dem Thema befasst und weißt, was der 
Voreil von Twisted Pair ist, wenn nicht -> Wikipedia!

Du mußt unbedingt darauf achten, dass du von diesen 8 Adern nicht IRGEND 
welche nimmst, sondern 2 die miteinander verdrillt sind. Die Farbe ist 
egal, aber sie müssen ein Paar sein.

Sternnetze sind möglich, wenn du dadurch lange Leitungen sparst.
Besser wäre eine lange Leitung wo die Geräte in der Mitte dranhängen und 
die beiden Enden der langen Leitung einen Abschluß haben.
Wenn die Geräte bereits einen Abschlußwiderstand eingebaut haben (meist 
ist das so) brauchst du natürlich keinen extra mehr.
Bei einem Sternnetz sollte jeder Endpunkt einen Abschlusswiderstand 
haben.

Mit 9600 Baud dürftest du kaum Probleme haben, da dies noch sehr langsam 
ist.

> Welche Spannung würdet ihr auf die Busleitung legen, damit die 5V
überall gewährleistet sind


Hast du mal Datenblätter gelesen von ICs, die TTL Pegel umsetzen auf 
RS485? Der Sender sendet immer 5 Volt oder 0 Volt.
Der Empfänger ist aber so empfindlich dass er eine Differenz von 0,2 
Volt zwischen den beiden Leitungen bereits erkennt.
Da wirst du selbst nach einem Kilometer Leitung noch weit drüber liegen.
Such mal nach "Datasheet DS3695" oder "DataSheet Max488"
Deine Frage ist also falsch: Du mußt gar keine 5 Volt beim Empfänger 
haben!

Als Abschlußwiderstand wird üblicherweise 120 Ohm genommen, aber wie 
gesagt, die meisten Geräte haben den bereits eingebaut.

Elmü

von Termi (Gast)


Lesenswert?

>Bei einem Sternnetz sollte jeder Endpunkt einen Abschlusswiderstand
>haben.

Ähem, Räusper, dann wird der RS485-Treiber aber praktisch 
kurzgeschlossen und der Stromverbrauch steigt ins Uferlose...

von Elmü M. (elmue)


Lesenswert?

Hallo

Du weißt was ein Kurzschluss ist ?

Du hast natürlich Recht, dss jeder Abschlusswiederstand den Sender 
belastet.

Wenn man also 100 Geräte anschliessen will geht das natürlich nicht 
mehr.
Wenn man aber z.B. nur 5 Geräte anschließt ist das überhaupt kein 
Problem.
Meist wird ja auch nur ein kleines Datenpakt geschickt und dann schaltet 
der Sender sich wieder ab und erhitzt sich also gar nicht erst.

Wenn aber die Alternative zum Sternnetz ein endlos langes Kabel ist, das 
Tausend Schleifen durchs Gebäude macht, ist das auf jeden Fall weniger 
optimal als ein Sternnetz.

Es ist also völlig unmöglich hier allgemeingültige Aussagen zu machen 
ohne Details zu kennen.

Reflektionen kann man übrigens auf dem Oszilloskop sehen.
Wenn beim Empfänger ein sauberes Rechteck Signal ankommt ist alles im 
grünen Bereich.

Elmü

von Elmü M. (elmue)


Angehängte Dateien:

Lesenswert?

So sieht das optimale Rs485 Netz aus.
Versuche es so zu machen, wenn es geht.
Nur wenn das nicht möglich ist, mach ein paar Abzweigungen.

von Termi (Gast)


Lesenswert?

>Wenn man aber z.B. nur 5 Geräte anschließt ist das überhaupt kein
>Problem.

Also 20R und rund 2,2V Signalspannung, wenn man einen LT1785 zu Grunde 
legt. Macht 110mA! Mit 50R und rund 2,7V sind es dagegen nur 54mA.

Patrick hat aber geschrieben:

>Um mir sehr viel Aufwand und Kabel zu ersparen, würde ich sehr viele
>Stichleitungen, also schon fast eine Sterntopologie in Kauf nehmen.

Das klingt nach mehr als nur 5 Geräten...

>Reflektionen kann man übrigens auf dem Oszilloskop sehen.

Patrick schreibt, daß er nur "ein sehr grundlegendes Elektronikwissen" 
hat. Damit dürfte die Option mit dem Oszilloskop ausfallen.

von irgendwer (Gast)


Lesenswert?

9k6 sind für rs485 schnarchlangsam. 150m auch kein problem. Neben der 
Terminierung solltest du auch einen Pullup und einen Pulldown einbauen. 
Also 5V -> R -> D+ -> Rterm -> D- -> R -> Masse
Leg die Geschichte so fest daß du ~500mV Common Mode Spannung im 
Ruhezustand bekommst. Wenn du Adern frei hast kannst du auch die Masse 
mitführen.

von Elmü M. (elmue)


Lesenswert?

Hallo

> 9k6 sind für rs485 schnarchlangsam

Stimmt.
Und Reflektionen sind ein Thema im Megahertz Bereich.
Wahrscheinlich wird das ganze sogar ganz ohne Anschlußwiderstände 
einwandfrei funktionieren.

Elmü

von Termi (Gast)


Lesenswert?

>Wahrscheinlich wird das ganze sogar ganz ohne Anschlußwiderstände
>einwandfrei funktionieren.

Ja, wahrscheinlich...

von Falk B. (falk)


Lesenswert?

@  Elmü Meister (elmue)

>> 9k6 sind für rs485 schnarchlangsam

Jain.

>Und Reflektionen sind ein Thema im Megahertz Bereich.

Jain.

>Wahrscheinlich wird das ganze sogar ganz ohne Anschlußwiderstände
>einwandfrei funktionieren.

Nur dann, wenn die ANSTIEGSZEIT begrenzt wird. Siehe 
Wellenwiderstand.
Dazu nimmt man die erwähnten "Slew rate limited driver".

MfG
Falk

von Termi (Gast)


Lesenswert?

>Wahrscheinlich wird das ganze sogar ganz ohne Anschlußwiderstände
>einwandfrei funktionieren.

Zuerst wolltest du an jeder Stichleitung einen Abschlußwiderstand 
hinmachen und jetzt soll es auch ganz ohne Abschlußwiderstände gehen??

Eine einfach Simulation zeigt, daß gänzlich ohne 
Terminierungswiderstände die Übertragung sehr leicht floppen kann, 
selbst dann, wenn "slew rate limited" Treiber eingesetzt werden. Die 
einzige Möglichkeit, die Reflektionen dann einigermaßen in den Griff zu 
bekommen, ist, Kabel mit hohen ohmschen Verlusten zu verwenden. Sonst 
gibt das eine kräftige Bauchlandung...

Auf jeden Fall sollte am Treiber eine korrekte Terminierung sitzen. Bei 
einem 100R Kabel (Cat-5) also 100R. Dann noch eine korrekte Terminierung 
an dem Punkt, der am weitesten vom Treiber entfernt ist. Die 
Stichleitungen kann man unterminiert lassen, wenn sie kurz sind. Bei 
längeren Stichleitungen kann man mit Terminierungen zwischen 100R und 1k 
experimentieren, wobei die zusätzliche Gesamtlast der Stichleitungen 
nicht unter 100R liegen sollte, damit das RS485-Signal nicht zu stark 
zusammenbricht.

von Elmü M. (elmue)


Lesenswert?

Hallo

> Nur dann, wenn die ANSTIEGSZEIT begrenzt wird

Sagen wir mal der Sender hätte ein extrem hohe Flankensteilheit.
Was würde passieren ?

Das Kabel mit seinen Kapazitäten und Induktivitäten würde ein paar 
Überschwinger an jeder Flanke produzieren. Das heißt eine hochfrequente 
Sinusschwingung die schnell ausklingt.

Das verursacht aber absolut kein Problem wenn das Signal nur 9600 Baud 
hat.

Warum ?
Weil der Empfänger eines asynchronen seriellen Datenstromes in der Mitte 
des regenerierten Taktes die Daten Sampels liest. (Der Takt wird von 
einem Quartz abgeleitet.) Und zu der Zeit sind die Überschwinger 
läääääängst vorbei.

Die Anstiegsszeit spielt also überhaupt keinerlei Rolle bei dieser 
Niederfrequenz.

Bei hochfrequenten Signalen ist dies anders.
Da mischen sich die Überschwinger der Flanken mit dem Nutzsignal und 
können dies unlesbar machen.

P.S:
Ich habe den Eindruck Patrick hat sich bereits aus der Diskussion 
zurückgezoen und dieser Thread driftet in Fachsimpelei ab. Ich melde 
mich daher auch ab...

Elmü

von Termi (Gast)


Lesenswert?

>Das Kabel mit seinen Kapazitäten und Induktivitäten würde ein paar
>Überschwinger an jeder Flanke produzieren.

Das sind nicht "ein paar" Überschwinger, wenn keinerlei relevante 
ohmsche Dämpfung vorhanden ist. Das Geschlabber kann weit länger als 
eine Bit-Zeit dauern. Ohne die beiden Terminierungswiderstände am 
Treiber und am weit entferntesten Ort kannst du die Übertragung völlig 
vergessen.

>Sagen wir mal der Sender hätte ein extrem hohe Flankensteilheit.
>Was würde passieren ?

Ohne irgendwelche Terminierungswiderstände verursacht "extrem hohe 
Flankensteilheit" extreme Abstrahlung der Leitung. Der CE-Test wäre dann 
mit Sicherheit nicht bestanden.

>Warum ?
>Weil der Empfänger eines asynchronen seriellen Datenstromes in der Mitte
>des regenerierten Taktes die Daten Sampels liest. (Der Takt wird von
>einem Quartz abgeleitet.) Und zu der Zeit sind die Überschwinger
>läääääängst vorbei.

Die Überschwinger sind nicht das Problem, sondern die Flanken. Und wenn 
da eine Treppenkurve ist, wo der UART eigentlich eine Flanke braucht, um 
das Startbit richtig erkennen zu können, dann werden die Reflektionen 
schon zum Problem.

von Elmü M. (elmue)


Angehängte Dateien:

Lesenswert?

Au Mann, sind wir alle dämlich!

Es gibt das perfekte RS485 Sternnetz!

Es ist soooo einfach!
Warum ist keiner von uns bisher darauf gekommen?

Wie so oft kommen einem die besten Ideen auf dem Klo.

Wir hätten uns das ganze Gefachsimple sparen können, wenn mir diese Idee 
eher gekommen wäre.

Patrick, (falls du noch da bist) mach es so wie im angehängten Bild und 
vergiss die ganze Diskussion hier in diesem Thread!

Den Abschlußwiderstand habe ich mit Absicht in den Sternpunkt gelegt.
So sind eventuelle zukünftige Erweiterugen (zusäztliche Geräte) einfach 
zu realisieren und du weißt immer wo er ist.

Elmü

von Termi (Gast)


Lesenswert?

>Es ist soooo einfach!
>Warum ist keiner von uns bisher darauf gekommen?

Deine Topology stimmt überein mit der in Figure 3f von diesem Link

http://www.national.com/an/AN/AN-1057.pdf

den schon spess53 in die Runde geworfen hat.

von Falk B. (falk)


Lesenswert?

@  Elmü Meister (elmue)

>      RS485-Stern-Netz.gif

>Au Mann, sind wir alle dämlich!

Bitte mal nicht von dir auf andere schließen.

>Es gibt das perfekte RS485 Sternnetz!

Das ist kein Jim Beam, ähh Sternnetz, sondern einfach linear. Die 
örtliche Verteilung ist da egal.

MfG
Falk

von Mine Fields (Gast)


Lesenswert?

Ohje, da ist wohl bei einigen der Sarkasmusdetektor kaputt.

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.