zu RS485 habe ich an verschiedenen Stellen gelesen dass man neben dem
Terminierungswiderstand von 120 Ohm noch Pullup/downs zwischen 1K und
100K an A/B anschließen sollte, wobei auch noch wichtig sein soll ob
Pullup an A oder an B.
Aber was hat das für einen Sinn?
Zusammen mit den Abschlusswiderständen stellt sich doch dann einfach
2,5V+-ein paar milliVolt ein,
egal ob Pullup an A oder B.
Hi Markus,
die Pull-Up/Downs dienten bei früheren RS485-Treibern fürs sogenannte
"FailSafe Biasing". Das diente einfach dazu, die A/B-Leitungen auf
Ruhezustand zu bringen, wenn sonst nix am Bus hängt. Neuere Treiber
haben das intern, den 120R brauchst du jedoch immer noch. Desweiteren
ist evtl. eine "C"-Leitung für den Potentialausgleich zwischen den
Baugruppen nötig.
Ausserdem garantieren neuere Treiber auch, dass auch bei Kurzschluss der
A/B-Leitungen der Ruhezustand der seriellen Schnittstelle (also Richtung
µC) eingehalten wird.
Du kannst dir das Konzept der neuen Treiber in den entsprechenden
Datenblättern mal angucken. Ein Treiber wäre z.B. der LT1791 von Linear
Technology.
Ralf
irgendwie versteh ich's nicht:
ich habe einen 75176 und bei dem steht im Datenblatt
wenn –0.2 V < VID < 0.2 V -> Ausgang unbestimmt
(VID ist die Differenzspannung am Eingang)
aber das ist doch gerade der Fall wenn alle Busteilnehmer auf Lesen
geschaltet
wenn dann z.B. der Master auf senden schaltet kriege ich doch evtl.
einen Pegelwechsel bei den Empfängern
Hallo Markus,
ich hatte vor ein paar Monaten lange mit meinem RS485-Netzwerk gekämpft.
Es lief einfach nicht. Habe immer ein paar Flanken zu viel am Empfänger
erhalten, welche dann einen falschen UART-Interrupt generierten.
Passiert ist das immer wenn der Master von Empfang auf Senden geschalten
hat. Letztendlich habe ich die 120 Ohm-Terminierung weggelassen. Dann
gings.
Gruß
Hallo,
ich arbeite hier in einer Firma, bei der wir schon über 10 Jahren in
industriellen Bereich mit RS485 arbeiten.
Hier DEFINITIV der korrekte Abschluss eines RS485-Bussystemes !
Am Anfang UND am Ende des Busses wir je ein 120R zw. A und B geschaltet.
Des weiteren am Anfang UND am Ende jeweils ein 390R gegen +5V und GND,
wob ei es hier sehr wichtig ist, dass von A ein 390R nach +5V geht und
von B ein 390R gegen Masse. NICHT ungekehrt !!!
Wie gesagt. Wir sind im industriellen Bereich taätig und ich
programmiere schon seit über 5 Jahren RS485-Datenübertragungen bis
115200 Baud.
Mit diesem Abschluss gibt es bisher keine Probleme.
noeppkes.
@ noeppkes,
das funktioniert aberdoch nur, wenn der Bus aus einem Master und einem
Slave besteht, oder? Bei DMX z. B. (1 Master und bis zu 32 Slaves) kann
das nicht funktionieren.
MW
Ich dachte das wäre klar. 32 Busteilnehmer, alle mit 120 Ohm terminiert,
ergibt einen Gesamtwiderstand von < 4 Ohm. Das muss der Treiber
(RS485-Sender) dann auch schaffen. Da werden wohl die meisten Sender in
die Kniehe gehen, da der Bus quasi parallel geschaltet ist. Obwohl oft
der Begriff Daisy-Chaining in dem Zusammenhang fällt, ist es eine
Parallelschaltung.
MW
Terminiert wird am der physischen Busleitung nur gaaaanz vorne und
gaaaanz hinten! Zwei 120-Ohm-Widerstände. Sonst nirgends. Unabhängig
davon wo Sender und Empfänger sitzen. Wellenwiderstandsrichtiger
Abschluß der Leitung ist das Zauberwort.
Und wichtig noch:
Keine Sternverkabelung!
Nur ein Strang, der irgendwo beginnt (mit 120R) dann nacheinander alle
Busteilnehmer besucht und dann irgendwo endet (wieder mit 120R).
Gast2
Wenn man wie bei DMX nur einen Master hat, der permanent auf Sendung
ist, kannste dir die Widerstände gegen Vcc und GND auch gleich schenken.
Andererseits...wenn da mal jemand den Bus ausstöpselt...
Mir ist eben aufgefallen, dass ich bisher noch nie die
Abschlusswiderstände (DMX ist das) angeklemmt hab, es hat immer
funktioniert. Was aber wohl eher Glück als Verstand war...
uups, erst nix und dann so viele Antworten, besten Dank.
Ich habe inzwischen auch noch etwas rum geforscht und habe bei National
ein paar App Notes dazu gefunden.
Da das ganze mit Akku betrieben wird kann ich nicht so viele
Amperestunden verschwenden mit 390 Ohm Pullup/down, ich werde mal die AC
Terminierung mit einem RC Abschluß probieren.
@noeppkes
warum ist Pullup an A und Pulldown an B so wichtig, gibt es da schon
interne Pullup/down?
Ich würde es nämlich gern anders rum machen.
DMX kann bis zu 512 Teilnehmer haben. Die DMX-Geräte haben immer einen
Eingang und einen Ausgang. Auf den ersten und letzten kommet dann ein
Stecker wo der Abschlußwiderstand drin ist. Bei kurzen Leitungslängen
geht es aber meist auch ohne die Widerstände.
Sven
>DMX kann bis zu 512 Teilnehmer haben. Die DMX-Geräte haben immer einen>Eingang und einen Ausgang. Auf den ersten und letzten kommet dann ein>Stecker wo der Abschlußwiderstand drin ist. Bei kurzen Leitungslängen>geht es aber meist auch ohne die Widerstände.>Sven
Schwachsinn.
Such mal danach, die DMX-Specs habe ich vor einigen Wochen hier
reingestellt. Die 512 bezieht sich auf die maximale Anzahl der
Teilnehmer in einem Universum, aber getrieben von einem Master, bzw. von
einem Splitter, Booster, o. ä. sind 32.
MW
HHHAAALLLLLOOOO !
AUF KEINEN FALL die Wiederstände gegen +5V und GND weglassen.
Das dient dazu den Bus definitiv auf Pegel zu halten, falls der Master
mal nicht sendet oder gezogen wird !!!!!
Ansonsten habt ihr einen Differenzpegel um 0V, was ganz schlecht ist für
den Empfängerbaustein.
Dies toggelt dann die TX-Leitung, was euch wieder probleme in den Slaves
bereiten könnte
Die 2 Widerstände gegen +5V und gegen GND so wie gesagt dafür da, dass
der Differenzpegel aufrecht erhalten wird, sofern der Master nciht aktiv
inst oder vom Bus abgesteckt ist.
Sonit haben alle Slaves eine definitive TX-Leitung die auch nicht
toggelt.
Der Rewst wie oben beschrieben.
KEINE Sternverkabelung.
Nur am Anfang und am Ende die jeweils 3 Abschlusswiderstände.
Dann funktioniert das perfekt.
noeppkes ...
@stepp64
Hallo,
ja das stimmt. Es gibt RS485-Systeme mit 512 Teilnehmer.
Allerdings muss dann auch das Treiber-IC und die Empfänger-IC's dfür
ausgelegt sein.
Das Treiber-IC MUSS 512 Teilnehmer treiben könne, und die Empfänger
dürfen dann somit "nicht so viel Strom" von der Leitung nehmen.
Bei 512 Teilnehmer kommt gleich was zusammen !
Normalerweise sind es aber nur 32 Teilnehmer. Dann muss man wieder
verstärken.
@Bei kurzen Leitungen. Kein Abschluss.
Siehe meine Antwort oben.
Es geht zwar, aber ihr handelt euch Probleme ein, sofern der Master
nicht aktiv ist oder vom Bus getrennt ist.
ansonsten würde es funktionieren.
Aber was soll denn die Diskussion um 6 Widerstände ?
Am sichersten ist es, wenn die Wiederstände am Bus sind.
Das ist doch kein Aufwand.
P.S. Ich bin im Busbetrieb sehr erfahren. (Seit 5 Jahren mache ich fast
ncihts anderes)
Ich kann euch sagen, ich habe schon einmal 6 Stunden in der Software ein
Fehler gesucht, nur weil die Abschlusswiderstände falsch angebracht
wurden.
Somit war das Startbit falsch, was zu einem falschen Empfang führte.
Also:
Haltet euch an die von mir weiter oben beschriebene Abschlüsse und ihr
werdet Freude an der Stabilität haben!
noeppkes ...
> AUF KEINEN FALL die Wiederstände gegen +5V und GND weglassen.> Das dient dazu den Bus definitiv auf Pegel zu halten, falls der Master> mal nicht sendet oder gezogen wird !!!!!
Nochmals: Entsprechende Schaltungen sind in vielen aktuellen
Transceivern integriert. Bei einigen auch brauchbare
Hot-Swap-Fähigkeiten
Z.b. MAX307xE, ADM307xE etc.
Batterie/Akkubetrieb: Da ist der 75176 der denkbar ungeeignetste
(Stromverbrauch ohne Last >>20 mA afair) Kandidat. Eher sowas wie die
oben genannten oder wenn es von der Datenrate her reicht MAX3471
(allerdings ohne integrierten ESD-Schutz). Zu überlegen wäre dann auch,
ob nicht eine Schottky-Terminierung bei jedem Teilnehmer besser bzw.
ausreichend ist.
http://www.maxim-ic.com/appnotes.cfm/an_pk/1090