Forum: Mikrocontroller und Digitale Elektronik Rs485 ein Rätsel?!


von Reiner (Gast)


Lesenswert?

Hallo
Ich verstehe irgendwie die RS485 nicht glaube ich.
Also ich habe mir einige Thermometer Module gebaut (Avr, SN75176 und 
Stepdown auf Platine)
Diese Platinen 5 Stück davon habe ich mit je 4 Leitungen verbunden Vcc 
Gnd Rs485 + und Rs485 -
Auf dem Bus liegen 24V als Versorgung. Jedes Modul hat einen 5v 
Stepdown.

Als Daten verwende ich 9600 Seriell. Alle Teilnehmer sind auf Empfang 
und warten darauf antworten zu dürfen. Erst dann schalten sie den 75176 
auf senden, senden 8 byte und gehen dann wieder auf empfangen.

Ich habe zwei 120 Ohm Endwiderstände. Leitungen da noch auf dem 
Schreibtisch unter 1 Meter

Soweit sogut. Es funktioniert aber nur wenn der PC USB RS485 Mit 
angeschlossen und am USB hängt. Trenne ich die erbindung zum PC kommen 
keine Signale mehr durch.

Ich habe auch schon widerstände von Vcc und Gnd zum Bus versucht weil 
das in vielen Beispielen gemacht wird aber leider auch ohne Erfolg.

Habt ihr eine Idee was ich da Falsch machen könnte?

von Rest (Gast)


Lesenswert?

Du hast die RS485 Massse vergessen. Solange es über usb verbunden ist, 
ist es über die Usb Masse verbunden. Steckst du ab fehlt in deinem 
System der Massebezug. Auch wenn es rs485 ist, so ist die Common Mode 
Range eines RS485 Transceivers nicht sehr groß. Zieh eine 
masseverbindung nach ...

von Sebastian R. (sebastian_r569)


Lesenswert?

Bitte mal Schaltpläne als Bild und nicht als Text anfügen. Dann schauen 
wir weiter.

von ge-nka (Gast)


Lesenswert?


von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Reiner schrieb:
> Soweit sogut. Es funktioniert aber nur wenn der PC USB RS485 Mit
> angeschlossen und am USB hängt. Trenne ich die erbindung zum PC kommen
> keine Signale mehr durch.

Was für Signale sollen denn da "durchkommen", wenn Du den RS485-Master 
entfernst?

Deine Geräte warten darauf, daß ihnen jemand etwas sendet - dieser 
Jemand ist Dein PC. Wenn der nicht da ist ...

von Reiner (Gast)


Lesenswert?

Danke schon mal für die Antworten.
Also Masse habe ich doch dadurch das ich alle Geräte aus einem 
Gemeinsamen 24V Netz versorge?
Welche Daten da noch durchkommen sollen habe ich vergessen zu erzählen. 
Ein Avr hat ein Display und fragt die anderen ab. Also es gib einen 
"Master".

ge-nka schrieb:
> Bias-Widerstände einsetzen?

Das habe ich schon versucht leider ohne erfolg. Versucht habe ich 470Ohm 
und 4,7k Weil das Internet da sehr großzügig ist von 300 Ohm bis 10K 
habe ich schon alles gesehen.

von Achim S. (Gast)


Lesenswert?

Reiner schrieb:
> Also Masse habe ich doch dadurch das ich alle Geräte aus einem
> Gemeinsamen 24V Netz versorge?

Kommt darauf an, was der DC/DC zur Erzeugung der 5V mit der Masse macht.

Reiner schrieb:
> Jedes Modul hat einen 5v
> Stepdown.

Es gibt solche DCDC-Wandler mit Potentialtrennung (da geht der 
Massebezug verloren) und welche ohne Potentialtrennung (da bleibt er 
erhalten).

Ansonsten kann ich nur empfehlen, was auch andere schon gesagt haben: 
mach eine Skizze von deinem Netzwerk: damit wird das Problem viel klarer 
als mit deiner Beschreibung in Textform.

