Forum: Mikrocontroller und Digitale Elektronik RS232-USB Adapter mit +-12V


von Tobi J. (tjueterb)


Lesenswert?

Hey Leute,

ich habe ein paar Fragen zu RS232-USB Adaptern bzw zu den Schnittstellen 
generell.

TL;DR:
1. Gibt es RS232-USB Adapter, die mit +-12V Pegel arbeiten?
2. Kann man RS232- und TTL-Schnittstellen auf Linux (oder Windows) 
vonaneinder unterscheiden und evtl. sogar die Pegel anzeigen lassen?

Folgendes Problem:

Ich muss ein Messgerät über eine RS232-Schnittstelle steuern. Das mache 
ich mit Python über pySerial. Auf einem PC mit einer eingebauten 
RS232-Schnittstelle (DB9) funktioniert das einwandfrei. Dort habe ich 
auch mal die Spannung gemessen, es sind ca. 12V.

An einem anderen Rechner (der tatsächliche Messrechner) sind auch 3 
serielle Schnittstellen vorhanden, aber die Kommunikation will partout 
nicht laufen, obwohl innerhalb von Python alles zu funktionieren 
scheint. Ich habe mal die Spannungen gemessen, dort lagen mal 5V und mal 
0V an. Ich könnte mir also vorstellen, dass da TTL und kein RS232 
vorhanden ist. In der Produktbeschreibung steht was von einer 
RS232-Schnittstelle, aber der Hersteller konnte mir auch nichts 
genaueres sagen. Die Ports werden von setserial als 16550A bezeichnet.

Deswegen meine erste Frage: Kann man irgendwie auf Linux oder Windows 
herausfinden, ob man eine RS232- oder TTL-Schnittstelle hat und evtl. 
sogar, was dort für Spannungen ausgegeben werden?

Das RS232 Protokoll verlangt ja prinzipiell nur Spannungen zwischen +- 
3V...15V, vielleicht ist dort einfach eine RS232-Schnittstelle 
vorhanden, welche mit +-5V läuft. Aber ich gehe davon aus, dass das 
Messgerät +-12V erwartet und deswegen nicht auf ankommende Signale 
reagiert. Um das ganze flexibler zu machen und einfacher auf anderen 
Computern ohne Serial Port benutzen zu können, habe ich über einen 
USB-Adapter nachgedacht.

Darauf bezogen meine zweite Frage: Kennt ihr USB-RS232 Adapter, die 
+-12V ausgeben? Ich dachte bisher immer, dass V.24 für eben diese +-12V 
steht, bin aber nach dem lesen älterer Threads hier nicht mehr sicher.

Bisher hatte ich diese beiden Adapter (den ersten eben wegen dem V.24) 
im Auge, aber leider finde ich nirgends in Datenblättern angaben zu den 
tatsächlichen Pegeln der Adapter. Der erste hat einen FTDI-Chip verbaut, 
der zweite einen von Prolific (ich denke mal PL2303).

https://www.reichelt.de/exsys-kabel-usb-2-0-zu-1s-seriell-rs-232-1-8-m-exsys-ex-1311-2-p234294.html?&trstct=pos_3

https://www.reichelt.de/usb-1-1-konverter-a-stecker-auf-rs-232-delock-61856-p108881.html?&trstct=pos_4

Wenn ihr zu den beiden Adaptern etwas sagen könnt, oder zufällig einen 
Adapter kennt, der auf +-12V arbeitet, freue ich mich über jeden Tipp!

Danke
Tobi

von Jim M. (turboj)


Lesenswert?

Tobi J. schrieb:
> In der Produktbeschreibung steht was von einer
> RS232-Schnittstelle, aber der Hersteller konnte mir auch nichts
> genaueres sagen. Die Ports werden von setserial als 16550A bezeichnet.

Falls PC noch neu: Wandlung. Eine echte RS232 Schnittstelle darf keine 
0V an den Datenleitungen ausgeben - die Ports sind also nicht konform 
und daher als kaputt zu betrachten.

