Forum: Mikrocontroller und Digitale Elektronik RS485 Bus an Avr - Frage zur Terminierung


von Basti (Gast)


Lesenswert?

Nabend,

ich habe vor mir eine Lichtsteuerung/Haus-Bus wie auch immer über einen 
RS485 Bus aufzubauen. Beim lsden verschiedener Artikel zu dem Thema habe 
ich eines nicht verstanden. Und zwar die Thematik mit der Terminierung.

1 Master und eine ungenaue Zahl Slaves hängen am Bus. Jetzt fährt man ja 
bei längeren Leitungen am besten am Anfang und am Ende den Bus mit einen 
120 Ohn Widerstad abzuschließen.

Wieso aber am Anfang und am Ende? Hängt doch sowieso Parallel zum Bus?
Und könnte so ein Terminierungs Widerstand nicht auch einfach auf JEDEM 
Slave sein? Will die ja nich in die Leitung einlöten, sollten also am 
besten mit auf die Platine.

Gruß Basti

von Leiti (Gast)


Lesenswert?

>Wieso aber am Anfang und am Ende?

Weil du dem Kabel logischerweise nur am Anfang und am Ende elektrisch 
vorgaukeln kannst, daß es unendlich lang ist. Nur dadurch kannst du 
störende Reflexionen an den beiden Enden verhindern...

von Basti (Gast)


Lesenswert?

Leiti schrieb:
> Weil du dem Kabel logischerweise nur am Anfang und am Ende elektrisch
> vorgaukeln kannst, daß es unendlich lang ist.

Wenn sich das Bus Kabel nun aber vom Master Stern-förmig in verschiedene 
Räume ausbreitet, muss dann an jedes Ende ein R? Oder geht sternförmig 
gar nicht so einfach?

Und könnte nicht an jeden Teilnehmer ein R? Oder führt das zu falsch 
Last auf dem Bus?

Basti

von ich (Gast)


Lesenswert?

Einen Bus verlegt man nicht sternförmig.

von spess53 (Gast)


Lesenswert?

Hi

Immer wieder hilfreich:

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

MfG Spess

von Stefan N. (nickelodien)


Lesenswert?

Oder hier wurde es auch schon mal behandelt:

Beitrag "Re: RS485-Verdrahtung"

von Basti (Gast)


Lesenswert?

ich schrieb:
> Einen Bus verlegt man nicht sternförmig.

ALso noch mal im kurzen... Bus in einer Linie verlegen.
Einen R am Anfang einen am Ende. KEINE weiteren? 120 Ohm sin ok?
Soweit richtig?

Basti

von Stefan N. (nickelodien)


Lesenswert?

Wie lang planst du denn den Bus?

von Basti (Gast)


Lesenswert?

Stefan N. schrieb:
> Wie lang planst du denn den Bus?

Naja das ist schwer zu sagen. Im moment denke ich an eine Lichtsteuerung 
für einen Raum... also wird sich das im Rahmen von 10 - max. 30 Metern 
bewegen.
Evtl wird daraus aber einmal mehr werden... Erst mal basteln ;)

Aber so quer durchs Haus sollte das ganze schon funktionieren wenn 
möglich... Schätze ma so 200 - 300 Meter? (realistisch?)

Basti

von Stefan N. (nickelodien)


Lesenswert?

Mein RS485 läuft im Moment über 1km und das ohne Zwischenverstärker.. 
also realistisch. ;) 120OHM Abschlusswiderstände sind Pflicht.
Bei längeren Leitungen können noch Pullup und Pulldown Widerstände 
erforderlich sein. Kommt aber auf den Treiber an.. hast du Dir da schon 
mal Gedanken gemacht?

von Basti (Gast)


Lesenswert?

Was mir noch einfällt....
Parallel oder besser Failsafe Terminieren?
Was für Kabellängen wären denn da nun denkbar/realistisch?

Basti

von Basti (Gast)


Lesenswert?

Stefan N. schrieb:
> Kommt aber auf den Treiber an.. hast du Dir da schon
> mal Gedanken gemacht?

Dachte an einen Max487
http://www.reichelt.de/ICs-M-MN-/MAX-485-CSA/index.html?ACTION=3&GROUPID=2914&ARTICLE=39600&SHOW=1&START=0&OFFSET=16&;

Der kann ja bis zu theoretisch 128 Stellen.
Der Speed sollte auch reichen. (Je langsamer desto sicherer?)
Und Half-duplex reicht mir im Single Master Betrieb

Basti

von Basti (Gast)


