PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Problem mit Abschlusswiederstand bei RS485 Bus



demmy
23.09.2014, 20:53
Hallo zusammen,

ich habe ein merkwürdiges Phänomen, bei einem kleinen RS485 Bus den ich aufgebaut habe.
Den Bus habe ich mit ein paar Atmegas aufgebaut an denen MAX485-IC's hängen.
Als Verbindungsleitung zwischen den Controllern habe ich eine Profibusleitung samt zugehöriger Stecker verwendet.
Hatte davon noch ein paar Meter daheim rumliegen. ;) Und ich finde den Stecker sehr praktisch, da man die Terminierung dort zuschalten kann.
Das heißt der A und B Kanal des MAX485 gehen auf einen D-Sub-Stecker und von dort dann auf die Profibusleitung. Auf den D-Sub-Stecker habe ich auch 5V und GND geführt, so das beim Einschalten des Widerstandes der Bus aktiv bestromt wird.

Nun zu meinem Problem:

Lege ich auf einer Seite der Leitung den Abschlusswiderstand im Stecker ein, läuft der Bus ganz normal. Schalte ich aber den zweiten Abschlusswiderstand dazu, dann geht plötzlich gar nichts mehr auf dem Bus.
Woran kann das liegen? Die Platinen sind identisch, es kann also nicht sein das ich auf einer 5V mit GND verwechselt habe.
Kann es an der Leitungslänge liegen? Diese Liegt aktuell zum Testen < 1m. Darf man bei einer zu kurzen Leitung keinen Abschlusswiderstand einschalten?
Oder kann der MAX485 mit der Profibusleitung nicht? Die Widerstände in den Steckern sind ja nicht gerade sehr hoch.

Ich hoff jemand hat eine Idee?

Viele Grüße und danke für eure Hilfe!

ihle
23.09.2014, 21:42
Hallo,


so das beim Einschalten des Widerstandes der Bus aktiv bestromt wird.

so wie ich das lese legst du 5V auf die Busleitungen?
normal liegen die Abschlusswiderstände zwischen A und B und kommen
mit der Versorgungsspannung gar nicht in Berührung.
Der RS485 Bus wird auch nicht Terminiert "ich verstehe unter Terminierung
die Signalleitungen auf einen festen Pegel zu legen z.B. I²C".
Die Abschlusswiderstände sollen beim RS485 oder beim CAN Bus Reflektionen
auf die Signalleitung verhindern.

mfg

ihle

demmy
23.09.2014, 22:13
Hi,
ne ne, also es ist schon so das ich den Stecker zur Terminierung nutze. Im Stecker befinden sich noch weitere Widerstände. Die 5V liegen nicht direkt auf der Busleitung sondern haben noch einen Widerstand dazwischen und dienen dazu im Ruhezustand den Bus auf einem definierten Pegel zu halten. Über den Stecker kann ich den Abschlusswiderstand wahlweise zu- und abschalten.

Der Stecker ist im Grunde so aufgebaut:
29105

Nur ist es eben so, das im Profibusstecker der Abschlusswiderstand 220Ohm und die PullUp Und PullDown-Widerstände 390Ohm haben.
Ich bin die ganze Zeit davon ausgegangen das die Widerstände speziell auf den Wellenwiderstand der Leitung abgestimmt sind.

Aber könnte es sein das ich da Probleme im Zusammenhang mit dem von mir verwendeten Treiberbaustein bekomme?
Im Datenblatt des MAX485 stehen 120Ohm und 100KOhm als Widerstände.

Holli_
23.09.2014, 22:13
Der RS485 Bus wird auch nicht Terminiert "ich verstehe unter Terminierung die Signalleitungen auf einen festen Pegel zu legen z.B. I²C". Es ist genau anders herum, bei I2C sind es Pull-ups da die IC-Ausgänge Open-Kollektor sind. Beim RS485 wird terminiert, diese Widerstände entsprechen der Impedanz des Kabel und minimieren dadurch die Reflexionen der Signale.
Das heißt der A und B Kanal des MAX485 gehen auf einen D-Sub-Stecker und von dort dann auf die Profibusleitung. Auf den D-Sub-Stecker habe ich auch 5V und GND geführt, so das beim Einschalten des Widerstandes der Bus aktiv bestromt wird. Mach einen Schaltplan, dann sieht man gleich was los ist. Eine Verbindung mit der Stromversorgung ist zwar möglich, aber dann muss man es schon richtig schalten.

