Forum: Mikrocontroller und Digitale Elektronik Leitungspegel RS485


von Lukas P. (timeout)


Angehängte Dateien:

Lesenswert?

Hallo,

ich habe eine Frage zu den Leitungspegeln, die ich an meinem 
USB-RS485-Wandler gemessen habe. Ich benutze einen Wandler des Typs 
USB-COM485-PLUS1.
Darauf sind im wesentlichen ein FT232R und ein SP481EE verbaut.

Ich habe mit einem Terminalprogramm eine Bitfolge an die Schnittstelle 
gesendet. Einstellungen des Programms:
Bitrate: 19200
Datenbits: 8
Stoppbits: 2
Parität: keine
übermitteltes Byte: 5A (hex)

Die Pegel habe ich dann an den beiden RS-485-Klemmen gemessen.
Dann habe ich die Bitfolgen analysiert. Vor dem Startbit wird scheinbar 
eine logische "1" übermittelt, die ich mir nicht so recht erklären kann.
Weiß jemand, woher dieses zusätzliche Bit kommt? Die Senderaktivierung 
(über TX_Enable des FTDIs) wird zusammen mit dieser "überzähligen 1" 
aktiv.

Wenn ihr noch weitere Informationen braucht oder ich was messen soll, 
dann sagt bitte Bescheid.

Danke und Grüße Lukas

von Oliver J. (skriptkiddy)


Lesenswert?

Wie hast du A und B beschalten?

von (prx) A. K. (prx)


Lesenswert?

Sieht nach einem etwas seltamen Abschluss aus. A ist im inaktiven 
Zustand auf Masse, B nicht.

von Lukas P. (timeout)


Lesenswert?

@Oliver: A, B sind die Ausgänge des SP481EE gegen GND

@A. K.: genau, ich hab gerade mal mit einem Multimeter gegen GND 
gemessen.
A 0V und B ~1V

Aber woran liegt das? eigentlich sollte man die "überflüssige 1" 
garnicht sehen oder? Das erste was von dem Telegramm, was man bermekten 
sollte, sollte doch das Startbit sein. Oder sehe ich das falsch?

Danke euch beiden schonmal.

von PICfan (Gast)


Lesenswert?

Ich glaube es kommt vom den DE (DRIVER ENABLE), wenn der kurz vor senden 
aktiv wird, zieht der Treiber die A und B pins auf die richtige Pegeln, 
dann wird gesendet.  Wenn dir Leitungen vorher nicht sonst wie (durch 
andere Bus Teilnehmer oder Terminierung) auf die richtigen Pegeln 
gezogen wird, dann siehts aus wie auf deinem Bilder.

Da ist keinem extra Bit, sondern DE wird lediglich Aktiv.

von Lukas P. (timeout)


Lesenswert?

Ok, dass heißt, dass, was man da sieht ist eine Folge der "undefinierten 
Pegel", wenn man kein Pull-Up/Pull-Down benutzt?

von (prx) A. K. (prx)


Lesenswert?

Also nochmal, diesmal deutlicher: Wie sieht der Abschluss auf dem 
RS485-Bus aus? Normalerweise findet man pro Ende des Busses einen eher 
niederohmigen Widerstand zwischen A und B und nicht selten auch noch 
zwei höher dimensionierte Ziehwiderstände nach VCC/GND. Hier sieht es 
nicht danach aus, als ob diese Art Abschluss dran wäre.

von (prx) A. K. (prx)


Lesenswert?

Lukas P. schrieb:

> Ok, dass heißt, dass, was man da sieht ist eine Folge der "undefinierten
> Pegel", wenn man kein Pull-Up/Pull-Down benutzt?

Nein. Das was du damit meinst entsteht, wenn nur der Abschlusswiderstand 
zwischen A und B existiert. Dann kriegst du im inaktiven Zustand eine 
Differenz von 0V. Was hier nicht der Fall ist.

von Lukas P. (timeout)


Lesenswert?

