Forum: Mikrocontroller und Digitale Elektronik RS485 DifferentialSpannung TI SN75176 schwach


von Markus Z. (zelg)


Angehängte Dateien:

Lesenswert?

Hallo zusammen

Ich bastle gerade an meinem ersten Versuch vom RS485-Bus. Folgendes 
Setup habe ich:

Rapsi->Addon-Board Raspicomm [1] -> 10cm TelefonDraht -> TI SN75176 -> 
TTL Serial auf Teensy 3.1 auf Serial1.

Teensy und Raspi und RaspiComm haben die Gleiche Spannungsregeler und 
gleicher GND. SN75176 ist auch gegroundet.

Serial läuft auf Raspi und auf Teensy mit 57600 bps.

Ein Ticket (10 Byte) vom Raspi kann ich erfolgreich dem Teensy schicken. 
Siehe Bild IMG_0138.JPG. Die Differentialspannung ist prima, die 
Frequenz ist innerhalb 2%.

Wenn ich nun vom Teensy über SN75176 schicke, sinkt die 
Differentialspannung auf ca 1.2 V. Dies scheint für den MAX RS485 auf 
dem RaspiComm zu wenig zu sein und "sieht" nichts logisches". siehe 
IMG_0151.JPG

Hinweis: Gemessen wurde A und B gegen GND vom SN75176, der GND ist der 
gleiche für alle gelisteten Bauteile.

Ich habe sämtliche Datenblätter und Schemata durchgeschaut und leider 
nichts gefunden, was mir Anhalt geben könnte. Es gibt im Web etliche 
"Case Studies" wie man das Signal auf A-B optimiert, leider habe ich 
kein case zu meinem Fall gefunden.

A-B- werden auf dem raspicom gegen 5V, resp. GND ohmig gezogen und 
terminiert.

Kann es sein, dass der billige SN75176 mit seinen unitLoads hier die 
Differentialspannung vermiest?

Was könnte ich noch messen?

[1] RaspiComm Schema: 
http://www.amescon.com/media/3444/RaspiComm_rev5.pdf

von Falk B. (falk)


Lesenswert?

@ Markus Zelg (zelg)

>Ein Ticket (10 Byte) vom Raspi kann ich erfolgreich dem Teensy schicken.
>Siehe Bild IMG_0138.JPG. Die Differentialspannung ist prima, die
>Frequenz ist innerhalb 2%.

>Wenn ich nun vom Teensy über SN75176 schicke, sinkt die
>Differentialspannung auf ca 1.2 V.

Ist zwar wenig, reicht aber für RS485. Dort braucht man nur knapp über 
+/-200mV.

>A-B- werden auf dem raspicom gegen 5V, resp. GND ohmig gezogen und
>terminiert.

Mit welchem Wert?

>Kann es sein, dass der billige SN75176 mit seinen unitLoads hier die
>Differentialspannung vermiest?

Nein.

>Was könnte ich noch messen?

Kann es sein, dass der empfangende SN75176 beim 2. Versuch noch auf 
Senden steht? Dann arbeiten 2 Sender gegeneinander.

von Matz K. (xt-matz)


Lesenswert?

Falk B. schrieb:
>>A-B- werden auf dem raspicom gegen 5V, resp. GND ohmig gezogen und
>>terminiert.
>
> Mit welchem Wert?

560R (siehe Link zum Rapsicom vom TO)

Markus Z. schrieb:
> 10cm TelefonDraht -> TI SN75176

Sind zwischen 75176 und der Leitung noch Widerstände dazwischen, so wie 
auf dem Rapsicom, oder auch Pullup/Pulldowns? Oder geht der direkt auf 
die "Leitung"?

Falk B. schrieb:
> ...der empfangende SN75176 beim 2. Versuch noch auf Senden steht?

Das könnte es sein. Hier ist der Rapsicom der Empfänger, der hat zwar 
keinen 75176, sondern ein MAX3140 drin, so nen Kombiteil UART + RS485 + 
Schnickschnack. Ist aber egal. Die Richtungsumschaltung (DE) ist auf dem 
Rapsicom über /RTS verdrahtet. Die gilt es tatsächlich zu prüfen.

Denn weiterhin würde passen, dass auf der Leitung zwar noch 
Differenzspannung von 1.2V zu sehen ist. Der Rapsicom hat aber 2x47R in 
Reihe, so dass dahinter, also direkt am Transceiver der offensichtlich 
noch aktiver Treiber alles schön festhält. Dort wird der Differentpegel 
dann nur noch minimal sein, so dass nix "logisches" ankommt.

von Purzel H. (hacky)


Lesenswert?