Lesenswert?


von hro (Gast)


Lesenswert?

Stefan N. schrieb:
> Mein RS485 läuft im Moment über 1km und das ohne Zwischenverstärker..
> also realistisch. ;) 120OHM Abschlusswiderstände sind Pflicht.

Quatsch.
Insb. bei Haustechnik spielet die Geschwindigkeit keine grosse Rolle.
Ich setze RS485 auch dienstl. in Messsystemen ein, die eine sehr hohe 
Sicherheit in mehrerlei Hinsicht gewaehrleisten muessen.
Bei z.B. 9600 Bd kann nahezu jedes Wald- und Wiesenkabel verwendet 
werden und man braucht auch keine Abschlusswiderstaende. Man kann's auch 
noch langsamer machen, so dass man jedes Bit mit Handschlag begruessen 
kann. Das ist dann fast Gleichspannung. Da spielt Reflektion ueberhaupt 
keine Rolle mehr.

Also immer schoen langsam, dann kann man das Muster des Kabels (Stern, 
Serie, Dreieck oder auch das Kamasutra) voellig frei festlegen.

Gruss hro

von Stefan N. (nickelodien)


Lesenswert?

hro schrieb:
> Bei z.B. 9600 Bd kann nahezu jedes Wald- und Wiesenkabel verwendet
> werden und man braucht auch keine Abschlusswiderstaende.

Hör ich zum ersten Mal.. aber ich lass mich auch gerne eines besseren 
belehren. Ich fahr im Moment mit 110Baud und ohne Busabschluss keine 
Chance.
Aber ich denk mal, an 120 Ohm wirds nicht scheitern.

von hro (Gast)


Lesenswert?

Stefan N. schrieb:
> Hör ich zum ersten Mal.. aber ich lass mich auch gerne eines besseren
> belehren. Ich fahr im Moment mit 110Baud und ohne Busabschluss keine
> Chance.
> Aber ich denk mal, an 120 Ohm wirds nicht scheitern.

Da musst Du dann aber ein anderes Problem haben. Wobei aber RS485 
normalerweise nur auf 400m ?? spezifiziert ist. Aber 110 Bd? Ich lach 
mich tot.
Wir haben bei 9600 Bd >20 Slaves an einem Bus, RS485 ist bei uns seit 
.>10 Jahren auf Baustellen Standard. Der Grund ist, dass auch jeder Depp 
irgendwo im Kongo ein Kabel reparieren koennen muss. Und wenn er's nur 
abschneidet, abisoliert und neu verdrillt. Und das ist dann von 0,34mm2 
... 2,5mm2 SV und Bus in einem Kabel jeweils (normalerweise aber nicht 
immer twisted pair) zwischen den Slaves auch voellig unterschiedliche 
Kabel oder sogar geflickt ...
Allerdings haben wir auch immer SW-Pruefsumme mitlaufen. Wenn's nicht 
passt, dann wird's halt neu angefordert.

Zeig mal Deine Verschaltung ./ Elektronik ./ Bausteine. Gerne auch an 
mcn@ostx.de

Gruss hro

PS: Mann, das Formatierungsgepfurzel nervt hier aber, laueft das Forum 
auf Windoofs?

von Stefan N. (nickelodien)


Lesenswert?

hro schrieb:
> a musst Du dann aber ein anderes Problem haben. Wobei aber RS485
> normalerweise nur auf 400m ?? spezifiziert ist.

Sorry.. da muss ich dich enttäuschen. Maximale Länge wird auf 4000ft 
spezifiziert (ca. 1200m). Ist auch ohne weiteres machbar. Die 110Baud 
hab ich einfach so mal gewählt.. entspricht in etwas denk ich den 50Hz, 
wenn ich 0xAA sende. Mit der Baudrate könnte ich sicherlich noch nach 
oben. Für Energiesparmaßnahmen werde ich auch demnächst noch 
Verbesserungen vornehmen. Selbst Profibus besitzt Abschlusswiderstände.. 
versteh nicht ganz auf was du hinaus willst?!  Ich würde sie einfach mit 
einbauen, da ist man auf der sicheren Seite.

von hro (Gast)


Lesenswert?

Alles klar, 4000 Fuesse warn's.

Schaden tun die Abschlusswiderstaende ja nicht. Wenn Du eine homogene 
Leitung und klare Busstruktur hast, dann ist das sicher der richtige 
Weg.

Gruss hro

von Basti (Gast)


Lesenswert?

Da Danke ich euch mal für eure fleißigen Antworten :)