Peter(TOO)
23.09.2014, 22:41
Hallo,

Der Profibus verwendet RS-485-Treiber.

Du hast da wohl einen anderen Wurm drin.

MfG Peter(TOO)

Holli_
23.09.2014, 22:43
Normalerweise reicht ein 120 Ohm Abschluss auf jeder Seite, da die entsprechenden Kabel einen Wellenwiderstand von 100-120 Ohm haben. Die Widerstände nach Vcc und GND sind eigentlich nicht mehr notwendig, die Empfänger haben diese "fail-safe" Funktion, dafür sind die Widerstände gedacht, heute schon intern eingebaut.

demmy
24.09.2014, 10:52
Mhh und was könnte das noch für ein Wurm sein?
Wie gesagt die Platinen sind alle identisch und ich habe auch keine Ader in den Steckern vertauscht. Sonst würde der Bus ja nicht laufen!?
Ist vielleicht einer der Stecker defekt?
Also mit der kurzen Leitungslänge hat es Definitiv nichts zu tun?

PICture
24.09.2014, 11:15
Hallo!


Schalte ich aber den zweiten Abschlusswiderstand dazu, dann geht plötzlich gar nichts mehr auf dem Bus.

Dann mache es nicht. ;)

demmy
24.09.2014, 11:39
Ja das ist sicher auch eine Lösung! ;)
Aber es muss doch eine logische Erklärung dafür geben!?

PICture
24.09.2014, 11:57
Die Widerstände in den Steckern sind ja nicht gerade sehr hoch.
Logische Erklärung auf die Schnelle: dein bisher unbekannter (Ab)schlusswiderstand ist zu klein und den Bus überlastet.

demmy
24.09.2014, 12:50
Mhh also hier nochmal die Schaltpläne dazu:

Der Max485 mit dem D-Sub:
29106

Und das Innenleben des Steckers:
29107

witkatz
24.09.2014, 13:38
Ist vielleicht einer der Stecker defekt? Das kannst du mit einem Multimeter schnell feststellen. Im spannungsfreien Zustand solltest du zwischen A und B ca 110 Ohm messen können, wenn in beiden Profibus-Steckern an beiden Enden des Profibus-Strangs die Terminierung zugeschaltet ist.
Liegen alle Busteilnehmer am selben Gnd-Potential, oder gibt es evtl. Potentialdifferenzen?

- - - Aktualisiert - - -

Ah, jetzt habe ich auch den Schaltplan gesehen. Was sind das für komische 100Ohm Reihen-Widerstände? Mit den 220Ohm Terminierungswiderständen im Stecker hast du dann einen schönen Spannungsteiler, der die Signalamplitude ca. halbiert. Kommt noch ein zweiter Terminierungswiderstand dazu wird das Signal noch weiter abgeschwächt.

Peter(TOO)
24.09.2014, 14:37
Hallo,

Ah, jetzt habe ich auch den Schalplan gesehen. Was sind das für komische 100Ohm Reihen-Widerstände? Mit den 220Ohm Terminierungswiderständen im Stecker hast du dann einen schönen Spannungsteiler, der die Signalamplitude ca. halbiert. Kommt noch ein zweiter Terminierungswiderstand dazu wird das Signal noch weiter abgeschwächt.

Das wird auf 1/3 abgeschwächt.
Der Abschlusswiderstand aus dem 220R und den beiden 390R hat etwas mehr als 100R.
Mit zwei Abschusswiderständen liegt der Pegel dann bei 1/6.


Also R10 und R11 müssen raus (Drahtbrücke).

Ich sagte doch, du hast einen anderen Wurm drin ;-)