Laengerfristig wuerd ich mich vom 75176 trennen, denn der zieht zuviel 
fuer sich selbst. Etwa 40mA fuer nichts. Waehrend modernere Chips mit 
0.4mA dabei sind.

von Markus Z. (zelg)


Lesenswert?

Matz K. schrieb:
> Die Richtungsumschaltung (DE) ist auf dem
> Rapsicom über /RTS verdrahtet. Die gilt es tatsächlich zu prüfen.

Danke, ja das wird es sein.
Auf dem RaspiComm sehe ich NIX ankommen, d.h. der MAX will immer noch 
senden.

17 für 15 schrieb:
>Laengerfristig wuerd ich mich vom 75176 trennen

Klar! Ist nur so schneller Griff in die Kiste zu Hause... Ich möchte 
MAX487 einsetzen.

Melde mich, wenn ich gemessen habe, resp. verstanden habe, wie der MAX 
auf recv. zu schalten ist.

von Markus Z. (zelg)


Angehängte Dateien:

Lesenswert?

Hallo zusammen

Problem teilweise gelöst.

IMG_0177.JPG zeigt wie der TI SN75176 korrekt auf Senden geschaltet 
wird.
IMG_0178.JPG zeigt wie der MAX korrekt die Richtungsumschaltung (DE) 
setzt.

Der Bus läuft soweit stabil über 10 cm Testdraht. Mich wundert einfach, 
warum das Signal vom MAX geschwächt ist, gegenüber dem TI-Chip.

Annahme:
Der Endwiderstand (auf RaspiComm fest verdrahtet) ist nicht optimal 
(aber innerhalb der EIA-485 Spez) für den MAX ausgelegt.

Kann mir jemand das bestätigen?

Hinweis zu den Bildern: Die 10ms Reaktionszeit des Teensy 3.1 ergibt 
sich auf Grund eines
1
  delay(10);
 aus Testzwecken und wird später auf unter 2ms optimiert.

von Matz K. (xt-matz)


Lesenswert?

Hallo Markus,

Matz K. schrieb:
> Sind zwischen 75176 und der Leitung noch Widerstände dazwischen, so wie
> auf dem Rapsicom, oder auch Pullup/Pulldowns? Oder geht der direkt auf
> die "Leitung"?

Kannst Du diese Frage noch beantworten? Oder die Vermutung bestätigen, 
dass der 75176 direkt raus geht, ohne was dazwischen?

Ich habe mir nochmal die Schaltung vom Rapsicomm angesehen. Und dann 
erklärt sich die Sache:

Der MAX geht dort mit 2x 47R (R17, R20) in Serie raus auf die Leitung. 
Dahinter ist noch einen Parallelwiderstand von 120R (R19). Das ist der 
Spannungsteiler, der das Ausgangssignal des MAX herunterteilt!
Von dem 75176 auf der anderen Seite nehmen wir an, dass er direkt auf 
die Leitung ballert. Deshalb ist dessen Pegel auf der Leitung 
ungebremst.

Gruß
Matz

von Georg (Gast)


Lesenswert?

Matz K. schrieb:
> Der MAX geht dort mit 2x 47R (R17, R20) in Serie raus auf die Leitung.

Wenn man eine Quelle mit 50 Ohm Innenwiderstand an eine Leitung mit 50 
Ohm Wellenwiderstand anschliesst, wird die Spannung halbiert - das ist 
der Preis für die Anpassung.

Georg

von Matz K. (xt-matz)


Lesenswert?

Georg schrieb:
> Wenn man eine Quelle mit 50 Ohm Innenwiderstand an eine Leitung mit 50
> Ohm Wellenwiderstand anschliesst, wird die Spannung halbiert - das ist
> der Preis für die Anpassung.

Im Prinzip richtig. Diese Leitungstheorie greift aber erst so richtig 
bei Übertragungsspektren mit Wellenlängen die kleiner sind als die 
Kabellänge, oder umgekehrt: wenn die Kabellänge größer als die 
Wellenlänge ist.

Markus schrieb es zwar nicht, den Oszillogrammen ist aber zu entnehmen, 
dass er etwa mit 56 kBaud arbeitet und (derzeit) 10 cm Leitung 
dazwischen hat.
Bei 10 cm Leitung wird die Leitungstheorie bei etwa 3 GHz interessant.

Wenn TO Markus aber längere Kabel dazwischen hängen möchte, dann sollte 
man sauber anpassen. D'accord.

: Bearbeitet durch User
von Dietrich L. (dietrichl)


Lesenswert?

