RS485 Kabel selber machen mit FTDI 232R

#6462921
Lesenswert?

Gast #6463191
Lesenswert?

Schaue ich mir die Verkabelung in der Produktbeschreibung an und 
vergleiche das mit dem von A.K.s(foxmulder) geposteten Amazon Link, so 
komme ich zu der Erkenntnis, daß es mit dem Teil gehen könnte.
Mir war RS485 bis dato nicht geläufig und dachte, es wäre full duplex.
Wie ust das denn mit der Potentialtrennung in der einen oder anderen 
Lösung?
#6463230
Lesenswert?

Das übliche ingenieursmäßige Vorgehen:
1. oh, interessant!
2. das muss doch irgendwie aufgehen!

Am großen IC ist die Beschriftung entfernt, das kleine ein MAX485ESA

usb-devices meldet einen CH341:
T:  Bus=04 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#=  2 Spd=12  MxCh= 0
D:  Ver= 1.10 Cls=ff(vend.) Sub=00 Prot=00 MxPS= 8 #Cfgs=  1
P:  Vendor=1a86 ProdID=7523 Rev=02.54
S:  Product=USB2.0-Serial
C:  #Ifs= 1 Cfg#= 1 Atr=80 MxPwr=96mA
I:  If#=0x0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=01 Prot=02 Driver=ch341

Vermutlich ist das dreibeinige ein Transistor der die 
halbduplex-Umschaltung macht
Beitrag "Re: Programmierbares Terminalprogramm zur Protokollauswertung"
da hatte ich eine Schaltung gefunden, die das so macht.
Angehängte Dateien:
(Firma: vyuxc) #6464400
Lesenswert?

Hauke Haien schrieb:

> Dann guck lieber nochmal nach, ob du nicht eigentlich RS422 brauchst,
> das ist quasi RS485 full duplex.
> Gibts genauso fertig im Stecker vergossen von FTDI.

Nein, 422 ist ein Subset von 485. Es gibt tatsächlich 
FD-Implementierungen von RS485 in FD, die sind aber selten. Die 
Spezifikation lässt sich nicht darüber aus ob HD oder FD.
#6464420
Lesenswert?

Mit Umschaltung meine ich nur die Datenrichtung im Halbduplex-Betrieb, 
also abwechselnd senden/empfangen.

So sieht die Schaltung in einem USB/RS485-Wandler von Reichelt aus.
https://cdn-reichelt.de/documents/datenblatt/A300/RB-RS485_2017_01.pdf

Ich vermute, die Gate-Kapazität zusammen mit dem 10k-Vorwiderstand sorgt 
für ausreichend Verzögerung, wenn nur ein Startbit mit 8 low-Datenbits + 
Stopbit kommt, damit die Schaltung nicht zu früh auf Empfang geht.
Angehängte Dateien:
Gast #6464490
Lesenswert?

Hauke Haien schrieb:
> ChristophK schrieb:
>> Mir war RS485 bis dato nicht geläufig und dachte, es wäre full duplex.
>
> Dann guck lieber nochmal nach, ob du nicht eigentlich RS422 brauchst,
> das ist quasi RS485 full duplex.
> Gibts genauso fertig im Stecker vergossen von FTDI.

Ich versuche gerade den 9pol. DB-female Anschluß an der Schaltung zu 
verstehen.

Da sind belegt:
1 - N.C.
2 - N.C.
3 - N.C.
4 - N.C.
5 - Masse
6 - N.C.
7 - RTS verbunden
8 - CTS verbunden
9 - N.C.

7 und 8 gehen dann in der Schaltung an einen ADM483, pins 6 und 7.

Entweder hat da jemand etwas völlig unstandardmäßiges gemacht oder es 
ist ein Trick dahinter, vielleicht um den RS485 "zweigleisig" zu 
benutzen?

Zumindest ist es nur eine twisted pair Leitung, vermute ich mal.
Angehängte Dateien:
Gast #6464575
Lesenswert?

Hmmm schrieb:
> ChristophK schrieb:
>> Entweder hat da jemand etwas völlig unstandardmäßiges gemacht
>
> Warum vergleichst Du das Pinout mit RS232 auf DB9? Das ist doch eine
> völlig andere Baustelle, RS485 hat damit nichts zu tun.