MfG Peter(TOO)

witkatz
24.09.2014, 14:59
Ja klar Peter(TOO), mein Fehler, danke für den korrigierenden Hinweis. Ich habe vergessen, dass für Wechselspannungssignale die Versorgung einen Kurzschluss darstellt.

demmy
24.09.2014, 18:49
Ok vielen Dank!
Das werde ich gleich mal versuchen! :)
Ist mir so gar nicht aufgefallen! ;)

Machen denn die 100Ohm Widerstände gar keinen Sinn? Ich hab das mal wo gesehen, das der Busanschluss für normale Kupferleitungen so aufgebaut wurde:

29108

Ich dachte die sind vielleicht mit den Supressordioden zum Schutz des Treibers da!?

Ich muss mal schauen, ob ich das noch irgendwo finde. :)

Holli_
24.09.2014, 19:53
Ein richtiger Schutz sieht zum Beispiel so aus: http://www.analog.com/en/circuits-from-the-lab/cn0313/vc.html

Und wieder mal zeigt sich das man gleich am Anfang detaillierte Infos präsentieren sollte, Schaltpläne statt Prosa. Hier noch was: http://www.ti.com/lit/an/slla272b/slla272b.pdf

demmy
25.09.2014, 14:09
Also zunächst mal vielen Dank für die Infos und PDF's.

Aber jetzt schließen sich mir gleich ein paar Fragen an.

Gibt es für die in dem ersten Dokument verwendeten Schutz-Dioden auch alternativen für die Durchsteckmontage? Und sind die von mir verwendeten Dioden gänzlich ungeeignet?

Die im zweiten Dokument verwendeten Widerstände weichen ja mit (523R) erheblich von den von mir verwendeten (100K) ab. Gelten die Widerstandswerte von Seite 4 des Dokuments nur für einen einseitigen oder auch für einen beidseitigen Busabschluss? Das wird mir irgendwie aus dem Text und der Schaltung auf dieser Seite nicht ganz klar.

Holli_
25.09.2014, 20:20
Gibt es für die in dem ersten Dokument verwendeten Schutz-Dioden auch alternativen für die Durchsteckmontage? Und sind die von mir verwendeten Dioden gänzlich ungeeignet?


Die TVS SM712 ist passend für den RS485 gemacht, mit -7V und +12V. Eine TVS mit 36V schützt da relativ wenig. Im Datenblatt der SM712 sieht man auch die Prinzipschaltung und die kann man mit einzelnen TVS nachbauen.



Die im zweiten Dokument verwendeten Widerstände weichen ja mit (523R) erheblich von den von mir verwendeten (100K) ab. Gelten die Widerstandswerte von Seite 4 des Dokuments nur für einen einseitigen oder auch für einen beidseitigen Busabschluss?


Die Schaltung mit 3 Widerständen ist als "fail-safe" gedacht, der MAX485 braucht das nicht.

demmy
25.09.2014, 23:10
Ok, nochmals vielen Dank.

Ich hab das mit dem "fail-safe" jetzt nochmal im Datenblatt des Max485 nachgelesen. Kann ich da denn Probleme bekommen, wenn ich die Widerstände speziell in den Profibussteckern zuschalte auch wenn der IC das schon integriert hat?

Bzw. wäre es schlimm wenn ein doppeltes "fail-safe" vorhanden wäre? Falls man mal auf einen anderen IC umsteigt der das nicht integriert hat?

UPDATE:

Meine Nachforschungen haben ergeben, das ein externer FailSafe zum internen des IC's als Unterstützung dient. Steht zumindest in folgendem Dokument auf Seite 13 unter Externer-Failsafe:
http://www.ti.com/lit/an/slla070d/slla070d.pdf

Aber was sind denn jetzt die optimalsten Werte für eine FailSafe-Terminierung?
Die werte aus dem Dokument von oben (523Ohm-120Ohm-523Ohm)? Und ist es nicht sinnvoll das an beiden Enden des Buses zu haben, wie beim Profibus eben auch?