Hallo liebe Mikrocontroller Gemeinde,
ich bin auf der Suche nach einem experten was die RS485 Signalpegel angeht.
Ich möchte gerne das Display von meinem Wohnmobil (Infomationen über Batteriespannungen, Tankinhalte, Beleuchtung und Wasserpumpe schalten) gegen eine Raspberry Pi 5 mit Display und TTL_to_RS485 wechseln um die Information zu erweitern und besser anzuzeigen. Laut Internet ist das alte Display über eine RS485 Verbindung mit der Wohnmobilsteuerung verbunden. Den Datenstring habe ich auch schon aufgeschlüsselt. Leider sind die Signalpegel unterschiedlich (siehe Bilder). Die Kabellänge beträgt 5m und hat im Original keine Abschlusswiederstände. Auf den beiden Bildern erkennt man den Datenstring vom Master (die ersten 5Byte) und die Daten von der Steuerung (die hinteren 20 Byte).
Bei dem Bild "Wohnmobilsteuerung mit TTL_to_Rs485" kommt der Datenstring vom Master nicht sauber an.
Ich hoffe das alles verständlich ist und aus den Bildern die richtigen Rückschlüsse gezogen werden können
hast du eine Masseleitung mit dem RS485 mitgeführt? Auch zum Oszi-Ground?
Der negative Haken da am Ende sieht komisch aus.
Kannst du ein Schema-Schaltplan mit Kabellängen, jeweils genutzten Massepunkten, DCDC usw. erstellen?
Dabei auch einzeichnen, woher das Oszi seinen Groundbezug her hat.
Notfalls muss die Versorgung des R-PI eben in der Nähe des Aktuator-Steuergeräts abgegriffen und mit durch die Bude entlang des RS485 geführt werden.
Du brauchst ein Bias-Netzwerk, dass den roten Pegel auf high zieht, wenn keiner sendet. Dieses war offenbar im originalen Display, aber nun fehlt es.
Ein "richtiger" RS-485-Knoten würde beide Pegel aktiv treiben können, während er aktiv ist. Der neue Knoten treibt allerdings nur "rot runter, blau hoch", nicht andersrum. Daher sind die Flanken seeeehr rund, viel länger als eine Bitzeit, und damit unbrauchbar. Das ist offenbar die "Sparschaltung", wo die Sende-Empfangs-Umschaltung als Sendeleitung verwendet wird. Abhilfe sollte auch dagegen ein starkes Bias-Netzwerk schaffen.
In etwa so: rot über 560 Ohm nach 5V, blau über 560 Ohm nach Masse. Zwischen den Leitungen 150 Ohm. (Werte angelehnt an https://de.wikipedia.org/wiki/EIA-485)
Hallo Hmmm,
ich schicke von der Raspberry Pi das Signal(FF 00 00 00 FF) immer wieder los und auf dem Oziloskop wird das Signal so angezeigt und der Slave (Wohnmobilsteuerung) kommt nur selten eine Antwort und die ist auch nicht immer korrekt.
Hallo Achim,
die Verbindung zwischen Steuerung und Display sind 4 Adern (+12VDC, Masse, A, B). An dem TTL_to_RS485 Modul habe ich Masse, A und B angeklemmt. Der Testaufbau hat nur 40cm Leitung und in der Mitte habe ich das Oziloskop mit Ground an Masse angeschlossen.
Deine Signale schauen schon sehr verschliffen aus. Ist der Bus am jedem Ende mit 120 Ohm abgeschlossen? Vielleicht hast du einen Teilnehmer entfernt der den Widerstand integriert hatte.
ich schicke von der Raspberry Pi das Signal(FF 00 00 00 FF) immer wieder
los und auf dem Oziloskop wird das Signal so angezeigt ...
Wo siehst du in Wohnmobilsteuerung_mit_TTL_to_RS485.png ein 0xFF 0x00 0x00 0x00 0xFF?
Kein Wunder, dass das Wohnmobil da nichts versteht.
Wie sieht denn das Signal auf dem Bus aus, wenn du das Wohnmobil erstmal abklemmst?
Sollen die Zeichen, die du mit dem RaspPi sendest, die Datenausgabe vom Wohnmobil anstoßen oder plappert das von sich aus vor sich hin?
Wie werden bei deinem Aufbau die RS485-Sender aktiviert?
Hallo Uwe,
da ich an der RS485 Seite vom TTL_to_RS485 Konverter die Verbindung aufgebaut habe müsste ich doch das BIAS Netzwerk mit 12V beschalten und kannst Du mir sagen welche Widerstände ich dort benötige.
ich schicke von der Raspberry Pi das Signal(FF 00 00 00 FF) immer wieder
los und auf dem Oziloskop wird das Signal so angezeigt und der Slave
(Wohnmobilsteuerung) kommt nur selten eine Antwort und die ist auch
nicht immer korrekt.
Vermutlich liegt es an Deiner RasPi-Schnittstelle. Wie koppelst Du denn den Pi an die Wohnmobilsteuerung? Vermutlich brauchst Du da nur einen passenden Adapter, der die erforderlichen Pegel liefern kann.
Gute RS485 Boards haben die passenden Pullup-, Pulldown- und Abschlußwiderstände integriert, da muß man nix machen. Die haben auch eine Spannungsversorgung für die RS485-Seite, so daß die erforderlichen Pegel erreicht werden.
Die Signale auf den Bildern sehen wie TTL-Pegel aus und nicht wie RS485. Letzterer arbeitet differentiell, d.h. die Unterscheidung zwischen 0 und 1 erfolgt mittels Umpolung. Die absolute Spannung spielt dabei keine Rolle, zuverlässige Erkennung ist schon ab ca. 0,2V gegeben. Die Signale im Eingangspost sind jedoch, bis auf Störungen, durchweg im positiven Bereich.
Gute RS485 Boards haben die passenden Pullup-, Pulldown- und
Abschlußwiderstände integriert, da muß man nix machen. Die haben auch
eine Spannungsversorgung für die RS485-Seite, so daß die erforderlichen
Pegel erreicht werden.
Abgesehen vom "bias network" ist natürlich beim RS485-Betrieb ein zeitlich passendes Umschalten vom Sende- auf Empfangsbetrieb erforderlich. Am einfachsten geht das, wenn man eine UART mit entsprechender Hardwareunterstützung dafür verwendet; die UART des Pi aber scheint das nicht zu können. Hier muss also ein zusätzlicher GPIO-Pin verwendet und passend angesteuert werden, was nicht trivial ist, denn die Umschaltung muss so schnell wie möglich erfolgen, nachdem das Stopbit des letzten zu sendenden Bytes das UART-Schieberegister verlassen hat.
Wenn man nicht auf Registerebene mit der UART kommuniziert, sondern den beliebten Schichtkuchen aus Library, Skriptsprache und Betriebssystemtreibern verwendet, ist das ein eher auswegloses Unterfangen.
Eine USB-Seriell-Bridge wie der FT232 aber enthält diese RS485-Unterstützung in Hardware und ist hier daher /eindeutig/ zu bevorzugen, am besten in Form eines fertig aufgebauten USB-RS485-Adapters.
Was die Spannungsversorgung betrifft: Sofern der RS485-Wandler nicht galvanisch von der UART getrennt ist, ist die unkritisch, der Treiber benötigt lediglich 5V.
Hallo Ihr Lieben,
ich habe noch einen USB_TO_RS485 (https://www.reichelt.de/de/de/shop/produkt/raspberry_pi_-_usb-rs485-schnittstelle_ch340c-242783). An diesem habe ich einen 100Ohm Widerstand angeschlossen(hatte leider keinen 120Ohm) und diesen mit der Wohnmobilsteuerung verbunden(Kabellänge 20cm). Den Abgriff für das Oziloskop ist direkt am Widerstand abgenommen und die Masse vom GROUND(0V) der Wohnmobilsteuerung. Hierzu habe ich ein Bild eingestellt.
Der eingekreiste Bereich ist das Mastersignal (xFFx00x00x00xFF)vom USB Adapter und der Rest kommt aus der Wohnmobilsteuerung (Hex-Antwort).
Aber auch hier kommt das Sendesignal nicht sauber rüber. Ist der USB-Adapter nicht der richtige?
Den Abgriff für das Oziloskop ist direkt am Widerstand abgenommen
Wenn du die beiden Signale mal nicht immer so ineinander quetschen würdest, könnte man die Pegel deutlich besser ablesen.
An diesem habe ich einen 100Ohm Widerstand angeschlossen(hatte leider
keinen 120Ohm)
Hast du dir einmal ausgerechnet, wie groß der Unterschied wäre?`
Welchen Wert haben deine Bias Widerstände und was für Spannungen erwartest du auf den beiden Busleitungen, wenn beide Seiten ihren Sender abgeschaltet haben?
Hallo Ihr Lieben,
wenn ihr meint das die Sendesignale nur auf dem Oziloskop nicht richtig konvertiert wird ist mir dieses eigendlich egal.
Nun habe ich den USB-Adapter jetzt mit der RasperryPI verbunden und die Schnittstelle zum Senden angepasst.
Wenn ich dieses Signal (xffx00x00x00xff) nur alle 12 Sekunden senden kommt eine Antwort der Wohnmobilsteuerung, aber mir ist aufgefallen das die B Leitung beim Sende eine höhere Spannung hat als die Antwort der Wohnmobilsteuerung. Sende ich das Signal einmal 1 der Sekunde bekomme ich keine Antwort von der Wohnmobilsteuerung. Mit dem originalen Display werden alle 100ms ein Signal ausgelöst und die Antwort kommt auch immer.
Hallo,
noch einen Nachtrag. In meiner RaspberryPI kommt folgender Wert auf der Empfangsseite:
b'\xfe\xff\xff\xf9'
Normalerweise sollte dort "b'\xff\x00\x00\x00\xff'" stehen.
Lieben Gruß
Tola-Emma
kommt eine Antwort der Wohnmobilsteuerung, aber mir ist aufgefallen das
die B Leitung beim Sende eine höhere Spannung hat als die Antwort der
Wohnmobilsteuerung.
Nochmal: Der Empfänger wertet die DIFFERENZ aus.
Guck dir den Aufbau eines RS485-Empfängers an.
Auch der neue Adapter hat kein passendes Bias-Netzwerk. Wir brauchen neben "blau größer als rot" auch "rot größer als blau". Das sieht man jedoch nicht. Du brauchst ein Bias-Netzwerk, was rot nach oben (in Richtung 5V) und blau nach unten (in Richtung Ground) zieht. Weil bei RS-485 die Differenzspannung ausgewertet wird, und diese deutlich positiv und negativ sein muss.
In meiner RaspberryPI kommt folgender Wert auf der Empfangsseite:
b'\xfe\xff\xff\xf9'
Um das festzustellen braucht man keinen Raspberry Pi.
Wenn du dir dein Wohnmobilsteuerung_mit_USB_to_RS485_100Ohm__an_RaspberryPI_1Sek.png ansiehst, könntest du erkennen, dass während der Übertragung der 0x00er das blaue Signal IMMER über dem roten liegt. Das kann nicht funktionieren.
Kannst du dir mit deinem Oszi direkt die Differenz der beiden Kanäle anzeigen lassen?
Liest du auch Fragen?
Hallo Uwe,
hast Du eine Ahnung ob ich die 5V und GND von den GPIO der Raspberry nehmen kann oder sollte ich diese direkt aus meiner USB Versorgungsbuchse nehmen.
Den 100 Ohm Wiederstand ersetze ich dann gegen die BIAS-Wiederstände aus deiner oberen Beschreibung?
Lieben Gruß
Mario
hast Du eine Ahnung ob ich die 5V und GND von den GPIO der Raspberry
nehmen kann oder sollte ich diese direkt aus meiner USB
Versorgungsbuchse nehmen.
Im besten Fall vom Transceiver. Wenn der keine galvanische Trennung zum USB hat, dann auch gern vom USB oder von der GPIO-Leiste des Raspberry oder vom 5V-Netzteil, was den Raspberry speist. Alles identisch.
Hallo Rainer,
sorry hatte die Frage übersehen!!!
Die Spannungen A und B bei beim Original Display und Wohnmobilsteuerung mit ausgeschalteten Display (keine Signale) betrugen die Spannung:
A= 88,8 mV
B= 4,401 V
Nach meiner Messung existieren keine Abschlusswiderstände.
Lieben Gruß
Mario
Hallo Uwe,
um 18:16 war dort nicht die Raspberry an dem USB Adapter angeschlossen sondern mein Handy von dem ich die Signale über den USB Adapter gesendet habe.
Spannungen A und B bei beim Original Display und Wohnmobilsteuerung mit
ausgeschalteten Display (keine Signale) betrugen die Spannung:
A= 88,8 mV
B= 4,401 V
A und B ist nicht ganz eindeutig, aber die gängige Definition der Transceiver-Hersteller ist A = non-inverting und B = inverting, in dem Fall müsste in Ruhelage A auf High- und B auf Low-Pegel sein.
Die Spannungen A und B bei beim Original Display und Wohnmobilsteuerung
mit ausgeschalteten Display (keine Signale) betrugen die Spannung:
A= 88,8 mV
B= 4,401 V
Dann sollte sich der Pegel auch vernünftig in Richtung 5V bewegen, wenn der Master sendet.
Um festzustellen, welche Seite die Leitung irgendwo hin zieht, kann man vorübergehend einen kleinen Widerstand in die Leitung hängen und sieht dann, von welcher Seite ein Pegel kommt und wer gerade die Last darstellt.
Hallo ihr Lieben,
ich habe heute nochmal das alte Display(Master) und die Wohnmobilsteuerung(Slave) zusammengebaut und das Oziloskop angeschlossen.
Wenn ich die Leitungen A und B zwischen Master und Slave kommt eine Fehlermeldung am Display. Wenn ich den Anschluss am Ozilokop vertausche damit A High ist und B low ist. werden die Werte falsch angezeigt.
Meine Vermutung ist das die B Leitung High und A Leitung Low sein muss.
Die Informationen wie die Daten Aussehen habe ich von diesem Link herausgezogen: https://github.com/class142/ne-rs485/blob/master/spec.md
Wenn ich die Leitungen A und B zwischen Master und Slave kommt eine
Fehlermeldung am Display. Wenn ich den Anschluss am Ozilokop vertausche
damit A High ist und B low ist. werden die Werte falsch angezeigt.
Meine Vermutung ist das die B Leitung High und A Leitung Low sein muss.
Du siehst aber schon, dass Du Deinen UART-Decoder auf B gehängt hast, der also (sofern die Bezeichnung der üblichen Definition entspricht) das invertierte Signal auswertet, oder?
Du siehst aber schon, dass Du Deinen UART-Decoder auf B gehängt hast,
Was gefällt dir daran nicht?
High-Pegel für die Datenbits bei 0xFF in Wohnmobilsteuerung_mit_alten_Display__A_high__B_low_.png hört sich eigentlich nicht so verkehrt an. Aber bei diesen zusammengequetschten und überlagerten Oszillogrammen guckt man sich die Augen aus und kriegt einen Knoten ins Hirn.
Du siehst aber schon, dass Du Deinen UART-Decoder auf B gehängt hast,
Was gefällt dir daran nicht?
Wenn das Signal auf der mit B beschrifteten Ader richtigrum ist (Ruhepegel high), ist es mit Sicherheit falschrum, wenn er seinen USB-RS485-Konverter dranhängt. Der erwartet nämlich i.d.R. auf A das nicht-invertierte Signal.
Hätte er längst testen können, indem er den einfach mal zum Lauschen dranhängt, während die Kommunikation der Original-Geräte läuft
Aber bei diesen zusammengequetschten
und überlagerten Oszillogrammen guckt man sich die Augen aus und kriegt
einen Knoten ins Hirn.
Ja. Es wäre auch hilfreich, wenn er mal Fotos der Komponenten (mit lesbarer Beschriftung) und eine Zeichnung davon, was er wie angeschlossen hat, beifügen würde.
Ja. Es wäre auch hilfreich, wenn er mal Fotos der Komponenten (mit
lesbarer Beschriftung) und eine Zeichnung davon, was er wie
angeschlossen hat, beifügen würde.
Ich werde morgen mal versuchen euch ein paar Fotos der Komponenten zukommen zu lassen.
Wenn ich den Anschluss am Ozilokop vertausche
damit A High ist und B low ist. werden die Werte falsch angezeigt.
Die Zuordnung der Buchstaben A und B zu den Leitungen ist nicht eindeutig, hat also nicht wirklich eine Bedeutung - manche Leute machen es so, andere anders.
Entscheidend ist die Polarität vom Start-Bit. Daran kannst du dich immer orientieren und musst dann deinen Dekoder so anschließen/einstellen, dass er das richtig versteht.
Meine Vermutung ist das die B Leitung High und A Leitung Low sein muss.
Du hast den RS485-Bus noch immer nicht verstanden. RS485 arbeitet differentiell, d.h. es gibt kein HIGH oder LOW, weil der Empfänger die Leitungen A und B nicht über deren Bezug zu GND auswertet, sondern den logischen Pegel danach bestimmt, welche Polarität zwischen ihnen anliegt. Plus an A und Minus an B wird als logisch "1" interpretiert, Minus an A und Plus an B, als logisch "0". Es ist für die Funktion prinzipiell gar nicht erforderlich, zwischen Sender und Empfänger die Masse mitzuführen! Dies wird zwar häufig empfohlen, dient aber lediglich der Vermeidung unzulässiger Gleichtaktspannungen oder wegen der EMV. Schau dir das Bild mit der vereinfachten Prinzipdarstellung an. Es zeigt den Zustand bei logisch "1", der bei richtiger BIAS-Vorspannung auch Ruhezustand des Busses sein soll (den Widerstand habe ich nur für die Krümelkacker eingezeichnet, die ansosnsten monieren würden, daß die LEDs ohne ihn sofort kaputt gehen :P). Mit Plus an A und Minus an B leuchtet die obere LED für logisch "1". Jetzt drehe die Spannungsquelle um, sodaß Minus an A und Plus an B liegt. Nun leuchtet die untere LED für logisch "0". Es spielt dabei keine Rolle, wie hell die LEDs leuchten, sie müssen nur so hell sein, daß das Leuchten noch zu erkennen ist. Genau nach diesem Prinzip arbeitet der RS485-Bus. Für stabile Funktion muß der Bus jedoch korrekt terminiert sein (an jedem Ende 120 Ohm). Noch viel wichtiger ist aber die richtige Vorspannung mit BIAS-Widerständen. Bei 2-Draht RS485 darf immer nur ein Gerät senden, deswegen schalten sich die Treiber hochohmig, wenn das Gerät gerade nicht sendet, damit ein anderes Gerät den Bus übernehmen kann. Wenn kein Gerät sendet, sind alle Treiber hochohmig und der Bus hängt in der Luft. In dieser Situation nimmt die Spannung bzw. Polarität zufällige Werte an und somit ist auch der logische Zustand zufällig. Dies kann zu erheblichen Störungen oder totaler Fehlfunktion führen. Die EMpänger (bzw. deren nachgeordnete Logik) erwarten nämlich als Startkondition ein logisch "1" (Plus an A, Minus an B). Ohne Vorspannung könnte rein zufällig aber auch gerade logisch "0" anliegen. Und wenn der Bus floatet, d.h. seinen Zustand aufgrund von Einstreuungen ständig ändert, bekommt die nachfolgende Logik eine sinnlose Folge von Nullen und Einsen serviert. Mit entsprechend unabsehbaren Folgen.
Bevor du weiter rumstocherst, solltest du sicherstellen, daß der Bus physisch korrekt aufgebaut ist, also BIAS und Terminierung stimmen. Das Oszi braucht nur einen Kanal, denn es gibt ja auch nur ein Signal, die Differenz zwischen A und B. Es macht keinerlei Sinn, A und B gegen Masse getrennt darzustellen. Verbinde GND des Oszis mit B und die Spitze mit A. Dazu ist natürlich galvanische Trennung des Oszis und der Schaltungsmasse erforderlich.
Eine böse Stolperfalle existiert allerdings noch. Wie schon weiter oben angesprochen, ist die Bezeichnung der Leitungen mit A und B nicht eindeutig, weil sich nicht alle Hersteller daran halten! Je nachdem könnte A auch die invertierte Leitung sein und B die nichtinvertierte. Ja, das ist ziemlich gemein. Man sollte also ins Datenblatt schauen, welche Definition der Hersteller benutzt. Manchmal stehen da z.B. solche Angaben drin wie "A+" oder "A-". Weitaus häufiger kommt in der Praxis die Definition A+ vor, sprich Plus an A (nichtinvertierte Leitung). Entscheidend ist aber immer die Polarität, nicht der Buchstabe!!
Wow, danke, super erklärt. Ich würde gern 10 Pluspunkte vergeben.
Kleine Ergänzung zur Oszimessung gegen Masse: Messung beider Leitungen gegen Ground kann helfen, Gleichtaktprobleme zu bewerten. Idealerweise würde das Oszi einen berechneten Kanal A minus B anzeigen können, dann wird die Interpretation leichter, und an diesen Kanal dann den UART-Decoder hängen.
Es macht keinerlei Sinn, A und B gegen Masse
getrennt darzustellen. Verbinde GND des Oszis mit B und die Spitze mit
A. Dazu ist natürlich galvanische Trennung des Oszis und der
Schaltungsmasse erforderlich.
Gefährliches Halbwissen
Sobald der USB-Seriell-Wandler am PC angeschlossen ist, ist Gnd bei den meisten mit PE verbunden. Genauso ist bei vielen Oszis der Gnd der Eingänge mit PE verbunden.
Einen Kurzschluss zwischen B und Gnd will keiner.
Heutige Oszis können aus den Signalen A gegen Gnd und B gegen Gnd selber die Differenz ausrechnen und anzeigen - genau aus o.g. Grund.
Außerdem würde sich der Treiber für die B-Leitung bedanken, wenn er das ganze Oszi potentialmäßig mit der Änderung vom B-Signal durch die Gegend schleifen soll.
Sobald der USB-Seriell-Wandler am PC angeschlossen ist, ist Gnd bei den
meisten mit PE verbunden. Genauso ist bei vielen Oszis der Gnd der
Eingänge mit PE verbunden.
Genau deswegen schrieb ich "galvanische Trennung". Für mich heißt galvanische Trennung, es gibt (außer der gewollten am Tastkopf) keine galvanische Verbindung, auch nicht über PE. Kann man mit Trenntrafo oder Batteriebetrieb realisieren. Somit gibts auch keinen Kurzschluß oder Potentialprobleme.
Kann man mit Trenntrafo oder
Batteriebetrieb realisieren. Somit gibts auch keinen Kurzschluß oder
Potentialprobleme.
Die galvanische Trennung mit einem Trenntrafo ändert nichts daran, dass der Treiber dann das komplette Oszi und den halben Trafo mit durch die Gegen schleifen muss. Ab gewissen Frequenzen wird das - vorsichtig ausgedrückt - LÄSTIG.
Obacht: bei diesen Chinaböllern ist der GND nicht herausgeführt. Das musst du selber machen. Denn auch wenn RS485 nur 2 Signalleitungen hat, bezieht sich doch jede einzelne davon auf diesen gmeinsamen GND.
Wenn man ein solches besitzt, wäre das eine Alternative.
Wenn es um differentielle Signale geht, ist das die einzig vernünftige Alternative (oder ein entsprechender Tastkopf). Auch besitzt nicht jeder einen Trenntrafo aus der Zeit der Röhrentechnik oder ein Oszi mit Batteriebetrieb.
Aber der TO verrät leider auch nicht, was er da aufgebaut hat und was er an Geräten/Hilfsmitteln zur Verfügung hat.
Es driftet leicht ins Off-topic, aber es gibt USB-Oszis mit galvanischer Trennung, hobbytauglicher Preis, leider nur zwei Kanäle, OWON VDS1022i. Bin zufrieden damit.
Denn auch wenn RS485 nur 2 Signalleitungen hat,
bezieht sich doch jede einzelne davon auf diesen gmeinsamen GND.
Jetzt geht das wieder los. Die Aussage gilt prinzipiell nur innerhalb der Senderschaltung. Wenn du zwei batteriebetriebene Geräte ausschließlich mit A und B verbindest, funktioniert der Bus genauso, obwohl der Empfänger keinerlei Verbindung zum GND des Senders hat. Weil der Empfänger eben nur die Differenz zwischen A und B auswertet und die Signale NICHT auf GND bezieht. DAS ist das Prinzip von RS485! Und daß GND von vielen Entwicklern aus Gründen der Störsicherheit mitgeführt mit, ändert daran gar nichts. Aus starkstromtechnischer Sicht ist die Verbindung von entfernten Geräten über (PE-verbundenes) GND wegen der auftretenden Potentialunterschiede eigentlich ein NoGo. Wenn die Potentialunterschiede ausreichend groß sind und keine Maßnahmen zur Strombegrenzung getroffen werden, schmilzt dir deine GND-Leitung im Extremfall sogar weg. Ich habe sowas tatsächlich schon gesehen. Nicht bei RS485, aber bei Kupfer-Netzwerkkabeln, wo die Mantelisolierung angeschmolzen war.
Jetzt geht das wieder los. Die Aussage gilt prinzipiell nur innerhalb
der Senderschaltung.
Sie gilt auch prinzipiell für jeden Empfänger. Der hat nämlich einen Gleichtaktbereich. Wenn der verlassen wird, macht der Empfängerbaustein Käse.
Weil der Empfänger eben nur die Differenz zwischen A und B auswertet und
die Signale NICHT auf GND bezieht. DAS ist das Prinzip von RS485!
Genauso wie eine H-Brücke "im Prinzip" mit 4 Mosfets realisiert wird, und doch "in der Realität" laufend irgendwelche Anfänger mit der Ansteuerung der Highside auf die Nase fallen.
Wie auch immer: alle mir bekannten und erfolgreichen RS422/RS485/CAN/DMX/LVDS/uswusf-Hersteller empfehlen, den GND mitzuführen. Ich wünsche allen viel Glück, die das nicht tun. Sie brauchen es.
Jetzt geht das wieder los. Die Aussage gilt prinzipiell nur innerhalb
der Senderschaltung. Wenn du zwei batteriebetriebene Geräte
ausschließlich mit A und B verbindest, funktioniert der Bus genauso,
obwohl der Empfänger keinerlei Verbindung zum GND des Senders hat.
Hör doch auf mit deinen Spezialfällen.
Sobald die Geräte NICHT galvanisch getrennt sind, muss man darauf achten - fertig.
Mag sein, aber die Wohnmobilsteuerung wird wohl nicht mit MHz arbeiten.
Aber mit 38.4kBd Datenraten und dann sollen die Pulse noch halbwegs rechteckförmig sein. Also müssen entsprechend Oberwellen auch noch heil rüber kommen.
Sie gilt auch prinzipiell für jeden Empfänger. Der hat nämlich einen
Gleichtaktbereich. Wenn der verlassen wird, macht der Empfängerbaustein
Käse.
Nope. Guten RS485-Komponenten mit isolierten Transceivern ist die Gleichtaktspannung auf den Leitungen gegen GND so ziemlich egal, solange die nicht die Isolierung durchschlägt. Ich rede von vollständig isolierten, also auch mit galvanischer Trennung der Betriebsspannung. Ja, die sind nicht billig.
Siehe auch:
Wie auch immer: alle mir bekannten und erfolgreichen
RS422/RS485/CAN/DMX/LVDS/uswusf-Hersteller empfehlen, den GND
mitzuführen. Ich wünsche allen viel Glück, die das nicht tun. Sie
brauchen es.
Da muß ich wohl unverschämtes Glück haben, denn ich betreue mehrere Anlagen, wo KEIN GND mitgeführt wird, über teilweise mehr als einen Kilometer Entfernung. Die dürften also gar nicht funktionieren, tun es aber trotzdem seit Jahrzehnten. Ausfälle gab es in dieser Zeit schon, allerdings immer nach Blitzeinschlägen auf dem Gelände.
Sobald die Geräte NICHT galvanisch getrennt sind, muss man darauf achten
fertig.
Nochmal zum Verständnis, es geht NICHT um die Störsicherheit oder Toleranz gegen unliebsame Spannungen. Es geht um die Aussage, daß sich die Pegel der Leitungen A und B auf GND beziehen und dieses deshalb mitzuführen ist. Das stimmt eben so nicht!
denn ich betreue mehrere Anlagen, wo KEIN GND mitgeführt wird
Da fahren dann über mehr als einen km die wie erwähnt "prinzipiell" reichenden 2 verdrillten Leitungen? Ohne jeglichen Schirm, der dann doch wieder "irgendwie" einen Massebezug herstellt?
Dort wird im Bild 13 geschrieben, dass der GND nicht zwingend nötig sei, der Schirm aber auf beiden Seiten aufgelegt sein müsse. Und dieser verbundene Schirm stellt über den Widerstand rechts unten im Bild 6 den nötigen Potentialbezug her.
Da muß ich wohl unverschämtes Glück haben
Ich würde an deiner Stelle mal den Lottoschein ausfüllen. Das sollte dort genauso gut funktionieren.
Hallo Ihr lieben,
auch ich muss mich bei "Icke" bedanken für die tolle Bescheibung!!!
Und ja ich tue mich schwer mit der Differenzspannung, da bei mir im Kopf immer ein GND/ Masse verwendet wurde, deshalb bin ich ja froh das es solche Experten gibt die einem helfen, den man kann nicht alles wissen.
Ich habe jetzt ein paar Fotos von den Bauteilen und dem Blockschaltbild der WoMo Steuerung beigefügt und mit roten Kreisen makiert wo die Anschlüsse für die RS485 und 12V der Displayversorgung angeschlossen ist. Eine Genaue Beschreibung welcher PIN für was ist gibt es nicht, deshalb habe ich dieses mit einem Stift aufgeschrieben G=GND, +=12VDC, A, B( A und B nur geschätzt um die Verbindung korrekt zu verbinden.
Mein Oziloskop ist von PICO "PicoScope 2204A" und wird mit dem PC/Laptop über USB angeschlossen, ist also kein eigenständiges Gerät.
Ausserdem habe ich mir heute nochmal einen anderen USB Converter bei Amazon bestellt um besser die BIAS-Widerstände zu realisieren (https://www.amazon.de/dp/B07XZ3PV8T)
Ich hoffe das dieser Converter für meine Bedürfnisse passt.
Dort wird im Bild 13 geschrieben, dass der GND nicht zwingend nötig sei,
der Schirm aber auf beiden Seiten aufgelegt sein müsse. Und dieser
verbundene Schirm stellt über den Widerstand rechts unten im Bild 6 den
nötigen Potentialbezug her.
Ganz genau, da steht wörtlich "GND wird empfohlen, ist aber nicht zwingend erforderlich". Deine Aussage oben..
Denn auch wenn RS485 nur 2 Signalleitungen hat,
bezieht sich doch jede einzelne davon auf diesen gmeinsamen GND.
..impliziert jedoch, daß GND für den Betrieb erforderlich wäre, weil sich die Signalleitungen darauf beziehen. Was aber eben nur endgeräteintern zutrifft, nicht aber für die Übertragungsstrecke. Der typische RS485 Einsteiger kann (und wird) dies falsch verstehen und annehmen, daß GND wie bei RS232 verbunden sein muß.
Die Frage der Abschirmung/Störsicherheit hat damit gar nichts zu tun, sondern ist ein eigenes Problem. Ich stelle doch gar nicht in Frage, daß dafür Maßnahmen getroffen werden müssen. Ich halte jedoch die Lösung mit vollständig isolierten Transceivern für deutlich besser als das Durchverbinden des GND vom Sender zum Empfänger.
Da fahren dann über mehr als einen km die wie erwähnt "prinzipiell"
reichenden 2 verdrillten Leitungen? Ohne jeglichen Schirm, der dann doch
wieder "irgendwie" einen Massebezug herstellt?
Die Strecken gehen über hausinterne Verkabelung und mehrere Schaltschränke sowie Erdkabel nach draußen zu Säulen mit RFID-Lesern (weitere Leser hängen hausintern am selben Bus). Der Leser wird vor Ort von einem schutzisolierten Netzteil ohne PE stromversorgt und der Bus ist nur mit A und B angeschlossen. Da das Lesergehäuse aus Plastik besteht, hat es ebenfalls keinen Kontakt zu GND. Lediglich die Schirme der Kabel sind wohl geerdet, was ich aber nicht beschwören kann, da nicht meine Baustelle. Ist jedoch sehr wahrscheinlich, da die gesamte Anlage elektrotechnisch hochprofessionell gebaut wurde.
Ich würde an deiner Stelle mal den Lottoschein ausfüllen. Das sollte
dort genauso gut funktionieren.
Sobald der USB-Seriell-Wandler am PC angeschlossen ist, ist Gnd bei den
meisten mit PE verbunden. Genauso ist bei vielen Oszis der Gnd der
Eingänge mit PE verbunden.
Was verstehs Du an
Rainer W. schrieb im Beitrag #7855542:
Dazu ist natürlich galvanische Trennung des Oszis und der
Schaltungsmasse erforderlich.
nicht.
Er hat doch eindeutig geschrieben, daß beide Systeme, also das Bussystem und der Oszi, galvanisch getrennt sein müssen und demzufolge auch keine gemeinsame GND haben.
Wie man das am Ende realisiert steht doch auf einem ganz anderen Blatt.
Och, sogar mein uralter RFT EO174A kann über Batterie oder externe 12V
betrieben werden :P
Wir hatten seinerzeit den Oszi (EO213 oder die diversen Oszis sowj. Bauart) mittels Teufelsschwanz angeschlossen, damit wir potentialfrei messen konnten. Hat bestens funktioniert und die Leute sind auch nicht trotz getrenntem PE reihenweise umgefallen.
Trenntrafos waren meist nicht verfügbar und zum Mitschleppen bei Serviceeinsätzen auch viel zu schwer.
Natürlich nicht, wenn du die RS485-Schnittstellen bei allen, bis auf maximal einen Bus-Teilnehmern galvanisch trennst.
Solange der TO nicht verrät, was bei im für Bus-Treiber verbaut sind oder wie es bei ihm mit einer möglichen galvanischen Trennung aussieht, hilft diese Diskussion herzlich wenig weiter.
auch ich muss mich bei "Icke" bedanken für die tolle Bescheibung!
Keine Ursache. Der Vollständigkeit halber noch ein erweitertes Prinzipschaltbild, das die Funktion des Sendetreibers und der BIAS-Widerstände veranschaulicht. Rt sind die Terminierungswiderstände, die an jedem Ende des Busses (und nur dort) installiert sein sollten. Rb+ und Rb- sorgen für die Vorspannung des Busses, wenn kein Treiber aktiv ist. Ihre Werte sind von der Versorgungsspannung abhängig. Eine sichere Auswertung des Signals erfordert mindestens 200mV Pegel, zur Sicherheit kann man auf 300mV gehen. Die Terminierungswiderstände Rt liegen schaltungstechnisch parallel zueinander und die BIAS-Widerstände Rb+ und Rb- in Reihe dazu. Zweimal Rt á 120 Ohm parallel ergibt 60 Ohm, sodaß 5mA Strom durch die Kombi fließen müssen, um 300mV Pegel zu erzeugen. Bei 5V Betriebsspannung müßten die BIAS-Widerstände demzufolge rechnerisch jeweils 470 Ohm haben (470+470+60=1000, 5V/1000Ohm=5mA). Bei anderen Spannungen müssen sie entsprechend angepaßt werden, sollten aber nicht zu klein ausfallen, damit die Sendetreiber nicht unnötig dagegen arbeiten müssen. Diese legen einem Umschalter ähnlich die positive Betriebsspannung oder Masse (die Masse der Treiberschaltung!) dem logischen Pegel entsprechend an die Leitungen A und B. Mit dem "High Z-Schalter" trennt der Treiber seine Verbindung zum Bus, wenn er nicht sendet. Würden die BIAS-Widerstände fehlen, wäre der Bus über die Terminierungswiderstände quasi kurzgeschlossen und die Differenzspannung zwischen A und B gleich Null. In diesem Anschauungsbeispiel würde dann keine der LEDs leuchten und der logische Pegel wäre nicht definiert. Ähnlich verhält es sich in realen Empfängerschaltungen, die aus Komparatoren bestehen, welche die 200mV Mindestspannung benötigen, um stabil zu schalten.
Natürlich darf das BIAS-Netzwerk nur an einer Stelle des Busses aktiv sein, im Gegensatz zu den Terminierungswiderständen dafür an beliebiger Stelle. Manche RS485 Devices haben neben der Terminierung auch das BIAS schaltbar an Bord, sodaß es nicht extern bereitgestellt werden muß.
..impliziert jedoch, daß GND für den Betrieb erforderlich wäre, weil
sich die Signalleitungen darauf beziehen. Was aber eben nur
endgeräteintern zutrifft, nicht aber für die Übertragungsstrecke.
Man kann es auch andersrum beschreiben:
Wenn GND auf beiden Seiten in etwa das gleiche Potential hat (+- 5 bis 10V), dann braucht man keinen GND mitführen. Z.B. weil irgendein Gerät doch einen Erdbezug herstellt.
Wenn beide GND floatend sind, werden sie sich aufeinander einpendeln.
Wenn GND1 floatend ist und GND2 nicht, dann wird sich GND1 auf GND2 einpendeln.
Probleme gibt es natürlich nur, wenn beide GND mehr als etwa 10V (abhängig vom Treiber) auseinander sind oder wenn z.B. kapazitive Einkopplungen den (free floatenden) GND verschieben.
Bei Galvanischer Entkopplung gilt das gleiche, nur dass die galvanische Entkopplung auf einer (oder beiden) Seite(n) für einen floatenden GND sorgt.
Obacht: bei diesen Chinaböllern ist der GND nicht herausgeführt.
Mich wundert, dass die das nach gefühlt 10 Jahren immer noch nicht verbessert haben. Wie so vielen anderen Murks auch. Mag sein, dass man GND nicht immer braucht, aber wenn doch, dann will und darf ich nicht an meinen Arbeitsgeräten (Laptop) herum fummeln. Und an der Steckdose habe ich formell als Softwareentwickler auch nichts verloren (unabhängig davon, dass ich das in der Berufsausbildung gelernt habe).
Und ja ich tue mich schwer mit der Differenzspannung, da bei mir im Kopf
immer ein GND/ Masse verwendet wurde, deshalb bin ich ja froh das es
solche Experten gibt die einem helfen, den man kann nicht alles wissen.
Was Icke wortreich ausgeführt hat, hat bloss für Dich keinerlei praktische Relevanz. Ja, es ist ein differentielles Signal. Nein, man sollte deshalb nicht GND weglassen, auch wenn es häufig gutgeht. Und Du kannst weiterhin gegen GND messen, wie Du es bisher gemacht hast.
Die absoluten Spannungspegel sind zwar nicht so wichtig (innerhalb des erlaubten Gleichtaktbereichs sind mindestens 200mV Differenz zwischen A und B standardkonform), aber da aus den Treiber-Ausgängen i.d.R. Vcc- und GND-Pegel rauskommen, sind krumme Spannungen schon einen genaueren Blick wert, gerade bei so kurzen Leitungen.
Dein Hauptproblem dürfte wie gesagt ganz woanders liegen: Deinen Screenshots nach decodierst Du den RS485-Traffic auf der B-Ader, die nach der gängigen Definition der Transceiverhersteller die invertierte ist.
Wenn Du Deinen USB-RS485-Konverter anschliesst, muss daher mit ziemlicher Sicherheit dessen A-Ader (auch "A+", "RS485+" o.dgl. genannt) dort angeschlossen werden, wo für Dich aktuell B ist, und umgekehrt.
Ausprobieren kannst Du das am besten, indem Du das Original-Bedienteil angeschlossen lässt und zusätzlich (!) den USB-RS485-Konverter anklemmst, aber nur mitlauschen lässt, ohne von dort Daten zu senden.
Bei Galvanischer Entkopplung gilt das gleiche, nur dass die galvanische
Entkopplung auf einer (oder beiden) Seite(n) für einen floatenden GND
sorgt.
Das mußt du näher erklären. Wenn beide Enden nur über Erdpotential (PE) verbunden sind und ansonsten keinerlei galvanische Verbindung besteht, wie kommt das Floaten zustande?
Mag sein, dass man
GND nicht immer braucht, aber wenn doch, dann will und darf ich nicht an
meinen Arbeitsgeräten (Laptop) herum fummeln.
Dann nimmt man eben einen passenden Adapter mit den entsprechenden Anschlüssen.
Aber auch dann muß man aufpassen weil selbst die GND bei weit entfernten Geräten einen signifikanten Potentialunterschied haben können. Der Ausgleichsstrom fließt dann halt über die GND-Leitung mit allen bekannten Auswirkungen.
Gerade erst entdeckt, es gibt das passende Wiki schon:
https://www.mikrocontroller.net/articles/RS-485
Gern Schaltbilder einfügen, mit und ohne Ground usw. Dann könnten wir hier beim Thema bleiben.
Wenn Du Deinen USB-RS485-Konverter anschliesst, muss daher mit
ziemlicher Sicherheit dessen A-Ader (auch "A+", "RS485+" o.dgl. genannt)
dort angeschlossen werden, wo für Dich aktuell B ist, und umgekehrt.
Ausprobieren kannst Du das am besten, indem Du das Original-Bedienteil
angeschlossen lässt und zusätzlich (!) den USB-RS485-Konverter
anklemmst, aber nur mitlauschen lässt, ohne von dort Daten zu senden.
Ich habe die Bauteile mit einander verbunden und den USB RS485 Converter zum lesen der Daten angeklemmt und die Daten werden nur korrekt angezeigt wenn A und B am Converter vertauscht sind. Mit ist aufgefallen das die Signale am Oziloskop verändert haben wenn ich den Converter angeschlossen habe.
...Converter0 = Bauteile angeschlossen und nicht eingeschaltet und USB Converter nicht eingesteckt (Ruhesignal hat sich die Spannung verändert).
...Converter1 = Bauteile angeschlossen und eingeschaltet und USB Converter nicht eingesteckt(Ruhesignal Spannung geht langsam auf die Spannung vom Converter).
...Converter2 = Bauteile angeschlossen und eingeschaltet und USB Converter eingesteckt(Ruhesignal High geht sofort auf den Spannungslevel vom Converter und die Low Ruheleitung geht kurzzeitig in den Minusbereich)
Ich habe die Bauteile mit einander verbunden und den USB RS485 Converter
zum lesen der Daten angeklemmt und die Daten werden nur korrekt
angezeigt wenn A und B am Converter vertauscht sind.
Also wie vermutet, der Hersteller der Wohnmobilsteuerung hat eine andere Vorstellung von A und B, wenn die Zuordnung von ihm stammt.
Mit ist aufgefallen
das die Signale am Oziloskop verändert haben wenn ich den Converter
angeschlossen habe.
Schalte mal am USB-RS485-Konverter die Terminierung ab, sofern möglich.
Der Abschlusswiderstand bildet mit den Bias-Widerständen im Display oder der Steuerung einen Spannungsteiler. Das ist nicht weiter schlimm, solange die Differenz mindestens 200mV beträgt, aber wenn der Hersteller auch keine Terminierung verbaut hat, lass sie einfach weg.
Warum hast du immer noch nicht auf die Taste "Rechenkanäle" gedrückt und die Differenz berechnet (siehe Benutzerhandbuch Kapitel 5.21 Rechenkanäle)?
Damit könntest du genau das sehen, was auch der RS485-Empfänger wahr nimmt.
Mit ist aufgefallen das die Signale am Oziloskop verändert haben wenn
ich den Converter angeschlossen habe.
Und WAS hat sich geändert?
Wahrscheinlich ist der Eingang des Konverters irgendwie beschaltet. Das sollte dem Schaltplan des Konverters zu entnehmen sein.
(Ruhesignal High geht sofort auf den Spannungslevel
vom Converter und die Low Ruheleitung geht kurzzeitig in den
Minusbereich)
Es ist keine gute Idee, im laufenden Betrieb die Masseverbindung zu unterbrechen bzw. herzustellen, wenn Potentialdifferenzen bestehen. Das sieht so aus, als ob dort ein Kondensator in einer Leitung ist, der sich erst umladen muss, wenn der Treiber abschaltet.
Schalte mal am USB-RS485-Konverter die Terminierung ab, sofern möglich.
Der Abschlusswiderstand bildet mit den Bias-Widerständen im Display oder
der Steuerung einen Spannungsteiler. Das ist nicht weiter schlimm,
solange die Differenz mindestens 200mV beträgt, aber wenn der Hersteller
auch keine Terminierung verbaut hat, lass sie einfach weg.
Zur Zeit ist kein Widerstand eingesetzt, da der USB Converter keinen hat.
Warum hast du immer noch nicht auf die Taste "Rechenkanäle" gedrückt und
die Differenz berechnet (siehe Benutzerhandbuch Kapitel 5.21
Rechenkanäle)?
Damit könntest du genau das sehen, was auch der RS485-Empfänger wahr
nimmt.
Es ist keine gute Idee, im laufenden Betrieb die Masseverbindung zu
unterbrechen bzw. herzustellen, wenn Potentialdifferenzen bestehen.
Dein Konverter ist wohl nicht galvanisch getrennt.
Ich habe keine Verbindung getrennt wehrend des Betriebes.
Was mich aber irritiert, ist die in Ruhelage auf 0V runtergezogene
Leitung. Was für einen Konverter hast Du da genau im Einsatz?
Zur Zeit verwende ich diesen von Reichelt:
https://www.reichelt.de/de/de/shop/produkt/raspberry_pi_-_usb-rs485-schnittstelle_ch340c-242783)
Hast Du einen besser geeigneten?
Mein Problem ist das ich das Display gegen die Raspberry Pi tauschen möchte und die Signale verkehrt herum ankommen oder gesendet werden, da die Steuerung "A" und "B" getauscht sind.
Nach meiner Logik muss der Konverter doch die Signale in dem Spannungspegel auch gedreht werden. Vieleicht ist es auber auch schon zu Spät am Abend für solche gedanken.
Den darin verbauten FT232 setze ich seit vielen Jahren ein, der macht einfach stressfrei seinen Job und hat für RS485 eine tadellos funktionierende TX/RX-Umschaltung.
Mein Problem ist das ich das Display gegen die Raspberry Pi tauschen
möchte und die Signale verkehrt herum ankommen oder gesendet werden, da
die Steuerung "A" und "B" getauscht sind.
Das ist doch kein Hindernis, einfach richtigrum anschliessen. Du hast hier kein technisches Problem, das war einfach nur die von den Herstellern nicht einheitlich gehandhabte Bezeichnung von A und B.
Meintest Du die Differenz High-Low ( Bei mir B-A)?
Genau diese Funktion.
Rechenkanaele.png
Wenn du für das "B-A"-Signal jetzt noch die 0-Linie sinnvoll auf das Gitter verschiebst, könntest du sogar sehen, wie kritisch die Drifterei des A Pegels ist, d.h. wo der 0-Pegel liegt und wie es mit dem 200mV-Fenster aussieht.
Du könntest dieses Fenster sogar mit zwei Cursorn sichtbar machen, so dass du auf einen Blick erkennen kannst, ob das Signal noch im zulässigen Bereich bleibt.
Schön ist die Drifterei auf jeden Fall nicht und du solltest besser noch klären, was da mit A komisch läuft. Eine schlecht angeschlossene Leitung kannst du ausschließen?
Den darin verbauten FT232 setze ich seit vielen Jahren ein, der macht
einfach stressfrei seinen Job und hat für RS485 eine tadellos
funktionierende TX/RX-Umschaltung.
Das ist doch kein Hindernis, einfach richtigrum anschliessen. Du hast
hier kein technisches Problem, das war einfach nur die von den
Herstellern nicht einheitlich gehandhabte Bezeichnung von A und B.
Das Problem was ich sehe ist das die Daten aus der Steuerung verkehrt herum (A-B) herauskommen. Wenn ich den USB- Converter die Anschlüsse vertausche bekomme ich das richtige Ergebnis aus der WoMo-Steuerung. Soweit so gut, sende ich jetzt aber ein Signal aus dem USB-Converter in die Steuerung, werden die Signale wieder gedreht und es kommen die falschen Daten in die Steuerung. Korrigiert mich wenn ich einen Gedankenfehler habe. Außerdem muss ich das "alte Display" abklemmen, da dieses sonst alle 100ms ein Pin (Daten) gesendet werden und ich nicht mit der Raspberry Pi auch meine Befehle senden kann.
Soweit so gut, sende ich jetzt aber ein Signal aus dem USB-Converter in
die Steuerung, werden die Signale wieder gedreht und es kommen die
falschen Daten in die Steuerung.
Außerdem muss ich das "alte Display" abklemmen, da dieses sonst alle
100ms ein Pin (Daten) gesendet werden
Ja. Wenn aber auch bei abgeklemmtem Display noch vernünftige Ruhepegel da sind, sitzen die Bias-Widerstände in der Steuerung, und Du kannst das Display ohne weiteres durch den RPi mit Konverter ersetzen.
Falls nicht, wäre das auch kein Beinbruch, denn dieser Konverter führt neben GND auch die 5V vom USB raus, ggf. könntest Du also zwei Bias-Widerstände mit auf die Klemmen legen.
Das Problem was ich sehe ist das die Daten aus der Steuerung verkehrt
herum (A-B) herauskommen.
Woran machst du fest, was richtig herum ist?
Das Startbit muss richtig rum auf den Leitungen liegen - fertig.
Alles andere ist Schall und Rauch.
Offensichtlich funktioniert doch deine Wohnmobilsteuerung mit dem alten Display und solange deine Signale prinzipiell anders aussehen, d.h. sich die Polarität vom Idle-Zustand oder vom Startbit im Differenzsignal davon unterscheiden, hast du etwas vertauscht angeschlossen. Falls der Decoder die Daten der funktionierenden Kommunikation nicht richtig erkennt, ist er falsch konfiguriert.
Hallo Ihr Lieben,
ES HAT FUNKTIONIERT!!!
Ich habe mir den USB-RS485 Converter von DIGITUS angeschaft und GND mit 470 OHM an RS485- verbunden, genauso wie den 470 Ohm Widerstand mit 5V und RS485+ verbunden. Den 120 Ohm Widerstand habe ich erst einmal weggelassen da die ursprünglichen Signalpegel auch keinen hatte.
Hiermit möchte ich mich bei allen Bedanken die mich so TOLL unterstützt und weitergebildet haben. Ohne euch hätte ich noch Wochenlang gegrübelt und verzweifelt.
DANKE!!!!
Ich habe mir den USB-RS485 Converter von DIGITUS angeschaft und GND mit
470 OHM an RS485- verbunden, genauso wie den 470 Ohm Widerstand mit 5V
und RS485+ verbunden.
Das solltest Du allerdings nur tun, wenn die Bias-Widerstände bisher im (jetzt demontierten) Display sassen. Ansonsten sitzen die jetzt parallel zu den bereits vorhandenen und könnten die Treiber unnötig belasten.
Mal rein interessehalber: Was kannst Du mit der eigenen Displayeinheit mehr anstellen als mit der serienmässigen?
Das solltest Du allerdings nur tun, wenn die Bias-Widerstände bisher im
(jetzt demontierten) Display sassen. Ansonsten sitzen die jetzt parallel
zu den bereits vorhandenen und könnten die Treiber unnötig belasten.
Ich hatte die Widerstände eingesetzt und hatte gesehen das die Spannungspegel sehr ähnlich gegenüber dem alten Display war und deshalb habe ich auch die Terminierung weggelassen. Werde diese aber nochmal entfernen und schauen ob die Signale immer noch sauber gelesen werden.
Mal rein interessehalber: Was kannst Du mit der eigenen Displayeinheit
mehr anstellen als mit der serienmässigen?
In dem alten Display konnte ich mir immer nur einen Wert zur Zeit anschauen (Spannung Fahrzeugbatterie, Spannung Boardbatterie, Wassertank, Abwassertank, Innentemperatur).
Meine Überlegung ist mit der Raspberry Pi und einem 7 Zoll Display alle Informationen auf einer Seite gleichzeitig anzuzeigen. Außerdem kann ich die Anlage beliebig erweitern wie z.B. Gasflaschenfüllstand, Kühlschranktemperatur,... Hier gibt es dann keine Grenzen.