Es gibt doch RS485 auf DB9. 
https://www.google.de/url?sa=t&rct=j&q=&esrc=s&source=web&cd=&ved=2ahUKEwjiuaefrunsAhVJ6uAKHWuHCu4QFjAAegQIARAC&url=https%3A%2F%2Fwww.virtual-serial-port.org%2Fde%2Farticle%2Fwhat-is-serial-port%2Frs485-pinout%2F&usg=AOvVaw2A0xy82V5Ee31mefMoDFJt

Darauf bezog ich mich.
Gast #6464646
Lesenswert?

Hmmm schrieb:
> ChristophK schrieb:
>> Es gibt doch RS485 auf DB9.
>
> Ja, aber...
>
> ChristophK schrieb:
>> Darauf bezog ich mich.
>
> ...die zitierte Quelle ist völliger Unsinn. Wahrscheinlich das Resultat
> von "Suchmaschinenoptimierung".
>
> Bei RS485 gibt es A, B und GND. Und genau die sind bei Deinem Gerät
> vorhanden.

Aber wo finde ich eine RS485 DB9-Belegung?
Und, um die Vermutung, ich brauche RS422, zu entkräften: die 
Beschreibung meiner vorliegenden Schaltung mit den weiter envolvierten 
Bauteilen ADM483 belegt doch klar, daß ich RS485 brauche.
#6464657
Lesenswert?

Wenn's Dir nützt; im Anhang ist ein automatisch umschaltender USB 
Wandler auf RS485 und RS232.

Ich baute mir es in 2008 und habe es seitdem in laufenden Betrieb. Die 
Umschaltung von RS485 auf RS232 geschieht automatisch beim Einstecken 
eines aktiven RS232 Kabelkanals. Ein Schalter für die Bus Terminierung 
ist auch vorgesehen. Die Richtungsumschaltung übernimmt der FTDI232RL.

Hier ein Bild davon:
Beitrag "Re: Zeigt her Eure Kunstwerke !"
Angehängte Dateien:
#6464659
Lesenswert?

die "billig" rs485 adapter taugen nich wirklich was, wenn man nur
ein paar zeichen mitschreiben will mag das noch funktionieren, aber
mehr geht nicht wirklich, hab da stundenlang fehler gesucht, wenn
man sich dann die signale mitm oszi anschaut sieht man das grauen,
die gesendeten signale sind total 'kaputt'

i hab mir jetzt einen adapter mit einem mega1284pmu gebaut, der hat 2
serielle in HW, eine macht den rs485 pfad, nachhher auch umschaltbar 
halb/vollduplex, die andere serielle ueber ch340 an usb, den rest
macht die software, daher sehr flexibel, platinen gehen die tage
in die fertigung......


vlG
Charly
Gast #6464681
Lesenswert?

Hmmm schrieb:
> ChristophK schrieb:
>> Aber wo finde ich eine RS485 DB9-Belegung?
>
> Die ist nicht genormt, aber Du hast sie doch bei Deinem Gerät längst
> ermittelt. Jetzt kaufst Du Dir noch einen fertigen USB-RS485-Konverter,
> guckst Dir die Belegung davon an und lötest Dir ein passendes Kabel
> zusammen.

Kabel: brauche ja nur ein twisted pair + Abschirmung (einseitig). Kann 
da doch sicher ein Stück CATx-Kabel nehmen, oder?
Gast #6464743
Lesenswert?

ChristophK schrieb:
> Kabel: brauche ja nur ein twisted pair + Abschirmung (einseitig). Kann
> da doch sicher ein Stück CATx-Kabel nehmen, oder?

Für grössere Distanzen etwas in der Art, ja. Ein Adernpaar für A und B, 
eine Ader (oder auch das gesamte Paar) für GND, Schirm einseitig erden.

RS485 ist aber nicht sonderlich anspruchsvoll, gerade bei niedrigen 
Geschwindigkeiten.
#6465102
Lesenswert?

>die zitierte Quelle ist völliger Unsinn
ja oben hat sich die abgebildete Olga vertan, das ist die Beschreibung 
der RS232-Belegung eines DSub9. Aber das weiter unten sieht besser aus, 
das könnte eine RS485-Belegung sein. Ich hätte allerdings noch irgendwo 
einen GND-Anschluss für die Abschirmung erwartet.