An den Busklemmen hängt nur das Oszi dran, sonst nichts.
Einen Terminierungswiderstand habe ich nicht ausgewählt. Von 
Pull-Up/Down ist im Datenblatt nichts erwähnt.

von (prx) A. K. (prx)


Lesenswert?

Dann häng einen Abschlusswiderstand zwischen A und B.

von Lukas P. (timeout)


Lesenswert?

Ich verstehe nicht, wie ein Terminierungswiderstand (du meinst die 
obligatorischen 120 Ohm zwischen A und B?) B im Ruhezustand auf ein 
höheres Spannungsniveau ziehen soll.
Oder wie meinst du das mit der Terminierung?

Ich werde das, aber auf alle Fälle ausprobieren. Geht allerdings erst am 
Montag, vorher hab ich kein Oszi.

von Gregor B. (Gast)


Lesenswert?

Lukas P. schrieb:
> Dann habe ich die Bitfolgen analysiert. Vor dem Startbit wird scheinbar
>
> eine logische "1" übermittelt, die ich mir nicht so recht erklären kann.

Ist ganz einfach:

Der SP481 ist ein Halbduplex-RS485-Transceiver.
Normalerweise sind die Leitungen /RE (Receive Enable) und DE (Drive 
Enable) verbunden. Ein Halbduplex-Transceiver steht im Ruhezustand immer 
auf Empfang, die Leitungen A und B sind dann High Impedance.
Ruhepegel der TXD-Leitung einer seriellen Schnittstelle ist High.
Wenn jetzt an DI der Ruhepegel High anliegt und der SP481 auf Senden 
umgeschaltet wird (DE = High), wechselt Ausgang A auf High und Ausgang B 
auf Low.
Siehe Datenblatt.
Ist auch völlig egal, da der Empfänger nur auf eine Flanke von High nach 
Low reagiert.

von (prx) A. K. (prx)


Lesenswert?

Lukas P. schrieb:

> Ich verstehe nicht, wie ein Terminierungswiderstand (du meinst die
> obligatorischen 120 Ohm zwischen A und B?) B im Ruhezustand auf ein
> höheres Spannungsniveau ziehen soll.

Wenn der Bus inaktiv ist, d.h. der Transmitter abgeschaltet ist, dann 
sind die Leitungen A,B fast stromlos. Folglich sorgt der Widerstand 
dafür, dass gleicher Pegel vorliegt. Welcher absolute Pegel das dann 
ist, das ist im Rahmen des zulässigen Bereichs von RS485 egal.

> Ich werde das, aber auf alle Fälle ausprobieren. Geht allerdings erst am
> Montag, vorher hab ich kein Oszi.

Dafür tuts ein Multimeter. Mit dem kannst du den Pegel der Leitungen im 
inaktiven Zustand auch messen. Wenn sie lang genug inaktiv bleiben.

von Lukas P. (timeout)


Lesenswert?

Gregor B. schrieb:
> Ist ganz einfach:
>
> Der SP481 ist ein Halbduplex-RS485-Transceiver.
> Normalerweise sind die Leitungen /RE (Receive Enable) und DE (Drive
> Enable) verbunden.
Funktioniert das tatsächlich? Dann wären ja Ansätze mit z.B. einem FTDI 
unnötig, oder nicht?

> Ein Halbduplex-Transceiver steht im Ruhezustand immer
> auf Empfang, die Leitungen A und B sind dann High Impedance.
> Ruhepegel der TXD-Leitung einer seriellen Schnittstelle ist High.
> Wenn jetzt an DI der Ruhepegel High anliegt und der SP481 auf Senden
> umgeschaltet wird (DE = High), wechselt Ausgang A auf High und Ausgang B
> auf Low.
> Siehe Datenblatt.
Ok jetzt ist mir klar, woher der SPrung kommt. Dankeschön!

> Ist auch völlig egal, da der Empfänger nur auf eine Flanke von High nach
> Low reagiert.

Ich dachte immer, RS485 wäre Pegelgesteuert? Oder bezieht sich deine 
Aussage nur auf das Startbit?

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.