Matz K. schrieb:
> Georg schrieb:
>> Wenn man eine Quelle mit 50 Ohm Innenwiderstand an eine Leitung mit 50
>> Ohm Wellenwiderstand anschliesst, wird die Spannung halbiert - das ist
>> der Preis für die Anpassung.
>
> Im Prinzip richtig. Diese Leitungstheorie greift aber erst so richtig
> bei Übertragungsspektren mit Wellenlängen die kleiner sind als die
> Kabellänge, oder umgekehrt: wenn die Kabellänge größer als die
> Wellenlänge ist.

Das stimmt schon so, was Georg schrieb. Er hätte höchstens noch dazu 
schreiben sollen, dass diese Leitung auch einen 50 Ohm 
Abschlusswiderstand hat. Allerdings sollte das der Normalfall sein. Dann 
halbiert sich die Spannung auch bei 0 Hz.

Gruß Dietrich

von (prx) A. K. (prx)


Lesenswert?

Dietrich L. schrieb:
> Das stimmt schon so, was Georg schrieb. Er hätte höchstens noch dazu
> schreiben sollen, dass diese Leitung auch einen 50 Ohm
> Abschlusswiderstand hat. Allerdings sollte das der Normalfall sein. Dann
> halbiert sich die Spannung auch bei 0 Hz.

Der differenzielle Innenwiderstand von RS485 Treibern entspricht nicht 
notwendigerweise der Leitungsimpedanz. Eine Halbierung wär eher Zufall.

SN75176B:
High ist 4V bei 20mA, 3V bei 90mA. => R(diff) = 15 Ohm.
Low ist 0,9V bei 20mA, 1,5V bei 80mA. => R(diff) = 10 Ohm.

: Bearbeitet durch User
von Markus Z. (zelg)


Lesenswert?

Matz K. schrieb:
> Markus schrieb es zwar nicht, den Oszillogrammen ist aber zu entnehmen,
> dass er etwa mit 56 kBaud arbeitet und (derzeit) 10 cm Leitung
> dazwischen hat.

Ja, die 57600 Baud sind korrekt. Sowohl der MAX wie der SN halten sich 
an diesen Speed ziemlich genau (gemessen mit dem Oszi bei reinzoomen)

Ja, aktuell habe ich testhalber 10cm Leitung. Die Busleitung wird am 
Ende mit ca 40 Teilnehmern gegen 50m sein. Der MAX ist ziemlich genau in 
der Mitte.

Was bedeutet das für die Terminierung? Da muss ich wohl den RaspiComm 
die Terminierung der BusLeitung weg nehmen und diesen bei den Knoten am 
SN vornehmen. Korrekt?

Soll ich den Parallelwiderstand von 120R (R19) auf dem RaspiComm 
belassen oder entfernen? Was ist eure Expertise?

von Matz K. (xt-matz)


Lesenswert?

Auf dem Rapsicom die 120R entfernen (da der Rapsicom in der Mitte der 
Leitung hängen soll).
An beiden Enden der Bus-Leitung dann je 100 ... 120R dran.
Und jeden Transceiver - wie das auch schon auf dem Rapsicomm realisiert 
ist - mit 2x 47R ... 56R in Serie an den Bus klemmen mit möglichst 
kurzer (oder keiner) Stichleitung

Das sollte schon mal ein guter Startingpoint sein für 57kBaud und 50m.
Wenn Du die Werte genauer haben willst, dann musst Du die Leitung 
ausmessen (es sei denn Du kennst den Wellenwiderstand).

von Markus Z. (zelg)


Lesenswert?

Matz K. schrieb:
> Das sollte schon mal ein guter Startingpoint sein für 57kBaud und 50m.

Besten Dank.

Ich habe verstanden, dass die 56Baud über 50m realistisch sind, wenn ich 
der Terminierung von Matz K folge. Ich habe vor den Bus schrittweise zu 
erweitern und zwischendurch die Signalstabilität mit dem KO auszumessen.

Das mit dem Wellenwiderstand habe ich natürlich absolut nicht 
verstanden. ich werd mich mal schlau machen. Danke fürs Stichwort.

von Falk B. (falk)


Lesenswert?

Siehe Wellenwiderstand.

56k7 Baud sind ein Witz, die schafft man mit RS485 auch über 1000m.

von (prx) A. K. (prx)


Lesenswert?

Matz K. schrieb:
> Und jeden Transceiver - wie das auch schon auf dem Rapsicomm realisiert
> ist - mit 2x 47R ... 56R in Serie

RS485 mit sowohl Serien- wie auch Parallelterminierung? Wozu? Zumal zwar 
die SN75176 Varianten einen ziemlich niedrigen Innenwiderstand haben, 
deren sparsamere Alternativen aber einen deutlich höheren.

The RS-485 Design Guide:
http://www.ti.com/lit/an/slla272b/slla272b.pdf