Wenn das billige USB2RS232 Adapter sind: Bessere Adapter kaufen, die 
einen vernünftigen Pegelwandler mitbringen.

von Wolfgang (Gast)


Lesenswert?

Tobi J. schrieb:
> Deswegen meine erste Frage: Kann man irgendwie auf Linux oder Windows
> herausfinden, ob man eine RS232- oder TTL-Schnittstelle hat und evtl.
> sogar, was dort für Spannungen ausgegeben werden?

Die Spannungspegel (OSI Schichtenmodell Layer 1) liegen auf der vom PC 
abgewandten Seite der Schnittstelle. Der PC weiß von den Spannungspegeln 
gar nichts.
Nimm ein Oszi und guck dir die Signale an, während du ein Zeichen 
sendest. Die Signale einer RS232-Schnittstelle sind gegenüber der 
TTS-Seite des RS232-Wandlers invertiert und bipolar, TTL unipolar.

von Tobi J. (tjueterb)


Lesenswert?

> Falls PC noch neu: Wandlung. Eine echte RS232 Schnittstelle darf keine
> 0V an den Datenleitungen ausgeben - die Ports sind also nicht konform
> und daher als kaputt zu betrachten.

0V lag nur an einem der drei Ports an, und bei TTL-Logik sind 0V ja 
möglich soweit ich weiß. Ich weiß leider nicht, welcher der drei Ports 
der besagte RS232-Port sein soll. Aber wie Wolfgang vorschlägt, werde 
ich da mal mit einem Oszi durchmessen.

> Wenn das billige USB2RS232 Adapter sind: Bessere Adapter kaufen, die
> einen vernünftigen Pegelwandler mitbringen.

Woran kann ich erkennen, dass ein vernünftiger Pegelwandler eingebaut 
ist?

Danke dir,
Tobi

: Bearbeitet durch User
von Wolfgang (Gast)


Lesenswert?

p.s.
Vielleicht liegt es auch an fehlenden Handshake Leitungen. Viele Adapter 
setzen nur RX-Data und TX-Data um. Falls das Messgerät Hardware 
Handshake benutzt, kann das auch am unpassenden Adapter liegen.

Bei RS232 müssen lt. Spezifikation am Empfänger +/-3V ankommen. Das 
sollte reichen.

von Dirk B. (dirkb2)


Lesenswert?

Tobi J. schrieb:
> An einem anderen Rechner (der tatsächliche Messrechner) sind auch 3
> serielle Schnittstellen vorhanden, aber die Kommunikation will partout
> nicht laufen,

Möglicherweise ist das nur ein UART. Zur RS232 wird das erst mit einem 
Pegelwandler.
Z.B. MAX232

von Dirk B. (dirkb2)


Lesenswert?

Tobi J. schrieb:
> In der Produktbeschreibung steht was von einer
> RS232-Schnittstelle, aber der Hersteller konnte mir auch nichts
> genaueres sagen.

Wa für ein Stecker ist das denn?

von Stefan F. (Gast)


Lesenswert?

Tobi J. schrieb:
> Woran kann ich erkennen, dass ein vernünftiger Pegelwandler eingebaut
> ist?

Daran, dass er +/- 12 V Signale liefert. Die meisten liefern weniger, 
was auch funktionieren sollte, wenn sich dein Gerät ebenso an die 
Spezifikation hält. Die verlangt nämlich mindestens  +/- 3 V.

von Tobi J. (tjueterb)


Lesenswert?

> Möglicherweise ist das nur ein UART. Zur RS232 wird das erst mit einem
> Pegelwandler.
> Z.B. MAX232

Das kann natürlich sein, ich werde das mal mit dem Oszi messen.
Aber im Zweifel würde ich mich wahrscheinlich für einen USB-Adapter 
entscheiden.