Der FT232 macht vermutlich etwa dasselbe wie mein zitierter Mosfet. 
Sozusagen ein retriggerbares Monoflop, das schnell auf den low-Pegel des 
Startbits anspricht, aber dann mehr als eine Byte-Dauer abwartet. Danach 
muss eine kurze Pause zum Umschalten eingeplant sein, die Gegenstelle 
darf nicht sofort antworten.
Ich hätte da vielleicht noch unterschiedliche Ansprech- und Abfallzeiten 
eingebaut, eine Diode über dem 10k-Widerstand würde reichen.

Die Logikpegel sind so wie vor dem invertierenden RS232-Treiber 
(z.B.MAX232), also Startbit nach GND und Stopbit nach +5V. Ruhepegel 
beim Empfang ist +5V. Damit ist der Mosfet beim Senden abgeschaltet, 
beim Empfang durchgeschaltet. Daher sollte die Abschaltzeit nach dem 
Stopbit relativ kurz sein.
#6465121
Lesenswert?

hi Chris,
das stimmt leider nicht ganz so, der TX pin des usb-chips
ist im stby auf H , wenn er zu senden beginnt schaltet der
rs485 chip leicht verzoegert auf senden und bring dann aber
auch schon direkt die daten auf die leitung was am RX oft
zu einem frameerror fuehrt...............
du schreibst:
> Danach muss eine kurze Pause zum Umschalten eingeplant sein, die
> Gegenstelle darf nicht sofort antworten.

wieso darf dann "diese" stelle sofort senden ?

genau diese 'verzoegerungen' machten mir probleme beim datenverkehr
mit den 'simpel' rs485 adapter, seit dem ich den adapter mit dem
atmega dazwischen hab laeuft es VIEEEL besser, quasi kein FE mehr

vy73
Charly
#6465130
Lesenswert?

Ja die Pegel habe ich erst jetzt korrigiert.
Das ist ja mein Vorschlag, die Ansprechzeit muss kürzer sein als der 
Abfall, weil das Startbit sonst verkürzt ist. Eventuell reicht eine 
Schottkydiode über dem Gate-Widerstand, vom Gate zum TX-Eingang zeigend.

Wikipedia sagt zum Unterschied 485/422:
https://de.wikipedia.org/wiki/EIA-485
"Gegenüber dem EIA-422-Standard besitzen die Sender durch einen 
integrierten Widerstand kurzschlussfeste Ausgangsstufen, so dass auch 
ein Gegensenden zweier Sender nicht zu Defekten führt. An einem 
Adernpaar dürfen außerdem mehrere Sender und mehrere Empfänger 
angeschlossen sein („Multipoint“)."
Der Unterschied ist also nicht halb/vollduplex, wie es oben mal vermutet 
wurde.

Auch der CH341 hat einen Ausgang zur RS485-Umschaltung
https://pdf1.alldatasheet.com/datasheet-pdf/view/1132609/ETC2/CH341A.html
Angehängte Dateien:
#6465163
Lesenswert?

ja genau, i kann bis zu 128 Teilnehmer anschliessen, wenn das nicht
reicht hab ich noch einen Hub gebaut (muss noch getestet werden) da
kannste dann die naechsten 128 TN anschliessen usw.........
damit die 'geometrie' der bits incl. startbit erhalten bleibt 'puffert'
der adapter die daten und sendet erst nach einer zeit x nach dem
umschalten auf senden (txdelay), ebenso laesst er den sender nach
dem letzten bit noch kurz an

> Auch der CH341 hat einen Ausgang zur RS485-Umschaltung
> https://pdf1.alldatasheet.com/datasheet-pdf/view/1132609/ETC2/CH341A.html

leider wird in den 'popeladaptern' der ch340 verwendet dem dieser pin 
fehlt
Gast #6465170
Lesenswert?

Christoph db1uq K. schrieb:
> Der Unterschied ist also nicht halb/vollduplex, wie es oben mal vermutet
> wurde.