: Bearbeitet durch User
von Markus Z. (zelg)


Lesenswert?

A. K. schrieb:
> SN75176 Varianten einen ziemlich niedrigen Innenwiderstand haben

Ist mir bewusst.
Ich möchte eigentlich auf den MAX487 wechseln. Das heisst die Topologie 
wäre dann so was:

[Terminierung]-[node 1: MAX487] --- [node n+1: MAX487] --- [RaspiComm 
mit MAX3140] --- [node x+1: MAX487] --- [node max.50: MAX487] - 
[Terminierung]

über ca. 50m, linear, 3-drahtig mit gemeinsamen GND, mind. 57kBaud.

Wie würde die Terminierung dann aussehen?

von (prx) A. K. (prx)


Lesenswert?

Markus Z. schrieb:
> Wie würde die Terminierung dann aussehen?

Siehe PDF, Fig 5 oder 6.

von Falk B. (falk)


Lesenswert?

@Markus Zelg (zelg)

>Wie würde die Terminierung dann aussehen?

So wie überall!

https://www.mikrocontroller.net/articles/RS-485#Weitere_Hinweise

von Markus Z. (zelg)


Lesenswert?

Habe mich kurz eingelesen zum Thema Wellenwiderstand.

Ja, somit ergibt sich der Serienwiderstand ziemlich klar, es sei denn 
ich wechsle grundsatzlich den Baustein/Prozessor zu einem viel schneller 
schaltenden.

von Falk B. (falk)


Lesenswert?

@Markus Zelg (zelg)

>Ja, somit ergibt sich der Serienwiderstand ziemlich klar,

Nö, denn RS485 wird so gut wie NIE mit Serienterminierung betrieben, 
eigentlich IMMER mit Parallelterminierung an beiden Busenden!

von (prx) A. K. (prx)


Lesenswert?

Markus Z. schrieb:
> Ja, somit ergibt sich der Serienwiderstand ziemlich klar,

Serienterminierung ist nur bei einer unidirektionalen 2-Punkt Verbindung 
brauchbar. Anzapfungen zwischendrin sehen Müll.

In einem normalen RS485 Netz ist ein (Angst-) Serienwiderstand nicht 
erforderlich. Sehr wohl aber die Terminierungen an den Enden.

: Bearbeitet durch User
von Markus Z. (zelg)


Angehängte Dateien:

Lesenswert?

Hier ein Versuch eure Information wider zu geben. Braucht es die grünen 
Widerstände auch? Ich dachte schon.

Die Max links und Max rechts sind die letzten im Bus, in der Leitung 
"hängen" dann noch weitere Maxen...

von Matz K. (xt-matz)


Lesenswert?

A. K. schrieb:
> Serienterminierung ist nur bei einer unidirektionalen 2-Punkt Verbindung
> brauchbar. Anzapfungen zwischendrin sehen Müll.

Die Serienterminierung ist bei den Empfängern eigentlich keine, denn 
diese lauschen in diesem Fall mit ihrem hochohmigen Eingangen auf der 
Leitung. Und dann fällt der Serienwiderstand nicht ins Gewicht. Damit 
sehen die Empfänger schon scharf.

Aber irgendwo hat A.K. recht, wenn ich noch mal drüber nachdenke (wie 
gut dass wir das Forum haben), dann ist der Serienwiderstand einfach nur 
unnütz.

Man kann einige funktionierende Sauereien ohne Anpassung und ohne 
Terminierung machen, aber das würde in einen anderen Thread passen.

Wie schon Falk B. schrieb:
> 56k7 Baud sind ein Witz

Du wirst auf die Serienwiderstände verzichten können. Nun sind sie halt 
mal im Rapsicom drin. Schaden tun sie auch nicht. Der Pegel sollte 
ausreichen. Und bei 50m Kabel wird es mit 57kBaud im Zweifel auch ohne 
Endwiderstände laufen.

Du siehst also: die Kiste wird laufen. Mach Dir keinen Kopf.
Den Grund für Deine Pegelunterschiede haben wir auch gefunden; das was 
Du gemessen hast enspricht also voll den Erwartungen.

-- Während meines Posts gerade reingekommen:

Markus Z. schrieb:
> Braucht es die grünen Widerstände auch?

Nein. Das ist unnötige Belastung. Wenn ordentliche Terminierung, dann 
nur 1x mit Wellenwiderstand an jedem Ende. Fertig.

Die 47 Serienwiderstände haben wir ja auch schon wegdiskutiert. Da habe 
ich nicht verstanden, warum die Du auf dem Rapsicom nun rausgemacht hast 
(steth auf der Skizze) und beiden anderen welche rein machst.

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.