> Vielleicht liegt es auch an fehlenden Handshake Leitungen. Viele Adapter
> setzen nur RX-Data und TX-Data um. Falls das Messgerät Hardware
> Handshake benutzt, kann das auch am unpassenden Adapter liegen.

Ich habe bisher garkeinen Adapter benutzt, sondern die Ports am 
Messrechner durchgetestet.

> Was für ein Stecker ist das denn?

https://sinus-leipzig.de/images/downloads/katalog-und-broschueren/Flyer_Apollo_PCIe_deu-web.pdf
Das ist der Messrechner. Mehr als das was in dem Datenblatt auf Seite 2 
steht, weiß der Hersteller anscheinend auch nicht, der Support hat mich 
auf jeden Fall nur darauf verwiesen und dass ich doch bitte selber den 
RS232 Standard nachschlagen soll. Dass da 1xRS232 spezifiziert ist aber 
3 Ports vorhanden sind, scheint den Support auch nicht zu wundern. Auf 
dem Gehäuse des Rechners sind die Ports mit Serial 1, Serial 2/CAN 1, 
CAN 2 betitelt.

> Daran, dass er +/- 12 V Signale liefert.

Das ist ja klar, ich meinte ob man das irgendwo aus dem ablesen kann, 
was normalerweise so in Datenblättern steht.

> Die meisten liefern weniger,
> das auch funktionieren sollte, wenn sich dein Gerät ebenso an die
> Spezifikation hält. Die verlangt nämlich mindestens  +/- 3 V.

Das werde ich morgen herausfinden, ich bekomme einen RS232-USB Adapter 
zum testen. Da werde ich die Pegel checken und testen, ob die 
Kommunikation funktioniert oder nicht. Wenn nicht, werde ich erstmal mit 
dem Oszi die Ports am Rechner durchmessen.

Danke schonmal für eure Hilfe!

von Philipp K. (philipp_k59)


Lesenswert?

Alte Geräte erwarten meist mindestens +-7 und auch mal +-9V..

Das Problem bei den Billigadaptern wird sein das diese einen 3.3V 
USB2Uart Chip haben der dann mit einem Voltage Doubler wie max3232 oder 
max232 auf nur 5-6V gebracht werden.

am besten man schnappt sich eine lochraster, einen FTDI2USB Adapter mit 
max 232

zum Beispiel sowas:
https://www.dfrobot.com/product-1029.html?gclid=CjwKCAjw-vjqBRA6EiwAe8TCk8CLHl1ipWwC38sOBEBmb6FjO7Ro4vG5GDJKiV9aoX5oZbSGQrEveBoCEx8QAvD_BwE

von Willibald (Gast)


Lesenswert?

Tobi J. schrieb:
> Ich muss ein Messgerät über eine RS232-Schnittstelle steuern. Das mache
> ich mit Python über pySerial. Auf einem PC mit einer eingebauten
> RS232-Schnittstelle (DB9) funktioniert das einwandfrei. Dort habe ich
> auch mal die Spannung gemessen, es sind ca. 12V.

Im Ruhezustand (nichts senden) sollte am RS232 Stecker zwischen GND und 
TX Pin eine negative Spannung zu messen sein.
>
> An einem anderen Rechner (der tatsächliche Messrechner) sind auch 3
> serielle Schnittstellen vorhanden, aber die Kommunikation will partout
> nicht laufen, obwohl innerhalb von Python alles zu funktionieren
> scheint. Ich habe mal die Spannungen gemessen, dort lagen mal 5V und mal
> 0V an. Ich könnte mir also vorstellen, dass da TTL und kein RS232

Wie heißt dein Messrechner mit den 3 Ports?

Was bedeutet "lagen mal 5V und mal 0V an"? An einem Port hat die 
Spannung gewechselt, oder an Port1 waren es 5V und an Port2 die 0V?

Hast du an den gleichen Pins gemessen wie beim funktionierenden PC?

Haben alle Ports den gleichen DB9 MALE Konnektor?