Werde versuchen den Bus so linear wie nur möglich aufzubauen.
Baudrate werde ich so niedrig wie möglich und nur so hoch wie nötig 
einstellen. Am Afang und am Ende kommen eine Failsafe-Terminierung.
VCC -> 390 Ohm -> A -> 120 Ohm -> B -> 390 Ohm -> GND

Damit sollte das geklärt sein und einer sicheren Datenübertragung nichts 
mehr im Wege stehen.

Gruß Basti

von Leiti (Gast)


Lesenswert?

Ich nehme gerne den LT1785A, weil er gegen ESD und andere Unbilden 
geschützt ist. Ist aber leider sauteuer geworden.

Als Kabel könnte man Cat5 nehmen. Ist zwar ein 100R-Kabel aber preislich 
recht günstig. Damit könntest du die Speisung mitführen und hättest noch 
ein paar Extraleitungen für andere Zwecke (Handshake, Einschaltsignal, 
Kabelbeleuchtung, ect...).

von Wolfgang (Gast)


Lesenswert?

Ist aber niedrig - macht dann 74 Ohm effektive Terminierung. Biasing 
braucht es nur einer Stelle und da reichen auch geringere Vorspannungen.

Und die Baudrate ist nicht allein entscheidend, es ist vielmehr die 
Steilheit der Flanken, die sollte so niedrig sein, dass eine Welle in 
einem Blindast sich innerhalb der Flanke totläuft. Oder habt Ihr im 
RS485-Empfänger ein adaptives Filter?

Gruß Wolfgang

von Basti (Gast)


Lesenswert?

Wolfgang schrieb:
> Ist aber niedrig - macht dann 74 Ohm effektive Terminierung. Biasing
> braucht es nur einer Stelle und da reichen auch geringere Vorspannungen.

Versteh ich jetzt nicht so ganz... also die Failsafe Terminierung nur an 
einer Seite des Buses und an der anderen ganz normal nen 120er?

von Leiti (Gast)


Lesenswert?

>Versteh ich jetzt nicht so ganz... also die Failsafe Terminierung nur an
>einer Seite des Buses und an der anderen ganz normal nen 120er?

Die zwei 390R Widerstände liegen parallel zum 120R Widerstand...

>Und die Baudrate ist nicht allein entscheidend, es ist vielmehr die
>Steilheit der Flanken, die sollte so niedrig sein, dass eine Welle in
>einem Blindast sich innerhalb der Flanke totläuft.

Nein, das ist nicht unbedingt erforderlich. Da der UART sich das Signal 
in der Regel viel später anschaut, also zu einem Zeitpunkt, an dem das 
Überschwingen längst zuende ist, ist die Baudrate hier entscheidend. Es 
ist nur wichtig, daß der UART die erste Flanke eines Datenworts korrekt 
erkennen kann und das ist selbst bei massivem Ringing oft 
unproblematisch.

von Basti (Gast)


Lesenswert?

Leiti schrieb:
> Die zwei 390R Widerstände liegen parallel zum 120R Widerstand...

Wieso parallel? Dachte an so eine verschaltung?
http://www.mikrocontroller.net/wikifiles/c/cb/Rs485_term.png
Kann ich das nun an beiden Enden machen oder nur an EINEM?

Basti

von Falk B. (falk)


Lesenswert?

@  Basti (Gast)

>Leiti schrieb:
>> Die zwei 390R Widerstände liegen parallel zum 120R Widerstand...

Fast. Die 2x390er liegen in Reihe parallel zum 120er.

macht 120 // (390+390) = 104 Ohm.

Welch Überraschung.

>http://www.mikrocontroller.net/wikifiles/c/cb/Rs485_term.png
>Kann ich das nun an beiden Enden machen oder nur an EINEM?

An beiden.

MFG
Falk

von Basti (Gast)


Lesenswert?

Falk Brunner schrieb:
>>http://www.mikrocontroller.net/wikifiles/c/cb/Rs485_term.png
>>Kann ich das nun an beiden Enden machen oder nur an EINEM?
>
> An beiden.

Letzter Satz:

http://www.mikrocontroller.net/articles/RS-485
Failsafe - was passiert auf dem Bus, wenn kein Sender aktiv ist? Dann 
muss man mittles Pull Up und Pull Down Widerstand für definierte Pegel 
sorgen. Das ist vor allem dann nötig, wenn man mittles UART Daten 
überträgt, was bei 90% der RS485 Anwendungen der Fall ist. Arbeitet man 
mit Terminierung, so werden klassisch die Werte wie im nebenstehenden 
Bild verwendet. Ohne Terminierung entfällt R2 und R1=R3=1kΩ. Diese 
Terminierung gibt es nur einmal auf dem Bus, nicht an jedem Teilnehmer!