von Michael B. (loetmichel)


Lesenswert?

Klingt für mich alles danach daß Du den USB RS485 Adapter vom USB
trennst aber nicht vom Bus. Der wird nicht Tristate sein wenn er
stromlos ist.
Vermutlich geht einfach alles an Datensignal über die Schutzdioden
auf dem Treiber des Adapters flöten und versorgt den Converter Chip
im Adapter.

von Reiner (Gast)


Lesenswert?

Die Stepdown leiten Masse durch habe ich grade nochmal durchgemessen. 
Wenn ich den USB Wandler vom PC abziehe oder aus dem Rs485 oder beides 
macht keinen unterschied. Ich habe noch einen 75176 mit nur einer Led am 
Ausgang gebaut, Normal leuchtet diese und geht aus im Takt wenn Daten 
übertragen werden. Trenne ich die Verbindung zum PC geht sie aus und 
geht an wenn Daten gesendet werden. Irgendwie inventiert?!

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Reiner schrieb:
> Trenne ich die Verbindung zum PC
Wo trennst du die Verbindung zum PC? Nimmst du den Teinehmer weg vom 
RS485 Bus, oder steckst du nur den USB aus und lässt den Teilnehmer ohne 
Stromversorgung am RS485 Bus? (wurde zwar schon gefragt, aber noch nicht 
beantwortet...)

Und falls du ein Messgerät dein Eigen nennst: welche Spannungen has du 
denn im "OK"-Fall und im Fehlerfall an den Datenleitungen gegen Masse?

: Bearbeitet durch Moderator
von szung (Gast)


Lesenswert?

Reiner schrieb:
> Irgendwie inventiert?!

Irgendwie Schaltbild???!!!

von Reiner (Gast)


Lesenswert?

Ein Schaltbild gibt es nicht. Ich kann es nur beschreiben.
Im Ok fall habe ich 5,06v und 4,82v auf dem Bus während keine Daten 
unterwegs sind.
Ohne Usb 4,62v und 4,86v.

Ich trenne Die zwei Busleitungen vom Usbstick. Es gibt dann nur noch die 
von mir gebauten Teilnehmer.
Es gibt keine Verbindung Masse von meinen Geräten zu Masse Pc.

von Dergute W. (derguteweka)


Lesenswert?

Moin,

Reiner schrieb:
> Ein Schaltbild gibt es nicht. Ich kann es nur beschreiben.

Keine Arme, keine Kekse.

Haeng' ein Scope dran, guck' dir die Signale an.
Wenn's mit drangehaengtem Scope auch wieder funktioniert, wirds schon 
was mit Masse zu tun haben.
Wenn nicht, wirst du schon irgendwelche Unterschiede auf dem Scope 
erkennen, wenn der PC-USB Adapter dranhaengt oder nicht.

Gruss
WK

von Reiner (Gast)


Lesenswert?

Ich habe eben den Usb Stick in meinen Laptop gesteckt und auch dann geht 
es. Laptop nur über Akku.
Ein Scope habe ich leider nicht.

von Reiner (Gast)


Lesenswert?

Und auch mit dem Usb Stick in einem 5v Netzteil funktioniert es.
Also irgendwie muss es wohl mit der Versorgung Zutun haben.
Also doch Bias? Welche Widerstände würdet ihr da vorschlagen?
470Ohm und 4,7K habe ich schon versucht

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Reiner schrieb:
> Im Ok fall habe ich 5,06v und 4,82v auf dem Bus während keine Daten
> unterwegs sind.
> Ohne Usb 4,62v und 4,86v.
Die absolute Spannung scheint mir in beiden Fällen zu hoch und die 
Differenz zu gering. Eigentlich ist erst eine Differenz >300mV ein 
gültiger Pegel.