Stellt dein Python Programm die Ports vollständig ein (Baudrate, 
Handshake, etc.). Falls nicht, könnten andere Defaults zwischen 
funktionierendem PC und Messrechner den Unterschied ausmachen.

Benötigt dein Messgerät einen Hardware-Handshake (RTS/CTS) um Daten 
auszugeben?

> 
https://www.reichelt.de/exsys-kabel-usb-2-0-zu-1s-seriell-rs-232-1-8-m-exsys-ex-1311-2-p234294.html?&trstct=pos_3
>
> 
https://www.reichelt.de/usb-1-1-konverter-a-stecker-auf-rs-232-delock-61856-p108881.html?&trstct=pos_4
>
> Wenn ihr zu den beiden Adaptern etwas sagen könnt, oder zufällig einen
> Adapter kennt, der auf +-12V arbeitet, freue ich mich über jeden Tipp!

Ich kenne die Adapter nicht, gehe aber davon aus, daß sie mit 
positiven/negativen Spannungen arbeiten. Sonst steht bei Reichelt immer 
USB > TTL oder LVTTL.
Ich würde den Exsys nehmen, der scheint vollständig belegt zu sein 
(Signal RS-232: TxD, RxD, RTS, CTS, DTR, DSR, DCD, GND). Beim Delock 
gibt es dazu keine Angaben. Aber Achtung, der Exsys hat laut Abbildung 
einen Female Konnektor.

von Larry (Gast)


Lesenswert?

Auch ein FTDI CHIPI-X schafft nur (+/-) 5.7 V.
Ein PL-2303 basierter Wandler immerhin (+/-) 6.5 V.

Wenn du einen seriellen USB-Wandler mit (+/-) 12 V Pegeln brauchst,
wirst du ihn wohl selber bauen muessen.

von Stefan F. (Gast)


Lesenswert?

Tobi J. schrieb:
>> Daran, dass er +/- 12 V Signale liefert.
>
> Das ist ja klar, ich meinte ob man das irgendwo aus dem ablesen kann,
> was normalerweise so in Datenblättern steht.

Normalerweise sollte das unmissverständlich in der Produktbeschreibung 
stehen. Beim großen Buchhändler, Ebay und Aliexpress findet man meistens 
jedoch unklare Produktbeschreibungen vor. Vor allem fehlt in der Regel 
die Info, welche Handshake-Leitungen unterstützt werden. Für einige gibt 
es keine offiziellen Windows Treiber mehr.

Wenn du keine Zeit/Lust hast, dich durch Billigware durchzuprobieren, 
musst du halt etwa tiefer in die Tasche greifen. Im Bereich oberhalb von 
10€ wirst du bestimmt fündig.

von Frank K. (fchk)


Lesenswert?

Larry schrieb:
> Auch ein FTDI CHIPI-X schafft nur (+/-) 5.7 V.
> Ein PL-2303 basierter Wandler immerhin (+/-) 6.5 V.

Meep. 6. Setzen.

Ausnahmslos alle USB-UART-Wandler geben (LV)TTL- oder CMOS-Signale raus, 
egal ob FTDI, Prolific, SiLabs, Microchip oder wer auch immer. Es ist 
immer noch ein RS232 Levelshifter wie MAX3232 vonnöten, und der und nur 
der bestimmt die Pegel am Ausgang.

> Wenn du einen seriellen USB-Wandler mit (+/-) 12 V Pegeln brauchst,
> wirst du ihn wohl selber bauen muessen.

Das hingegen wird wohl stimmen. Nimm am Besten ein Breakout-Board mit 
FT232RL Chip, konfiguriere den auf 5V IO-Spannung und nimm als 
Pegelwandler einen MC1488/75188 und einen MC1489/75189 plus einen 
kleinen DC-DC-Wandler von 5V auf +/- 12V. Das wird auf jeden Fall 
funktionieren.

fchk

von Christian M. (Gast)