Da steht nun aber wieder das man dies nur einmal im Bus machen solle...

Basti

von Basti (Gast)


Lesenswert?

Falk Brunner schrieb:
> Fast. Die 2x390er liegen in Reihe parallel zum 120er.
>
> macht 120 // (390+390) = 104 Ohm.

Also für mich liegen die 3 Widerstände ja alle in Reihe wenn ich mir das 
so anschaue. Von VCC zum ersten zum zweiten zum dritten auf Masse. 
Dazwischen laufen eben die Datenleitungen durch.

Basti

von Falk B. (falk)


Lesenswert?

@  Basti (Gast)

>überträgt, was bei 90% der RS485 Anwendungen der Fall ist. Arbeitet man
>mit Terminierung, so werden klassisch die Werte wie im nebenstehenden
>Bild verwendet.

Das ist DEIN FALL.

> Ohne Terminierung

Ist NICHT dein Fall.

> entfällt R2 und R1=R3=1kΩ. Diese
> Terminierung gibt es nur einmal auf dem Bus, nicht an jedem Teilnehmer!

Bezieht sich auf den Fall Ohne Terminierung. Und selbt hier könnte man 
sie an beiden Enden des Busses machen, spielt keine Geige. Aber NICHT an 
JEDEN Teilnehmer, das wid nämlich etwas viel bei 128 Teilnehmern . . .

>Da steht nun aber wieder das man dies nur einmal im Bus machen solle...

Wenn es um möglichst einfache, unstrukturierte Verdrahtung geht, kann 
man bei niedrigen Baudraten UND definiert langsamen Tranceivern (slew 
rate limited) die Terminierung weglassen bzw. nur einmal am Bud die 
Failsafe Terminierung machen. Beidseitig schadet auch nicht, kostet nur 
etwas mehr Strom

MFG
Falk

P S Bei der Failsafe Terminierung gegen GND/VCC fehlt genau genommen 
noch ein 100nF Keramikkondensator, damit man dort wirklich einen 
HF-Kurzschluss hat.

von Basti (Gast)


Lesenswert?

Falk Brunner schrieb:
> P S Bei der Failsafe Terminierung gegen GND/VCC fehlt genau genommen
> noch ein 100nF Keramikkondensator, damit man dort wirklich einen
> HF-Kurzschluss hat.

Also noch 100nF zwischen A und B oder wie?

PS.: Danke für die ausführliche Antwort :)

von Falk B. (falk)


Lesenswert?

@  Basti (Gast)

>Also für mich liegen die 3 Widerstände ja alle in Reihe wenn ich mir das
>so anschaue.

Dann schaust du falsch. Es gilt das Überlagerungsprinzip, dabei werden 
Spannungsquellen kurzgeschlossen. Und dann schau mal aus Richtung A / B 
in deine Schaltung.

Aus Sicht von VCC/GND liegen sie natürlich in Reihe, das spielt aber für 
das Kabel und den Wellenwiderstand keine Rolle, weil anderer 
"Blickwinkel".

MfG
Falk

von Falk B. (falk)


Lesenswert?

@  Basti (Gast)

>> P S Bei der Failsafe Terminierung gegen GND/VCC fehlt genau genommen
>> noch ein 100nF Keramikkondensator, damit man dort wirklich einen
>> HF-Kurzschluss hat.

>Also noch 100nF zwischen A und B oder wie?

Wo steht das? NEIN!

Zwischen VCC/GND, direkt an den Widerständen!

MfG
Falk

von Basti (Gast)


Lesenswert?

Falk Brunner schrieb:
> Dann schaust du falsch. Es gilt das Überlagerungsprinzip, dabei werden
> Spannungsquellen kurzgeschlossen. Und dann schau mal aus Richtung A / B
> in deine Schaltung.
>
> Aus Sicht von VCC/GND liegen sie natürlich in Reihe, das spielt aber für
> das Kabel und den Wellenwiderstand keine Rolle, weil anderer
> "Blickwinkel".

Jetzt habs auch ich verstanden :D Danke

Falk Brunner schrieb:
> Wo steht das? NEIN!
>
> Zwischen VCC/GND, direkt an den Widerständen!

Ohh okay. Dann hab ich das Falsch verstanden. Danke!

Basti

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.