Forum: Mikrocontroller und Digitale Elektronik RS485 in near distance Projekt


von Bert S. (kautschuck)


Lesenswert?

Hi,

Ich beschäftige mich zur Zeit mit RS485 und habe noch einige Fragen 
offen. Das geplante System besteht aus 1 Master und 10 Slaves, wobei die 
Kabellänge die 3m nicht überschreiten wird.

1.) Man muss/soll ja das System mit 120Ohm terminieren, jedoch stellt 
sich mir die Frage wo? Wenn ich 10 Slaves habe, alle in der näheren 
Umgebung, dann sollte es ja reichen, nur einen zu terminieren, oder? 
Sonst wird das System überlastet.

2.) Es gibt mittlerweile eine riesige Anzahl an Transceiver IC's, wobei 
ich den Überblick an die genauen Anforderungen noch nicht ganz habe. 
Soweit ich weiß, sollte der Transceiver "fault protected" sein, so dass 
bei freiem Bus keine falschen Signale empfangen werden. Die 
Geschwindigkeit ist mir nicht so wichtig, da ich sowiso nur mit 
115200baud/s übertragen werden. Zusätzlich muss der IC noch 3.3V 
kompatibel sein. Gibt es noch etwas anderes, wichtiges auf das ich 
achten muss bei der Wahl eines Tranceivers?

Z.B sowas hier habe ich gefunden, brauchbar?
https://www.mouser.ch/datasheet/2/256/MAX14775E-MAX14776E-1076558.pdf

Grüsse Bert

von Bastler (Gast)


Lesenswert?

Ich verwende öfters den Max1487 wegen der geringeren Buslast (bis 128 
Teilnehmer) und Stromaufnahme. Der geht aber nur bis 2,5Mbit/s.

von Stefan F. (Gast)


Lesenswert?

Man terminiert den Bus an seinen Enden:
1
T =================================================== T
2
    |       |       |       |       |
3
    1       2       3       4       5

