mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik RS485 in near distance Projekt


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
Autor: Bert S. (kautschuck)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Bastler (Gast)
Datum:

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

Autor: Stefanus F. (Firma: Äppel) (stefanus)
Datum:

Bewertung
2 lesenswert
nicht lesenswert
Man terminiert den Bus an seinen Enden:

T =================================================== T
    |       |       |       |       |
    1       2       3       4       5

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

Autor: M.A. S. (mse2)
Datum:

Bewertung
1 lesenswert
nicht 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
Autor: Bert S. (kautschuck)
Datum:

Bewertung
0 lesenswert
nicht 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
Autor: Stefanus F. (Firma: Äppel) (stefanus)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Bert S. (kautschuck)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: M.A. S. (mse2)
Datum:

Bewertung
0 lesenswert
nicht 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
Autor: Stefanus F. (Firma: Äppel) (stefanus)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Das muss nicht so sein.

Ist schon klar, deswegen das Wort "normalerweise".

Autor: Jim M. (turboj)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: yesitsme (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Stefanus F. schrieb:
> Ist schon klar, deswegen das Wort "normalerweise".

Ist das dann nicht RS422?

Autor: Stefanus F. (Firma: Äppel) (stefanus)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bei RS422 ist jede Adernpaar unidirektional.
Bei RS485 gibt es unidirektional und bidirektional.

Die Pegel und Widerstände sind etwas anders definiert.

: Bearbeitet durch User
Autor: Bert S. (kautschuck)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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
Autor: Stefanus F. (Firma: Äppel) (stefanus)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Alles ok so, denke ich

Autor: Bert S. (kautschuck)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Stefanus F. (Firma: Äppel) (stefanus)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Auf so kleine Details kommt es nicht an.

Autor: J Zimmermann (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: tommy (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Achim S. (Gast)
Datum:

Bewertung
2 lesenswert
nicht 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).

Autor: M.A. S. (mse2)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Bert S. (kautschuck)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: M.A. S. (mse2)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Bert S. (kautschuck)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: J Zimmermann (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: M.A. S. (mse2)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Andi B. (andi_b2)
Datum:

Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.