Hi, geht um folgendes: Ich habe eine Platine mit RS422 Schnittstelle über die man die Platine konfigurieren und auslesen kann. RxD +/-, TxD+/- und GND an einen USB RS422 Adapter auf CH340 Basis verbunden und getestet. Kommunikation funktioniert nicht, es kommen nur unbrauchbare Bytes von der Platine. Zudem ist die RxD LED auf dem Adapter permanent an. Sobald man TxD- abklemmt funktioniert die Kommunikation (soweit sie eben funktionieren kann wenn man mangels TxD nicht senden kann). Die RxD LED blinkt dann im Sekundentakt und ebenfalls im Sekundentakt übermittelt die Platine brav ihren Zustand. Sobald man TxD- wieder anklemmt leuchtet sofort die RxD LED am Adapter wieder permanent und es kommen nur noch unbrauchbare Bytes oder einfach gar nichts von der Platine. So kann man natürlich nicht senden. Bei älteren Platinen des gleichen Herstellers, gleiches Kommunikationsprotokoll, ähnliche Firmware funktioniert der Adapter in der gleichen Konfiguration einwandfrei, ohne die permanent leuchtende RxD LED und den Kommunikationsproblemen. Habe nun einen FTDI Adapter bestellt. Hat jemand eine Ahnung woran das ungefähr liegen kann und ob voraussichtlich der FTDI Adapter besser funktioniert? Mfg
Messe die Ruhepegel von RxD und TxD. Kontrolliere ob GND wirklich verbunden ist. Hat dein Adapter vielleicht einen Umschalter auf RS485?
Sherlock 🕵🏽♂️ schrieb: > Messe die Ruhepegel von RxD und TxD. Kontrolliere ob GND wirklich > verbunden ist. Wenn die Platine verbunden ist, bei der das Problem besteht: 0.230V zwischen TxD+ und -, 3.220V zwischen RxD+ und - Bei einer älteren Platine des gleichen Herstellers, hier funktioniert das Setup: 2.475V zwischen TxD+ und -, 2.457V zwischen RxD+ und - Platine ist definitiv nicht defekt. Mehrere baugleiche getestet, gleiches Problem. GND ist verbunden. Sherlock 🕵🏽♂️ schrieb: > Hat dein Adapter vielleicht einen Umschalter auf RS485? Nein
:
Bearbeitet durch User
Alex B. schrieb: > 0.230V zwischen TxD+ und -, > 3.220V zwischen RxD+ und - Das sieht aus wie RS-485. Hat diese ominöse Platine einen Namen? Eine Anleitung? Einen Schaltplan? Und wenn nicht, miss mal, welche Anschlüsse mit welchen Pins des Transceiver-Chips verbunden sind, und wo Terminierungs-Widerstände sitzen.
Clemens L. schrieb: > Das sieht aus wie RS-485. RS422 macht an dieser Stelle exakt dasselbe. Der Unterschied zwischen den beiden ist, daß RS422 zwei Adernpaare verwendet, eines für die Sende- und eines für die Empfangsrichtung, und daher im Vollduplexbetrieb genutzt werden kann. RS485 benutzt nur ein Adernpaar, muss deswegen zwischen Sende- und Empfangsbetrieb umgeschaltet werden und ist daher nur im Halbduplexbetrieb nutzbar.
Alex B. schrieb: > Wenn die Platine verbunden ist, bei der das Problem besteht: > 0.230V zwischen TxD+ und -, Das ist offensichtlich nicht gut. Passt aber dazu: > Sobald man TxD- wieder anklemmt leuchtet sofort > die RxD LED am Adapter wieder permanent Wenn du den USB Adapter nochmal abtrennst, welche Spannung liefert deine Platine dann am TxD Ausgang? > Platine ist definitiv nicht defekt. Warum denkst du das? Mit einer anderen Platine geht es ja und du misst ganz andere Spannungen.
:
Bearbeitet durch User
Harald K. schrieb: > Clemens L. schrieb: >> Das sieht aus wie RS-485. > > RS422 macht an dieser Stelle exakt dasselbe. Der Unterschied zwischen > den beiden ist, daß RS422 zwei Adernpaare verwendet, eines für die > Sende- und eines für die Empfangsrichtung, und daher im > Vollduplexbetrieb genutzt werden kann. RS485 benutzt nur ein Adernpaar, > muss deswegen zwischen Sende- und Empfangsbetrieb umgeschaltet werden > und ist daher nur im Halbduplexbetrieb nutzbar. Da ich mich darüber schon häufig mit Kunden streiten musste, RS485 gibt es auch in FullDuplex, also ein Adernpaar für Senden und ein Adernpaar für Empfangen. Die Norm EIA-485 sagt nur das ein Adernpaar für das invertierte und nicht-invertierte Signal verwendet wird. Chips für RS485 haben aber auch einen Driver-Enable und können(!) deshalb auch in Half-Duplex mit einem Adernpaar betrieben werden. Bei RS485 sind die Treiber bspw. stärker, sodass man ohne Probleme beide Enden terminieren kann. Zu 230mV auf dem TX-Pärchen: Das ist ein ganz schwaches High. Also möglicherweise wird das Signal viel zu stark belastet oder der Treiber ist aus oder kaputt.
Daniel F. schrieb: > Da ich mich darüber schon häufig mit Kunden streiten musste, RS485 gibt > es auch in FullDuplex, also ein Adernpaar für Senden und ein Adernpaar Das ist dann kein RS485, sondern RS422. Vielleicht musstest Du Dich deswegen häufig streiten, weil Du daneben liegst? Schon mal in Erwägung gezogen?
Clemens L. schrieb: > Hat diese ominöse Platine einen Namen? Eine Anleitung? Alles proprietäre interne Sachen, da gibt's nichts zu. Sherlock 🕵🏽♂️ schrieb: > welche Spannung liefert deine Platine dann am TxD Ausgang? 2.950V an TxD-, 2.693 an TxD+ Sherlock 🕵🏽♂️ schrieb: > Warum denkst du das? Mit einer anderen Platine geht es ja und du misst > ganz andere Spannungen. Mehrere Platinen unterschiedlicher Art dieses Herstellers haben alle dieses "Problem". Auch welche im laufenden Betrieb an denen regelmäßig über diesen Anschluss gearbeitet wird. Alle Platinen die nicht älter als ein paar Jahre sind. Zudem: ein Fernüberwachungsgerät, ebenfalls etwas internes von diesem Hersteller, kann über besagten Anschluss problemlos mit der Platine kommunizieren. Da habe ich ähnliche Spannungen bei der Verbindung. Zwischen TxD+ und -, 0.271V im Idle Zustand, während der laufenden Kommunikation 1.929V Ob der FTDI Adapter das hinbekommt? Oder doch Widerstände dazu?
:
Bearbeitet durch User
Alex B. schrieb: > Mehrere Platinen unterschiedlicher Art dieses Herstellers haben alle > dieses "Problem". Kann man den RS485/422-Treiberbaustein auf der Platine identifizieren? Darfst Du ein Bild der Platine zeigen?
Sherlock 🕵🏽♂️ schrieb: > Also ist die Platine kaputt. Nochmal: alle Platinen dieses Herstellers ab einem gewissen Baujahr haben dieses Phänomen und das interne Fernüberwachungsgerät welches an genau diesem Anschluss angeschlossen wird kann trotzdem problemlos mit der Platine kommunizieren. Harald K. schrieb: > Kann man den RS485/422-Treiberbaustein auf der Platine identifizieren? 7LB180 17AVV2M Harald K. schrieb: > Darfst Du ein Bild der Platine zeigen? Eher schlecht... Ich habe noch mal ein wenig gemessen: 3.825V zwischen TxD + und - am Fernüberwachungsgerät wenn KEINE Platine verbunden ist und sobald man sie verbindet (IDLE sodass keine tatsächliche Kommunikation stattfindet) sind es 1.930V. Vielleicht ist ein Pull-Up Widerstand die Lösung?
Alex B. schrieb: > Eher schlecht... Alex B. schrieb: > Harald K. schrieb: >> Kann man den RS485/422-Treiberbaustein auf der Platine identifizieren? > > 7LB180 17AVV2M https://www.ti.com/lit/ds/symlink/sn65lbc180.pdf Alex B. schrieb: > Vielleicht ist ein Pull-Up Widerstand die Lösung? Es gibt das Konzept, RS485 mit einer Vorspannung zu betreiben, d.h. einem Pullup an + und einem Pulldown an -. Diese Pullups/downs können recht hochohmig werden; eine Anwendung, mit der ich zu tun habe, verwendet da 27k (gegen 5V bzw. Masse). Einen Abschlusswiderstant zwischen + und - gibt es auch noch. Das sind afaik üblicherweise 120 Ω.
Alex B. schrieb: > ein Fernüberwachungsgerät, ebenfalls etwas internes von diesem > Hersteller, kann über besagten Anschluss problemlos mit der Platine > kommunizieren. Da habe ich ähnliche Spannungen bei der Verbindung. > Zwischen TxD+ und -, 0.271V im Idle Zustand, während der laufenden > Kommunikation 1.929V Auch das sieht aus wie RS-485 (Halbduplex über ein Adernpaar; das andere wird gar nicht benutzt). > Ob der FTDI Adapter das hinbekommt? Nein; der RS-422-Adapter kann sein TxD nicht abschalten. Du brauchst einen RS-485-Adapter.
Clemens L. schrieb: > Auch das sieht aus wie RS-485 (Halbduplex über ein Adernpaar; das andere > wird gar nicht benutzt). Der RS422 Anschluss an der Platine hat einen DB9 Stecker. Bei der Verbindung mit dem Fernüberwachungsgerät sind es am anderen Ende Schraubklemmen. Da sind entsprechend auch RxD +/- und TxD +/- verbunden.
Wenn der Bias schon negativ ist, ist vielleicht bei der neuen Platine einfach die beschriftung A/B TX+/TX- vertauscht? Oder der (H)ersteller hat sich die verkehrte Bus-ruhepolarität ausgedacht, um sich seinen arbeits- oder Zuliefervertrag zu sichern. Auf jeden fall ist da etwas nicht standardkonform. Allerdings sind einige erhältliche Adapter für RS485 mit vermurkster "automatischer" sendeumschaltung auch alles andere als standartkonform, auch wenn sie zum testen auf dem labortisch meistens funktionieren. Es kann also schon sein, dass ein besserer Adapter hilft, den muss die software aber auch richtig ansteuern (z.b. TXEN über RTS) In meiner Anfängerzeit hatte auch ich schlechten erfahrungen mit RS485, war richtig enttäuscht von diesem unzuverlässigen zeug, bis ich in meiner auf alle Platinen kopierten Schaltung die Bias-Richtung korrigiert hatte. Kannst du deinen Adapter öffnen? Dann zeige mal Bilder von vorder und Rückseite der Platine. Genauso von der schaltung auf der Gegenseite. Als nächstes einmal einen Loopback/Echo test machen und dann die Leiterplatte mit festem Signalpegel ansteuern und beobachten, wann der fehler auftritt. Beachte auch, dass RS422 nur Punkt-zu-Punkt geht, also das Fernüberwachungsgerät muss getrennt werden.
:
Bearbeitet durch User
Flip B. schrieb: > A/B TX+/TX- vertauscht? Schon getestet, klappt nicht. Flip B. schrieb: > (H)ersteller hat sich die verkehrte Bus-ruhepolarität ausgedacht, um > sich seinen arbeits- oder Zuliefervertrag zu sichern. In diese Richtung geht es wahrscheinlich. Alles was sonst noch angesprochen wurde werde ich morgen ausprobieren, falls der bis dahin eintreffende FTDI Adapter keine Abhilfe schafft. Ganz grundsätzlich müsste sich das Problem notfalls mit Pull-Up und Pull-down Widerständen lösen lassen, oder?
zuerst mal diese widerstände auf dem adapter deaktivieren oder auslöten. hm aber eigentlich ist ja bei 422 der treiber immer aktiv und damit die spannung festgelegt. Müsste man die schaltung des adapters anschauen, wie der für 422 geschaltet ist.
:
Bearbeitet durch User
Das muss bei RS422 nicht zwangsweise so sein. Es gibt Busse mit 2 Aderpäärchen auf dem der Master auf dem einen und alle Slaves auf dem anderen Päärchen senden. Somit gibt es auch RS422 Interfaces bei denen der TX Kanal nicht immer niederohmig ist, was genau zu diesem Problem führen kann. Failsafewiderstände könnten da helfen, aber genaueres kann man nur mit Schaltplänen und messen sagen.
Alex B. schrieb: > Ganz grundsätzlich müsste sich das Problem notfalls mit Pull-Up und > Pull-down Widerständen lösen lassen, oder? Wir kennen die Schgaltung nicht, wissen aber schon, dass sie sich nicht normal verhält. Da ist jede Mutmaßung sinnlos.
Ich bin ein Fan von "Erst messen, dann überlegen und danach weiterbasteln." Heißt: mit dem Oszi in Idle, Mark und Space die Pegel feststellen, im Gutfall und im Schlechtfall. Dann überlegen, wo die Unterschiede herkommen. Und zum Schluss die Unterschiede beheben.
Sherlock 🕵🏽♂️ schrieb: > Wir kennen die Schgaltung nicht, wissen aber schon, dass sie sich nicht > normal verhält. Sie verhält sich normal für RS-485. (0,2 V für einen Halbduplex-Bus, auf dem gerade kein Sender aktiv ist, sondern nur die Failsafe-Widerstände; irgendwas über 1,5 V für Signale mit Terminierung; 3,3 V für Signale, die an unbenutzte Anschlüsse ohne Terminierung gehen.)
Des Rätsels Lösung ist gefunden. Zumindest funktioniert es jetzt: TXD - am Adapter direkt mit GND der Platine verbinden. Dann leuchtet die RxD LED am Adapter nicht mehr permanent und die Kommunikation funktioniert wie sie soll. Werde das langfristig dann mit einem Widerstand verbessern.
Nein, ist nichts kaputt. Getestet an mehreren Platinen des Herstellers. Funktioniert wenn TXD - mit GND verbunden ist, sonst nicht. Sowohl mit FTDI als auch CH340 Adapter.
:
Bearbeitet durch User
Alex B. schrieb: > Funktioniert wenn TXD - mit GND verbunden ist, sonst nicht. Und genau das ist eben kaputt.
Flip B. schrieb: > ist vielleicht bei der neuen Platine > einfach die beschriftung A/B TX+/TX- vertauscht? einfach mal abgleichen mit der alten version. Ist mir wie gesagt auch mal passiert, beschriftungen habe ich meist auf einem eigenen layer und getrennt vom footprint des steckers.
:
Bearbeitet durch User
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.