(1-5 sollen die Teilnehmer sein, T sind die Terminierungen.

von M.A. S. (mse2)


Lesenswert?

Bert S. schrieb:
> Z.B sowas hier habe ich gefunden, brauchbar?
> https://www.mouser.ch/datasheet/2/256/MAX14775E-MAX14776E-1076558.pdf

Der erfüllt alle von Dir genannten Anforderungen. Das hier:
"±65V Fault Protected 500kpbs" macht ihn vermutlich teurer, als welche, 
die keine so hohen Fehlspannungen aushalten.

Grundsätzlich ist es empfehlenswert, einen Transceiver mit möglichst 
geringer Datenrate zu wählen (also keinen, in Deinem Falle eher den 
500kbit/s als den 20Mbit/s), das beugt EMV-/Signalintegritätsproblemen 
vor.

Der Punkt Terminierung wurde schon beantwortet.

: Bearbeitet durch User
von Bert S. (kautschuck)


Lesenswert?

Ok, dank euch für die Ratschläge.


M.A. S. schrieb:
> Grundsätzlich ist es empfehlenswert, einen Transceiver mit möglichst
> geringer Datenrate zu wählen (also keinen, in Deinem Falle eher den
> 500kbit/s als den 20Mbit/s), das beugt EMV-/Signalintegritätsproblemen
> vor.

Dann nehme ich wohl den 500kbit/s.

Stefanus F. schrieb:
> Man terminiert den Bus an seinen Enden:
> T =================================================== T
>     |       |       |       |       |
>     1       2       3       4       5
>
> (1-5 sollen die Teilnehmer sein, T sind die Terminierungen.

Ok, dann sollte man also nebst dem Master ein Endboard bestimmen mit der 
Terminierung und nur 2 Eingängen, auf allen anderen hat man dann 2 
Eingänge und 2 Ausgänge ohne Terminierung?

: Bearbeitet durch User
von Stefan F. (Gast)


Lesenswert?

Die Terminierung gehört an die Ende des Bus-Kabels. Unabhängig davon, ob 
dort ein Busteilnehmer angeschlossen ist, oder nicht.

Was meinst du mit "2 Eingänge" und "2 Ausgänge"? Der RS485 Bus hat 
normalerweise zwei Drähte, die bidirektional verwendet werden.

von Bert S. (kautschuck)


Lesenswert?

Stefanus F. schrieb:
> Was meinst du mit "2 Eingänge" und "2 Ausgänge"? Der RS485 Bus hat
> normalerweise zwei Drähte, die bidirektional verwendet werden.

Ich meinte nur für das Anzapfen der Leitungen an einem Board/Slave. Die 
Leitungen rein, anzapfen und wieder raus.

von M.A. S. (mse2)


Lesenswert?

Diese Antwort sagt uns, dass nicht das gemeint ist, was ich gleich 
schreibe:
Bert S. schrieb:
> Ich meinte nur für das Anzapfen der Leitungen an einem Board/Slave. Die
> Leitungen rein, anzapfen und wieder raus.


Denn/aber:

Stefanus F. schrieb:
> Was meinst du mit "2 Eingänge" und "2 Ausgänge"? Der RS485 Bus hat
> normalerweise zwei Drähte, die bidirektional verwendet werden.
Das muss nicht so sein. Es gibt, ausser der Halbduplex-Variante auch 
eine Vollduplex-Variante, bei der zwei Leitungspaare verlegt sind, so 
dass ein Slave zeitgleich mit dem Master senden kann.

: Bearbeitet durch User
von Stefan F. (Gast)


Lesenswert?

> Das muss nicht so sein.

Ist schon klar, deswegen das Wort "normalerweise".

von Jim M. (turboj)


Lesenswert?

Bert S. schrieb:
> wobei die
> Kabellänge die 3m nicht überschreiten wird. [...]
> 115200baud [...]
> Man muss/soll ja das System mit 120Ohm terminieren

Bei der Buslänge käme man IMHO ohne Terminierung aus.

von yesitsme (Gast)


Lesenswert?

Stefanus F. schrieb:
> Ist schon klar, deswegen das Wort "normalerweise".

Ist das dann nicht RS422?

von Stefan F. (Gast)


Lesenswert?

Bei RS422 ist jede Adernpaar unidirektional.
Bei RS485 gibt es unidirektional und bidirektional.

Die Pegel und Widerstände sind etwas anders definiert.

von Bert S. (kautschuck)


Angehängte Dateien:

Lesenswert?

Ich habe mal eine Schaltung mit dem RS485 Transceiver designt. Nun gibt 
es im Datenblatt keine Informationen bezüglich reference design und ich 
wollte mal fragen, ob das so in etwa passt? Ich denke DE benötigt sicher 
einen Pull Down, so das der Treiber beim initialisieren sicher auf LOW 
ist. Denn 100nF für VCC spendieren macht sicher auch sinn. Die 100Ohm 
Widerstände würde wahrscheinlich nicht unbedingt benötigt, schützen aber 
die Pins bei einem Kurzschluss. Mit dem Jumper kann man dann die Slaves 
ohne Terminierung machen und nur das Ende terminieren.

: Bearbeitet durch User
von Stefan F. (Gast)


Lesenswert?

Alles ok so, denke ich

von Bert S. (kautschuck)


Lesenswert?

Spielt es noch eine Rolle, wo genau die Terminierungswiderstände sind 
beim Layoutdesign? Sollten diese hinter den A und B Pins sein oder 
können die auch direkt Vorne dran sein?

von Stefan F. (Gast)


Lesenswert?

Auf so kleine Details kommt es nicht an.

von J Zimmermann (Gast)


Lesenswert?

würde einen pullup-R (1k) an A vorsehen, wenn alle Transmitter 
deaktiviert sind, kann es sonst zu undefinierten Zuständen an den 
Receiver-Ausgängen kommen.

von tommy (Gast)


Lesenswert?

Jim M. schrieb:
> Bert S. schrieb:
>> wobei die
>> Kabellänge die 3m nicht überschreiten wird. [...]
>> 115200baud [...]
>> Man muss/soll ja das System mit 120Ohm terminieren
>
> Bei der Buslänge käme man IMHO ohne Terminierung aus.

Was bei fehlender Terminierung passiert, kann man hier lesen:

https://de.wikipedia.org/wiki/Reflexion_(Physik)#Offenes_Ende

Zitat Wikipedia:
Kabel mit definierter Länge, die am Ende kurzgeschlossen, angepasst oder 
offen sind, werden als Zeitglied (Laufzeit), zur Impulsverzögerung oder 
-speicherung, als Leitungskreis (Schwingkreis, Sperrkreis, Filter, 
Impedanztransformation, Phasendrehung) oder mit veränderlicher Länge zum 
Messen der Wellenlänge bzw. Frequenz eingesetzt.

von Achim S. (Gast)


Lesenswert?

tommy schrieb:
> Was bei fehlender Terminierung passiert, kann man hier lesen:

Schön Wikipedia zitiert. Aber Jim hat mit seiner Einschätzung trotzdem 
völlig Recht:

Jim M. schrieb:
> Bei der Buslänge käme man IMHO ohne Terminierung aus.

Da die Anstiegszeit des Signals deutlich länger ist als die Laufzeit auf 
der maximalen Leitungslänge könnte man hier tatsächlich ohne 
Terminierung arbeiten (wenn man z.B. Strom sparen möchte).

von M.A. S. (mse2)


Lesenswert?

Achim S. schrieb:
> tommy schrieb:
>> Was bei fehlender Terminierung passiert, kann man hier lesen:
>
> Schön Wikipedia zitiert. Aber Jim hat mit seiner Einschätzung trotzdem
> völlig Recht:
>
> Jim M. schrieb:
>> Bei der Buslänge käme man IMHO ohne Terminierung aus.
>
> Da die Anstiegszeit des Signals deutlich länger ist als die Laufzeit auf
> der maximalen Leitungslänge könnte man hier tatsächlich ohne
> Terminierung arbeiten (wenn man z.B. Strom sparen möchte).

Ich sehe das auch so: weiter oben ist die Rede von: Länge <= 3m, 
Verwendung des langsameren Transceivers (max. 500kb/s).
Drei Meter Kabellänge machen was? 30ns für hin und zurück (bei 
geschätzter Ausbreitungsgeschwindigkeit von 3/2c).
Der langsamere Typ hat lt. Datenblatt Mindest-Rise-und Fall-Times von 
105ns.

Aber Vorsicht: wählt man den schnelleren Typen, dann sind es lt. 
Datenblatt max. 15ns, typisch 8ns (Mindestzeit nicht angegeben).
DANN würde es schon kritisch.

Letzendlich: Termination mag in manchen Fällen nicht wichtig sein, 
schadet aber nicht.

von Bert S. (kautschuck)


Lesenswert?

J Zimmermann schrieb:
> würde einen pullup-R (1k) an A vorsehen, wenn alle Transmitter
> deaktiviert sind, kann es sonst zu undefinierten Zuständen an den
> Receiver-Ausgängen kommen.

Ich dachte, dieser Baustein handelt diesen Fall intern, "fault 
protection" genannt? Früher soll es ja so gewesen sein, dass man noch 
einen Pull Up und Pull Down für A und B verwenden musste.

von M.A. S. (mse2)


Lesenswert?

Bert S. schrieb:
> J Zimmermann schrieb:
>> würde einen pullup-R (1k) an A vorsehen, wenn alle Transmitter
>> deaktiviert sind, kann es sonst zu undefinierten Zuständen an den
>> Receiver-Ausgängen kommen.
>
> Ich dachte, dieser Baustein handelt diesen Fall intern, "fault
> protection" genannt? Früher soll es ja so gewesen sein, dass man noch
> einen Pull Up und Pull Down für A und B verwenden musste.

Nee. Fault Protection heißt, dass er (der Baustein) Dir in einem 
bestimmten Überspannungsintervall nicht abraucht.

von Bert S. (kautschuck)


Lesenswert?

M.A. S. schrieb:
> Nee. Fault Protection heißt, dass er (der Baustein) Dir in einem
> bestimmten Überspannungsintervall nicht abraucht.

Ok, ja das schon, aber im Datenblatt des MAX1475E steht:

These transceivers are optimized for robust communication
in noisy environments. A large 200mV (typ) hysteresis on
receiver inputs ensure for high noise rejection and a failsafe
feature guarantees a logic-high on the receiver output
when the inputs are open or shorted. Driver outputs are
protected against short-circuit conditions

Dieses failsafe feature habe ich gemeint.

von J Zimmermann (Gast)


Lesenswert?

Kenne den MAX1475 nicht so, hab immer mit dem MAX485 gearbeitet und dort 
böse Überraschungen erlebt (und viel Zeit gebraucht, bis es Klick 
gemacht hat!). Würde deshalb beim PCB-Design für diesen und den 
Abschluss-R was vorsehen, zwei Widerstände fressen doch keinen Platz.
Mfg

von M.A. S. (mse2)


Lesenswert?

Bert S. schrieb:
> a failsafe
> feature guarantees a logic-high on the receiver output
> when the inputs are open or shorted.
...
> Dieses failsafe feature habe ich gemeint.
OK, dazu kann ich bei diesem Baustein nichts sagen.



J Zimmermann schrieb:
> und dort
> böse Überraschungen erlebt (und viel Zeit gebraucht, bis es Klick
> gemacht hat!).
Ich habe mal böse Überraschungen erlebt, als ich Pullup und Pulldown 
Fail-Save-Bias-Widerstände falsch ausgelegt hatte (zu große Widerstände 
=> zu kleine Spannungsdifferenz zwischen A und B).
Das ganze oszillierte wild.

von Andi B. (andi_b2)


Lesenswert?

Bert S. schrieb:
> .... Das geplante System besteht aus 1 Master und 10 Slaves, wobei die
> Kabellänge die 3m nicht überschreiten wird....
>
> 1.) Man muss/soll ja das System mit 120Ohm terminieren, jedoch stellt ....
> ....
> 115200baud/s übertragen werden. Zusätzlich muss der IC noch 3.3V
> kompatibel sein. Gibt es noch etwas anderes, wichtiges auf das ich
> achten muss bei der Wahl eines Tranceivers?

Z.B. mit MAX3072 brauchst bei diesen Rahmenbedingungen keine 
Terminierung und keine "Verzug-Widerstände". Mit so einem Slew Rate 
Limited Treiber kannst locker 10x solche Leitungslängen mit 250kbps 
unterminiert und in wilder Verkabelung sicher betreiben. Die bei Maxim 
Fail-Safe genannte Funktion verhindert falsche Nullen am RX auch wenn 
kein Sender aktiv ist und ohne "Verzug-Widerstände". Brauchst also 
nicht.

Hier würde eine Terminierung nur unnötig Energie verbraten. Kannst aber 
natürlich einbauen. Bei der Geschwindigkeit (Slew Rate!) und 3m ist aber 
völlig wurscht wo und bringt dir nichts.

: Bearbeitet durch User
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.