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
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.
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.
> 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
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.
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
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?
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.
> 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!
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
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.
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.
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.
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
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
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.
Ein Schnittstellentester ist auch sehr hilfreich. https://www.amazon.de/System-S-Tester-Diagnosewerkzeug-Leuchten-Anzeige/dp/B00ZRKZFGC/ref=sr_1_2?keywords=rs232+tester&qid=1566499159&s=gateway&sr=8-2 (ich hatte die günstiger in Erinnerung)
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.
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?
Ü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.
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
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).
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.