Welche Transceiver verwendest du denn? Wie sind die versorgt? Welcher 
treibt denn da eine solch hohe Spannung auf den Bus?

Jetzt wirds dann tatsächlich langsam Zeit für den öfters geforderten 
Schaltplan...

von Dieter W. (dds5)


Lesenswert?

Reiner schrieb:
> Im Ok fall habe ich 5,06v und 4,82v auf dem Bus während keine Daten
> unterwegs sind.
> Ohne Usb 4,62v und 4,86v.

Das ist dann einmal 0 und das andere mal 1 Pegel, so kann das nicht 
funktionieren.

Die 75176 sind übrigens wahre Stromfresser, da gibt es (viel) besseres.

von Johannes (Gast)


Lesenswert?

Reiner schrieb:
> Im Ok fall habe ich 5,06v und 4,82v auf dem Bus während keine Daten
> unterwegs sind.
> Ohne Usb 4,62v und 4,86v.

Das klingt für mich nach einem prinzipiellen Fehler in deinem Busaufbau. 
der SN75176 ist ein 5V Typ. Wenn du nun schon Experimente mit einem Bias 
Netzwerk + Bus Abschluss gemacht hast. Denn ansonsten müsste sich ja 
hier im Bus open Fall ca. 2.5V +/- 0.2V für A/B einstellen.
Also scheint hier irgendwas kräftig A&B in eine Richtung zu ziehen.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Johannes schrieb:
> Also scheint hier irgendwas kräftig A&B in eine Richtung zu ziehen.
Oder da ist doch noch irgendein Masseproblem auf der ganzen 
Geschichte...

Es gibt welche, die lassen die beiden Busleitungen tatsächlich irgendwie 
vor sich hinbaumeln wie im 
Beitrag "Re: Datenübertragung über >100m"

: Bearbeitet durch Moderator
von Reiner (Gast)


Lesenswert?

Als Treiber verwende ich SN75LBC176
Die Hohe Spannung war der Passende Hinweis. Dankeschön :)
Ich habe erst nur meinen Master mit dem Usb Stick vermessen und hatte ca 
200mV auf dem Bus Dann habe ich sie nacheinander zugesteckt und bei 
einem hatte ich dann wieder 4,v. Wenn man diesen raus lässt klappt die 
Verbindung auch ohne den Usb Stick.
Also vermutlich ein defekter Treiber.

Dankeschön ;)

Und ja ich werde noch einen Schaltplan machen

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Reiner schrieb:
> Ich habe erst nur meinen Master mit dem Usb Stick vermessen und hatte ca
> 200mV auf dem Bus
Auch das ist zu wenig, da ist noch was faul!

Der SN75LBC176 treibt am Ausgang normalerweise eine Differenzspannung 
von größer 1,5V!

Und du hast ganz speziell Glück, dass er mit sich deiner 
Differenzspannung von 0,2V am Eingang zufrieden gibt. Der 
RS485-Standard verlangt da mindestens(!) 0,3V für einen gültigen Pegel.

: Bearbeitet durch Moderator
von Reiner (Gast)


Lesenswert?

Aber mehr gibt es ja in dem Bus nicht. Dann müssten ja schon alle 
Treiber fehlerhaft sein? oder wodurch wird das beeinflusst?
Ich habe ja jetzt im Bus nur 5 Identische Treiber und zwei 120 Ohm's am 
ende.
Alles über 5v Versorgt (Ich habe eben zum testen die Stepdown raus 
genommen und alles zusammen am Labornetzteil)
Auf dem Usb wandler sitzt auch schon so ein Treiber da ich den Original 
mal gebraten hatte.
Ausschießen kann ich aber Fehlerhafte Treiber nicht weil ich die aus 
China bestellt habe und recht wenig dafür bezahlt habe.

von szung (Gast)


Lesenswert?

Wie sehen Deine Signale aus?
Wie sehen die Betriebsspannungen aus?
Was ist mit Deinen Enable-Signalen?
Gibt es Kurzschlüsse oder Unterbrechungen?
Ist alles richtig verschaltet? (Überprüft mittels Schaltplan!!!)

von Reiner (Gast)


Lesenswert?

Die Signale sind Sauber 5v aus einem AVR
Betriebsspannung ein Gutes Analoges Labornetzteil 5v Nahezu perfekt
Enable Signale werden nur gesetzt wenn jemand sendet. Die 0,2v Sind 
gemessen als keine Daten übertragen wurden. Also kein Master aktiv.
Kurzschlüsse und Fehler ich hoffe nicht ;) es Funktioniert jetzt ja auch 
wieder wie es sollte. Nur sind die Pegel nicht da wo sie sein sollten.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Reiner schrieb:
> Enable Signale werden nur gesetzt wenn jemand sendet.
Da haben wir den "Messfehler"...

Reiner schrieb:
> Die 0,2v Sind gemessen als keine Daten übertragen wurden. Also kein
> Master aktiv.
Du solltest natürlich schon die aktiven Signale bei einer Übertragung 
messen und angeben, denn die Übertragung geht ja schief, und nicht der 
Ruhezustand, oder?
Ich war bisher davon ausgegangen, dass der Bus auch ohne Übertragung vom 
"Master aller Master" aktiv gehalten und getrieben wird, dass also 
immmer 1 Teilnehmer aktiv auf dem Bus ist.
Wenn das nicht der Fall ist, dann solltest du den Bus mit Widerständen 
auf definierte Pegel "vorspannen".

Reiner schrieb:
> Funktioniert jetzt ja auch wieder wie es sollte.
Mir würde das nicht reichen.
> Nur sind die Pegel nicht da wo sie sein sollten.
Wo sollten sie denn sein, wenn auf dem Bus kein Transceiver treibt?

: Bearbeitet durch Moderator
von szung (Gast)


Lesenswert?

Reiner schrieb:
> Es funktioniert aber nur wenn der PC USB RS485 Mit
> angeschlossen und am USB hängt.

Reiner schrieb:
> Irgendwie inventiert?!

Reiner schrieb:
> Also vermutlich ein defekter Treiber.

Reiner schrieb:
> es Funktioniert jetzt ja auch
> wieder wie es sollte.

Nach meinem Verständnis gibt es hier Widersprüche.

von Reiner (Gast)


Lesenswert?

Lothar M. schrieb:
>> Funktioniert jetzt ja auch wieder wie es sollte.
> Mir würde das nicht reichen.

Hmm ist ein Defekter Bustreiber nicht Grund genug?
Nein der Bus ist die meiste Zeit ohne einen Aktiven Master.

Lothar M. schrieb:
> dann solltest du den Bus mit Widerständen
> auf definierte Pegel "vorspannen".

Wir würde ich das anstellen? Über Bias?

Ich muss noch viel Lernen glaube ich ...

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Reiner schrieb:
> Nein der Bus ist die meiste Zeit ohne einen Aktiven Master.
Dann läuft da ja nie was los, weil alle bis zum Sanktnimmerleinstag 
warten,
denn Reiner schrieb:
>>> Alle Teilnehmer sind auf Empfang und warten darauf antworten zu dürfen.
Irgendwer muss doch die Hosen anhaben und die Abfrage starten...

Reiner schrieb:
> Wir würde ich das anstellen? Über Bias?
Ja. Neben den beiden Busabschlusswiderständen noch 2 hochohmigere, die 
den floatenden Bus auf ca, 2,5V ziehen, und trotzdem mehr als 300mV 
Spannungsabfall an den Abschlusswiderständen erzeugen, damit die 
Eingangstreiber nicht dauernd hin- und herschalten.

von szung (Gast)


Lesenswert?

Reiner schrieb:
> Lothar M. schrieb:
>> dann solltest du den Bus mit Widerständen
>> auf definierte Pegel "vorspannen".

Wieso?

Sobald der Master senden möchte, wird er vorher enabled. Damit stimmt 
der Pegel auf dem Bus (d.h. ca. +2,5...+3V) und er kann mit dem Senden 
beginnen. Danach darf die Spannung wieder auf 0V abfallen. Erst wenn nun 
ein Slave antworten möchte, muss er vorher (mittels enable) wieder für 
die Spannung auf dem Bus sorgen.

von Dietrich L. (dietrichl)


Lesenswert?

szung schrieb:
> Wieso?
>
> Sobald der Master senden möchte, wird er vorher enabled. Damit stimmt
> der Pegel auf dem Bus (d.h. ca. +2,5...+3V) und er kann mit dem Senden
> beginnen. Danach darf die Spannung wieder auf 0V abfallen. Erst wenn nun
> ein Slave antworten möchte, muss er vorher (mittels enable) wieder für
> die Spannung auf dem Bus sorgen.

Du brauchst aber einen definierten Ruhepegel, wenn keiner sendet. Denn 
der Empfänger ist ja üblicherweise ein UART, und der braucht zum Starten 
eine passende Flanke bei Beginn des Startbits. Ist der Ruhepegel falsch, 
fehlt diese Flanke.

von Reiner (Gast)


Lesenswert?

Lothar M. schrieb:
> Dann läuft da ja nie was los, weil alle bis zum Sanktnimmerleinstag
> warten,

Das ist korrekt. Eine handvoll Sensoren warten auf ein Signal mit 
Identifikation, Daraufhin antwortet der Teilnehmer mit seinen Daten. 
Dann ist wieder Ruhe.
Der Master schaltet das Senden aus damit eventuell auch ein Zweiter 
Master die Daten abfragen könnte.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Dietrich L. schrieb:
> Du brauchst aber einen definierten Ruhepegel, wenn keiner sendet. Denn
> der Empfänger ist
... im Differenzspannungsbereich zwischen -200V..+200mV nicht definiert. 
Und wenn da jetzt irgendeine Störeinkopplung auf diesen floatenden Bus 
kommt, dann zappeln die Ausgänge der Empfänger beliebig vor sich hin- 
und her. Und der dahinter kommende UART-Eingang meint ab&zu, ein 
Startbit zu erkennen. Kuriose Effekte sind dadurch vorprogrammiert.

Reiner schrieb:
> Der Master schaltet das Senden aus damit eventuell auch ein Zweiter
> Master die Daten abfragen könnte.
Mal generell: wie fängst du denn da eine mögliche Kollision ab? Was 
passiert, wenn beide Master "zufällig" mal ziemlich zeitgleich den Bus 
benutzen wollen?

: Bearbeitet durch Moderator
von Purzel H. (hacky)


Lesenswert?

Nochwas. Schmeiss die 75176 raus. die verheizen 40mA das Stueck ohne 
Last, waehrend neue Typen weniger als 1mA verbrauchen. Die Neuen sind 
Pinkompatibel.

von Reiner (Gast)


Lesenswert?

Name H. schrieb:
> Nochwas. Schmeiss die 75176 raus.

Deswegen habe ich schon die SN75LBC176 Die sind recht genügsam.
Aber für andere Ideen bin ich offen

Lothar M. schrieb:
> Mal generell: wie fängst du denn da eine mögliche Kollision ab?

Garnicht. Wenn keine Antwort kommt wird einfach nochmal angefragt. Das 
könnte ich ggf noch durch eine Zufallszeit verbinden. Aber Multimaster 
ist erstmal noch nicht

von Johannes (Gast)


Lesenswert?

Reiner schrieb:
> Aber für andere Ideen bin ich offen

ST485. Ist Pinkomatibel und braucht unter 1mA wenn Ruhe auf dem Bus ist. 
Aus eigener Erfahrung kann ich zudem sagen das er auch mal grob 
fahrlässige Behandlung am Bus übersteht ^^

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.