RS485-Busse sind entweder 2-Draht oder 4-Draht.
Irgendwelche automatischen Umschaltungen können nie so recht 
funktionieren, denn die Automatik kennt das Protokoll nicht. Das 
Protokoll nämlich definiert wann ein Block zu Ende ist und die 
Gegenstation antworten kann. Da gibt es Zeiten die einzuhalten sind. Wie 
soll das eine Automatik können?

Hat man nur 2 Geräte am Bus, dann ist 4-Draht einfach, weil nichts 
umgeschalten werden muss. Wie RS232, nur differentiell.

Nebenbei wundere ich mich, woher die Klemmenbezeichnungen A+ und B- 
kommen. Das ist immer paarweise A+ A- oder A /A. Bei 4-Draht dann A+ A- 
und B+ B-
Gast #6465227
Lesenswert?

Noch was zur Umschaltung bei 2-Draht:
Die Protokolle bauen oft darauf auf, dass zwischen den Zeichen keine 
Pause oder nur maximal x ms sein dürfen. Das bekommt aber ein normales 
Betriebssystem nicht immer zuverlässig gebacken. Auch bei nur 9600 Bd.
Genauso wie es das BS nicht hinbekommt (Nicht-)Pausen im empfangenen 
Datenstrom richtig zu erkennen.
Und das sind dann die Momente, wo gelegentlich mysteriöse 
Verbindungsabbrüche auftreten. Da kann man dann den ganzen Tag den Bus 
mitprotokollieren bis man die Ursache gefunden hat.
Gast #6465390
Lesenswert?

Weiß jemand, was der Autor der mir vorliegenden RS485 DB9-Beschaltung 
mit dem Bauelement in einer Skizze gemeint haben könnte?

Es sieht aus wie ein SMD-Transistor. Oder sind das 2 Dioden (was ja ein 
Transistor auch ist)?
#6466268
Lesenswert?

http://www.s-manuals.com/pdf/datasheet/s/m/sm05-sm36_20040712_semtech.pdf

Das Datenblatt zu der Doppel-Schutzdiode, eine Art Zenerdiode mit 
definierter Impulsleistungsaufnahmefähigkeit. Bis 5V hochohmig, ab 6V 
fließt Strom, begrenzt auf ca. 9,8V, überlebt Impulse mit 300 Watt und 
hat max. 400 pF, was für die Tiefpasswirkung wichtig ist. Es gibt solche 
Dioden bis herunter auf 10 pF, falls man höhere Baudraten braucht.
#6466366
Lesenswert?

Meine Kollegen benutzen einen isolierten RS485-Treiber, ADM2485 und 
ADM2486.

Der kann bis zu 20MBaud und benutzt einen Eingang "RTS" für 
Driver-enable, hat also drei isolierte Trafos in "iCoupler technology".
https://www.analog.com/media/en/technical-documentation/data-sheets/ADM2485.pdf
https://www.analog.com/media/en/technical-documentation/data-sheets/ADM2486.pdf

Die Software muss RTS umschalten, das geht natürlich nicht mit fremder 
Software.

Hier die verwendete Anschlussbelegung. Da sind sogar drei RS485 
halbduplex-Schnittstellen auf einem DSub9.
Angehängte Dateien:
Gast #6466694
Lesenswert?

Christoph db1uq K. schrieb:
> Der FT232 macht vermutlich etwa dasselbe wie mein zitierter Mosfet.
> Sozusagen ein retriggerbares Monoflop, das schnell auf den low-Pegel des
> Startbits anspricht, aber dann mehr als eine Byte-Dauer abwartet.

Nö, warum sollte er das tun? Der FT232 weiss schliesslich selbst, wann 
er anfängt und aufhört zu senden.

Aus dem Datenblatt: "Note that the TXDEN is activated 1 bit period 
before the start bit. TXDEN is deactivated at the same time as the stop 
bit. This is not configurable."

Charly B. schrieb:
> wenn er zu senden beginnt schaltet der
> rs485 chip leicht verzoegert auf senden und bring dann aber
> auch schon direkt die daten auf die leitung was am RX oft
> zu einem frameerror fuehrt...............

Also lieber einen nicht so billigen Adapter verwenden, in dem ein FT232 
verbaut ist. Falls der Hersteller nicht angibt, was er verbaut, hilft im 
Zweifelsfall ein Blick auf den dazugehörigen Treiber.

