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?
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 ...
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 ...
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.
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.
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.
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?!
Reiner schrieb:> Trenne ich die Verbindung zum PCWo 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?
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.
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
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
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...
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.
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.
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"
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
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.
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.
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!!!)
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.
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?
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.
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 ...
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.
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.
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.
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.
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?
Nochwas. Schmeiss die 75176 raus. die verheizen 40mA das Stueck ohne
Last, waehrend neue Typen weniger als 1mA verbrauchen. Die Neuen sind
Pinkompatibel.
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
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 ^^