Lesenswert?

Frank K. schrieb:
> Ausnahmslos alle USB-UART-Wandler geben (LV)TTL- oder CMOS-Signale raus

Aber mit DSUB-9 Stecker eher selten. Darum tippe ich bei serial1 auf 
RS232 und bei den anderen beiden auf CAN/proprietär.

Gruss Chregu

von Philipp K. (philipp_k59)


Angehängte Dateien:

Lesenswert?

Hier mal ein Ausschnitt aus dem FTDI Datasheet..

so wirds mit allen signalen richtig gemacht. mit allen signalen auf 10V 
nimmt man wohl die 213er Serie. für RXTX nur den max232.

von Dirk B. (dirkb2)


Lesenswert?


von Larry (Gast)


Lesenswert?

Ein
> FTDI CHIPI-X
ist ein fertig konfektionerter serieller USB-Adapter von FTDI.
Mit einem DB-9 Stecker. Rate mal was man an einer DB-9 Buchse erwartet.
Jedenfalls nicht
> (LV)TTL- oder CMOS-Signale

Scheinbar kennst du das Produkt nicht.

Der
> PL-2303 basierte
hat selbstverstaendlich auch einen DB-9 Stecker.


> Meep. 6. Setzen.

Kleines d..f.s A.......h.

von m.n. (Gast)


Lesenswert?

Stefanus F. schrieb:
> Tobi J. schrieb:
>> Woran kann ich erkennen, dass ein vernünftiger Pegelwandler eingebaut
>> ist?
>
> Daran, dass er +/- 12 V Signale liefert.

Immer wieder der gleiche Müll. Zeig mir ein Gerät, was jemals +/- 12 V 
Pegel geliefert hat. Meine Antwort vorweg: es gibt keins.

wg. "vernünftiger Pegelwandler"
Gibt es auch 'unvernünftige' Pegelwandler?

von Christoph db1uq K. (christoph_kessler)


Lesenswert?

Übrigens ist ein Pegelumsetzer wie MAX232 immer invertierend. Das 
TTL-Signal kann schon deshalb nicht dekodiert werden.

Die meisten alten RS232-Eingangspuffer mit symmetrischer 
Betriebsspannung haben ihre Logikschwelle kompatibel zu TTL. Beispiel 
SN75189/MC1489:
http://www.ti.com/lit/ds/symlink/sn75189.pdf
Schwelle zwischen +1,0 und +1,3V. Aber durch die fehlende Invertierung 
kann der PC trotzdem keine TTL-RS232-Signale entziffern.

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


Lesenswert?

m.n. schrieb:
> Immer wieder der gleiche Müll. Zeig mir ein Gerät, was jemals +/- 12 V
> Pegel geliefert hat. Meine Antwort vorweg: es gibt keins.
Ich habe da noch ein paar alte Krücken mit dem MC1488, der mit +-12V 
versorgt wird. Selbst die geben nur knapp 11V aus...   ;-)

: Bearbeitet durch Moderator
von Christoph db1uq K. (christoph_kessler)


Lesenswert?

http://www.ti.com/lit/ds/symlink/sn75188.pdf
nicht mal das, die sind mit min 9V / typ 10,5V spezifiziert, wenn man 
den Treiber mit +/- 13,2V betreibt (an einer Last von 3kOhm).

von Peter D. (peda)


Lesenswert?

Du kannst folgendes messen:
-12V/+12V: RS-232 PC (alt)
-10V/+10V: RS-232 USB
-6V/+6V: RS-232 aus 3,3V
+5V/0V: UART direkt, kein RS-232
+3,3V/0V: UART direkt, kein RS-232

von Wolfgang (Gast)


Lesenswert?

Christoph db1uq K. schrieb:
> Aber durch die fehlende Invertierung
> kann der PC trotzdem keine TTL-RS232-Signale entziffern.

Alleine schon die Bezeichnung TTL-RS232-Signale ist Schwachfug.

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.