Nick M. schrieb:
> Nebenbei wundere ich mich, woher die Klemmenbezeichnungen A+ und B-
> kommen.

Vermutlich zur Klarstellung, dass A der nicht-invertierende Ausgang (in 
Ruhelage +5V) und B der invertierende Ausgang (in Ruhelage 0V) ist.

Nick M. schrieb:
> Die Protokolle bauen oft darauf auf, dass zwischen den Zeichen keine
> Pause oder nur maximal x ms sein dürfen. Das bekommt aber ein normales
> Betriebssystem nicht immer zuverlässig gebacken.

Das grösste Problem ist, dass das Betriebssystem dank UART mit FIFO 
nicht mal zuverlässig weiss, wann alles gesendet wurde.

Ich habe deshalb seinerzeit das Echo der gesendeten Daten ausgewertet, 
was meistens funktionierte. Ein FT232, der sich selbst darum kümmert, 
ist wesentlich angenehmer.

Christoph db1uq K. schrieb:
> Das Datenblatt zu der Doppel-Schutzdiode, eine Art Zenerdiode mit
> definierter Impulsleistungsaufnahmefähigkeit. Bis 5V hochohmig, ab 6V
> fließt Strom, begrenzt auf ca. 9,8V

Das verträgt sich allerdings nicht mit der zulässigen Common-Mode Range 
von RS485.
Gast #6474444
Lesenswert?

Habe jetzt einen RS485 USB Adapter bekommen, den ich an die bestehende 
Installation zusätzlich derart anschließen möchte, daß ich die Daten, 
die über den RS485-Bus lauf. mitlesen möchte.

Das bestehende Kabel ist ein (vermutlich FTDI) RS485-WE, an das über ein 
dickes Stück Schrumpfschlauch ein RJ-45 Klotz (Buchse) angeschlossen 
ist.

Ich habe schon durchgepiepst, daß 4-bl,5-wh, 1-GND an den 9pol DB gehen,
bl an 8, wh an 7, 5 an GND.

Ich weiß nicht, wie ich jetzt herausbekommen kann, was A und B sind.

Zum zweiten möchte ich den RS485-Bus wieder zurückführen und mit einem 
zweiten RS485 (Billig-Ding, wie mir hier aus dem Thread empfohlen 
wurde).

Das hat 3 Anschlüsse, A,B, GND.
Welchen (A oder B) schließe ich an den RJ45 (4/5) an?
Angehängte Dateien:
Gast #6474505
Lesenswert?

Wolfgang schrieb:
> ChristophK schrieb:
>> Ich weiß nicht, wie ich jetzt herausbekommen kann, was A und B sind.
>
> Du könntest mit irgendeinem Terminalprogramm ein paar Zeichen senden und
> dir das auf den Leitungen mit einem Oszi ansehen.

Ich habe ja zwei USB-RS485-Schnittstellen zur Verfügung,könnte sie also 
gegeneinanderschalten, mit der einen sende ich, mit der anderen schaue 
ich, ob ich was empfange. Deswegen meine Frage, ob Verpolung 
problematisch ist?
Gast #6475147
Lesenswert?

Hatte Glück, Anschluß war richtig verdrahtet. Ich kann also jetzt über 
das Y-Kabel mitlesen, was auf dem RS485-Bus passiert.

Auf dem Mac präsentieren sich die Devices als:

/dev/cu.usbserial-1410
/dev/cu.usbserial-FTUNDF8H

Und über die Verbindung konnte ich die Funktion zunächst verifizieren. 
Das Programm, das das Protokoll benutzt, läuft allerdings unter Windows 
10.

Dort wird leider diese Billig-Schnittstelle nicht erkannt. Es wird zwar 
ein allgemeiner USB-2.0 Treiber eingerichtet, aber das Device erscheint 
nicht als COM-Schnittstelle.

Nun deutet der Name unter macOS ja auf den Chip hin. Das 
/dev/cu.usbserial-FT... ist das der FTDI RS485 Kabels. cu.usbserial-1410 
deutet auf einen Hersteller oder Chip hin, der Hardware-ID unter Windows 
ist USB VID_1a86.
Ich hasse es auf irgendwelche Driverdownload Seiten zu gehen und etwas 
Obskures herunterzuladen. Weiß jemand Rat?

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren