Forum: Mikrocontroller und Digitale Elektronik Taster per RS-232 simulieren


You were forwarded to this site from EmbDev.net. Back to EmbDev.net
von Bauform B. (bauformb)


Angehängte Dateien:

Lesenswert?

Mahlzeit,

Ein ELO-Monitor für Schalttafel-Montage hat für das OSD winzig kleine 
Taster oder wahlweise eine Fernbedienung mit Kabel und RJ45-Stecker. 
Beides ist unpraktisch. Jetzt hätte ich noch einen echten freien 
COM-Port, da könnte man doch einen von 4 "Tastern" per RTS und DTR 
auswählen und per TXD den Tastendruck simulieren. Bei 150 Baud dauert 
ein Zeichen 60ms, das passt doch ziemlich genau.

Die Elektronik dazu würde in ein D-SUB-9 Gehäuse passen, wenn die 
RJ45-Buchse nicht so fett wäre. Kennt jemand zufällig extra große D-SUB 
Gehäuse? Oder etwas ähnliches?

Und was würdet ihr mit der gelb-gestrichelten GND-Verbindung machen? Mit 
dieser Verbindung baut man eine Masseschleife zwischen PC und Monitor. 
Man weiß ja nicht, wie Fernbedienungs-GND mit Gehäuse, Erde und/oder 
HDMI-GND verbunden ist. Ja, 3 Optokoppler und gut ist. Das wäre 
elektrisch ideal, RS-232 reicht leicht für Optokoppler-LEDs, aber dann 
passt es wirklich in kein Steckergehäuse.

von Rüdiger B. (rbruns)


Lesenswert?

Es gibt DSub zu RJ45 Adapter, da ist noch platz drinnen für z.B. 1wire 
adapter.

von Michael B. (laberkopp)


Lesenswert?

Bauform B. schrieb:
> Oder etwas ähnliches?

Ein uC, der das echte serielle Signal empfängt und je nach darin 
enthaltenem Zeichen eine der Leitungen aktiviert ?

von Steve van de Grens (roehrmond)


Lesenswert?

Kann man so machen, wenn die 60ms lang genug sind.

Allerdings sterben RS232 Ports langsam aus. Überlege dir schon mal 
einen, wie du das auf USB Upgraden kannst. Vielleicht macht es sinn, auf 
deiner Platine gleich beides vorzusehen.

Dein IC erwartet 5V Logikpegel an seinen Eingängen, der RS232 port hat 
aber bis zu +/- 15V. Du wirst wohl noch einen Pegelwandler brauchen. Ja, 
ich sehe deine 39kΩ Widerstände. Habe ich so noch nie an CD40xx 
ausprobiert. Bist du sicher, dass das funktioniert?

> Und was würdet ihr mit der gelb-gestrichelten GND-Verbindung machen?

Auf jeden Fall verbinden, auch den Schirm des Steckverbinders. Sonst 
riskierst du Fehlfunktionen wenn die GND Potentiale nicht gleich sind.

Ich glaube am PC ist Ethernet die einzige Schnittstelle, die keinen 
gemeinsamen GND zwischen den Geräten benötigt. An meinem Basteltisch 
achte ich darauf, dass alle Geräte, die mit dem PC verbunden sind, in 
der selben Steckdosenleiste stecken. Dann bin ich (was Masseschleifen 
angeht) safe.

: Bearbeitet durch User
von Steve van de Grens (roehrmond)


Lesenswert?

Eventuell versucht dein PC, am seriellen Port angeschlossene Geräte als 
Maus (Windows) oder Modem (Linux) zu erkennen. Das musst du eventuell 
konfigurativ unterbinden.

von M. K. (sylaina)


Lesenswert?

Steve van de Grens schrieb:
> Allerdings sterben RS232 Ports langsam aus.

In welchem Universum bitte? Dass RS232 langsam ausstirbt höre ich schon 
seit über 20 Jahren. Ich bin selbst in der Hardwareentwicklung tätig und 
dafür, dass RS232 langsam aussterben soll werden aber noch jede Menge 
Geräte mit RS232-Schnittstelle und ähnlichem gebaut/entwickelt. Ich muss 
noch so rund 20 Jahre Arbeiten gehen und ganz ehrlich: Ich denke nicht, 
dass ich das Ende von RS232 erleben werde. Nur weil man am Computer 
heute keine RS232 mehr hat bedeutet das nicht, dass die Schnittstelle 
ausstirbt ;)

von Steve van de Grens (roehrmond)


Lesenswert?

Ich meine, sie sterben als Standard-Ausstattung an PC aus. Bei Laptops 
sind sie schon weg, auch bei den allermeisten Dockingstationen.

von M. K. (sylaina)


Lesenswert?

Steve van de Grens schrieb:
> Ich meine, sie sterben als Standard-Ausstattung an PC aus. Bei Laptops
> sind sie schon weg, auch bei den allermeisten Dockingstationen.

Das ist auch schon seit gut 20 Jahren der Fall. Für solche Fälle gibts 
die tollen USB-Seriell-Wandler mit CH340 oder PL2303 usw.

OK, wenn ich heute was mit ner RS232 ausstatte kommt da nicht selten ein 
ein MCP2221 oder ähnliches dran, ne SUB-D Buchse wäre mir inzwischen 
halt auch zu groß ;)

von Steve van de Grens (roehrmond)


Lesenswert?

M. K. schrieb:
> wenn ich heute was mit ner RS232 ausstatte kommt da nicht selten ein
> ein MCP2221 oder ähnliches dran

Siehst du, genau das habe ich empfohlen.

von Paul (Gast)


Lesenswert?

Steve van de Grens schrieb:
> Eventuell versucht dein PC, am seriellen Port angeschlossene Geräte als
> Maus (Windows) oder Modem (Linux) zu erkennen.

In welchem Jahrhundert lebst Du denn?

von Steve van de Grens (roehrmond)


Lesenswert?

Paul schrieb:
> In welchem Jahrhundert lebst Du denn?

Windows 10 und alle mir bekannten aktuellen Linux Distributionen aus dem 
Jahr 2022 tun es standardmäßig.

https://paulhutch.blog/2019/06/24/disable-serial-mouse-detection/
https://wiki.archlinux.org/title/Mobile_broadband_modem#ModemManager

: Bearbeitet durch User
von Bauform B. (bauformb)


Lesenswert?

Michael B. schrieb:
> Bauform B. schrieb:
>> Oder etwas ähnliches?
>
> Ein uC, der das echte serielle Signal empfängt und je nach darin
> enthaltenem Zeichen eine der Leitungen aktiviert ?

Äh, mit "etwas ähnliches" meinte ich die Mechanik :) Aber mit uC könnte 
es tatsächlich kleiner werden und man braucht nur einen Optokoppler. 
Aber SO-8 reicht nicht und STM32 im TSSOP-14 haben nur 2k RAM ;) Muss 
ich jetzt noch ATtiny lernen?

Steve van de Grens schrieb:
> Kann man so machen, wenn die 60ms lang genug sind.

Wenn ich sowieso RTS und DTR manipulieren muss, kann ich auch ein 
beliebig langes Break senden.

> Ja, ich sehe deine 39kΩ Widerstände. Habe ich so noch nie an
> CD40xx ausprobiert. Bist du sicher, dass das funktioniert?

Mit 74HC in einer normalen Schaltung: ja; die vertragen offiziell 20mA 
über die Eingangsschutzdioden. Hier wird es unübersichtlich, wenn diese 
GND-Verbindung fehlt.

> Auf jeden Fall verbinden, auch den Schirm des Steckverbinders. Sonst
> riskierst du Fehlfunktionen wenn die GND Potentiale nicht gleich sind.

Gerade wenn die Potentiale nicht gleich sind, ahne ich Probleme. Welche 
Ströme fließen dann wohin?

> An meinem Basteltisch achte ich darauf, dass alle Geräte, die mit
> dem PC verbunden sind, in der selben Steckdosenleiste stecken.
> Dann bin ich (was Masseschleifen angeht) safe.

So gesehen wäre es hier sogar noch sicherer, PC und Monitor sind direkt 
niederohmig verbunden.

von Steve van de Grens (roehrmond)


Lesenswert?

Bauform B. schrieb:
> Welche Ströme fließen dann wohin?

Öhhhh ... viel Glück :-)

In der Praxis hatte ich damit nur einmal Probleme erlebt. Das war in 
einem alten Bürogebäude, wo die Erdung defekt war. In dem Fall stand ein 
Drucker in dem guten Teil des Gebäudes, und der PC in dem schlechten. 
Ich hatte mehrere Volt Differenz. Das haben Elektriker repariert.

: Bearbeitet durch User
von Peter D. (peda)


Lesenswert?

Bauform B. schrieb:
> Aber SO-8 reicht nicht und STM32 im TSSOP-14 haben nur 2k RAM ;) Muss
> ich jetzt noch ATtiny lernen?

Warum soll SO-8 nicht reichen?
1* RXD und 4* Out, bleibt sogar noch einer übrig.
Z.B. der ATtiny13 mit 1kB Flash und 64Byte RAM reicht dicke.
Oder der ATtiny2313 mit UART und 18 IO-Pins im 20M2 Gehäuse (3*3mm²).

AVR Datenblatt lesen ist auch kein großes Ding. Die UART und die IO-Pins 
sind einfach zu konfigurieren. Bzw. beim ATtiny13 mit Schieben und 
_delay_us() ne SW-UART ist auch schnell gebastelt. Muß ja nicht gleich 
ein komplettes Modbus-RTU Protokoll sein.

von Steve van de Grens (roehrmond)


Lesenswert?

Peter D. schrieb:
> Z.B. der ATtiny13 ... oder der ATtiny2313

Denke daran, dass deren R/C Oszillatoren in Kombination mit serieller 
Übertragung nicht der Hit sind.

von Wolfgang (Gast)


Lesenswert?

Steve van de Grens schrieb:
> Dein IC erwartet 5V Logikpegel an seinen Eingängen, der RS232 port hat
> aber bis zu +/- 15V. Du wirst wohl noch einen Pegelwandler brauchen. Ja,
> ich sehe deine 39kΩ Widerstände. Habe ich so noch nie an CD40xx
> ausprobiert. Bist du sicher, dass das funktioniert?

Im Datenblatt ist ein input clamping current von max. ±20mA angegeben.
Am 39k Widerstand fallen bei 15V RS232-Pegel etwa 10V ab, ergibt also 
einen Strom von 250µA.
Wo witterst du da Probleme?

von Steve van de Grens (roehrmond)


Lesenswert?

Wolfgang schrieb:
> Wo witterst du da Probleme?

Ich bin einfach nur unsicher weil das mit dieser IC Reihe noch nicht 
probiert habe. Ich würde es jedenfalls austesten, bevor ich Platinen 
herstellen lasse.

von Bauform B. (bauformb)


Lesenswert?

Wolfgang schrieb:
> Am 39k Widerstand fallen bei 15V RS232-Pegel etwa 10V ab, ergibt also
> einen Strom von 250µA.
> Wo witterst du da Probleme?

Inzwischen witter ich da auch Probleme. Nicht in einer normalen 
Schaltung, aber ich trau mich nicht, die gelbe GND-Verbindung 
einzubauen. Wenn dann die RJ45-Seite in der Luft hängt, wird der 74HC 
über seine Eingänge versorgt. Das geht gut, aber nur bis ±3V.

Also Optokoppler. Nur schade, dass das dann wirklich zu klein ist, ich 
fand die Idee gut:

Rüdiger B. schrieb:
> Es gibt DSub zu RJ45 Adapter

Steve van de Grens schrieb:
> Ich würde es jedenfalls austesten, bevor ich Platinen herstellen lasse.

Ich hätte es riskiert, soviel glaube ich den Datenblättern von NXP 
schon. Aber jetzt ist das auch nicht mehr nötig. Hier spottet man ja 
gerne über überflüssige Optokoppler, aber an dieser Stelle lohnt es sich 
offensichtlich wirklich ;)

von Wolfgang (Gast)


Lesenswert?

Steve van de Grens schrieb:
> Ich würde es jedenfalls austesten, bevor ich Platinen
> herstellen lasse.

Man muss nicht alles selber ausprobieren. Wozu gibt es Datenblätter.

Wenn man die Eingangsschutzdioden für solche Dinge nutzt, muss man sich 
allerdings immer überlegen, wohin der Strom dann fließt, d.h. die 
Stromaufnahme der Schaltung muss i.a. größer sein, als dass, was über 
die Schutzdioden kommt. Sonst kann der Spannungsregler, über den die 
Schaltung versorgt wird, nicht mehr regeln.

von Jobst Q. (joquis)


Lesenswert?

M. K. schrieb:
> Steve van de Grens schrieb:
>> Allerdings sterben RS232 Ports langsam aus.
>
> In welchem Universum bitte? Dass RS232 langsam ausstirbt höre ich schon
> seit über 20 Jahren. Ich bin selbst in der Hardwareentwicklung tätig und
> dafür, dass RS232 langsam aussterben soll werden aber noch jede Menge
> Geräte mit RS232-Schnittstelle und ähnlichem gebaut/entwickelt. Ich muss
> noch so rund 20 Jahre Arbeiten gehen und ganz ehrlich: Ich denke nicht,
> dass ich das Ende von RS232 erleben werde. Nur weil man am Computer
> heute keine RS232 mehr hat bedeutet das nicht, dass die Schnittstelle
> ausstirbt ;)

Die serielle Schnittstelle (UART) wird nicht so schnell aussterben. Aber 
RS232 taugt nicht viel. Für kurze Entfernungen geht es direkt mit 0-5V 
Pegeln, für größere Entfernungen nimmt man gleich RS485.

von Peter Bumsen (Gast)


Lesenswert?

M. K. schrieb:
> Ich bin selbst in der Hardwareentwicklung tätig und dafür, dass RS232
> langsam aussterben soll werden aber noch jede Menge Geräte mit
> RS232-Schnittstelle und ähnlichem gebaut/entwickelt

Du bist also Täter.

Denk Mal darüber nach.

An einem modernen Desktop Rechner wirst du heutzutage kaum noch einen 
seriellen Port direkt auf der Rückseite finden - mit Glück über eine 
Blende nachrüstbar, mit Pech wird ein PCIe oder USB Adapter fällig.

Ich würde ja etwas ala FT232 nehmen, der kann auch direkt GPIO setzen. 
Die kannst du dann einfach über Optokoppler an dein Bedienteil 
weiterreichen.

Ansonsten direkt etwas mit Ethernet und dann einfach eine Rest API 
einführen, für den ESP32/Pi sollte es da sehr einfache Beispiele geben 
die nur wenig Anpassung bedürfen.

von Bauform B. (bauformb)


Lesenswert?

Peter Bumsen schrieb:
> An einem modernen Desktop Rechner wirst du heutzutage kaum noch einen
> seriellen Port direkt auf der Rückseite finden - mit Glück über eine
> Blende nachrüstbar

Eigentlich ist es umgekehrt, auch meine neuesten Rechner haben eher 2 
als 1 Port auf der Rückseite und noch bis zu 3 intern. Also fragt man 
sich, was könnte man damit anstellen. Daher stammt diese Idee für diese 
Tasten-Simulation. Manche Ports sind übrigens auf RS-232/-422/-485 
umschaltbar.

> Ansonsten direkt etwas mit Ethernet und dann einfach eine Rest API
> einführen, für den ESP32/Pi sollte es da sehr einfache Beispiele geben

Kann man nicht im Kabelkanal verstecken. Braucht ein Netzteil. Und vor 
allem: Zu hohe Latenzen ;)

von M. K. (sylaina)


Lesenswert?

Peter Bumsen schrieb:
> An einem modernen Desktop Rechner wirst du heutzutage kaum noch einen
> seriellen Port direkt auf der Rückseite finden - mit Glück über eine
> Blende nachrüstbar, mit Pech wird ein PCIe oder USB Adapter fällig.

Ich schrieb oben schon was vom MCP2221, das ist ein Äquvivalent zum FTDI 
und beides sind durchaus RS232-Schnittstellen im Grunde.

Jobst Q. schrieb:
> Für kurze Entfernungen geht es direkt mit 0-5V
> Pegeln, für größere Entfernungen nimmt man gleich RS485.

Definiere "kurze Entfernungen", definiere "größere Entfernungen". Als ob 
es für RS232 heute keinen Markt mehr gäbe...es ist ja OK, dass hier der 
ein und andere RS232 keine Chance mehr geben will, daraus aber zu 
schließen, dass die Schnittstelle ausstirbt ist auch ne stronke Sache. 
Nach der Logik könnte ich auch sagen, dass Windows am Aussterben 
ist...;)

von Bauform B. (bauformb)


Lesenswert?

M. K. schrieb:
> Jobst Q. schrieb:
>> Für kurze Entfernungen geht es direkt mit 0-5V
>> Pegeln, für größere Entfernungen nimmt man gleich RS485.
>
> Definiere "kurze Entfernungen", definiere "größere Entfernungen".

Kurze Entfernung hört am nächsten Stecker auf. Wer schaltet schon vorher 
aus? Und 5V, wer hat heute noch 5V? Also mit eigenem Spannungsregler für 
die Schnittstelle? und Pegelwandler/Treiber-IC? Da bietet sich z.B. der 
MAX3232 an, der hat alles auf einem Chip ;)

von M. K. (sylaina)


Lesenswert?

Bauform B. schrieb:
> Kurze Entfernung hört am nächsten Stecker auf.

Hm, also am Beispiel von meinem Netzwerkkabel hier sprechen wir dann von 
100m. Oder meinst du speziell bei RS232? Hab hier ne Anlage mit Chiller, 
welcher via RS232 mit der Anlage quatscht. Da sind rund 15m dazwischen.
Und 5V wird heute auch noch viel benutzt, können wir ja Beispiele von 
oben mal aufgreifen und fragen mal, warum USB mindestens 5V hat? ;)

von Bauform B. (bauformb)


Lesenswert?

M. K. schrieb:
> Bauform B. schrieb:
>> Kurze Entfernung hört am nächsten Stecker auf.
>
> Hm, also am Beispiel von meinem Netzwerkkabel hier sprechen wir
> dann von 100m. Oder meinst du speziell bei RS232?

Nee, das wäre ja der übernächste Stecker und ich meinte 5V. Vielleicht 
so: "5V hört am Platinenrand auf". Vor allem darf man solche 
5V-Verbindungen nicht unter Spannung stecken.

> Oder meinst du speziell bei RS232? Hab hier ne Anlage mit Chiller,
> welcher via RS232 mit der Anlage quatscht. Da sind rund 15m dazwischen.

15m ist ja noch ganz offiziell erlaubt. Über Telefonkabel funktionieren 
auch 100 Meter, vielleicht etwas langsamer. Die Grenze ist ja eher der 
Potentialausgleich zwischen beiden Enden.

> Und 5V wird heute auch noch viel benutzt, können wir ja Beispiele von
> oben mal aufgreifen und fragen mal, warum USB mindestens 5V hat? ;)

USB stammt ja auch aus dem letzten Jahrtausend. CAN ist auch so ein 
Kandidat. Traut sich inzwischen jemand, 3.3V-Treiber zu benutzen?

von M. K. (sylaina)


Lesenswert?

Bauform B. schrieb:
> USB stammt ja auch aus dem letzten Jahrtausend.

Und das ist warum schlecht? Man bedenke nur mal, Messer und Gabel sind 
schon Jahrtausende alt, da wirds auch mal Zeit für was Neues…

von Jobst Q. (joquis)


Lesenswert?

Bauform B. schrieb:
> 15m ist ja noch ganz offiziell erlaubt. Über Telefonkabel funktionieren
> auch 100 Meter, vielleicht etwas langsamer.

Auf jeden Fall sind 15 oder 100 Meter besser mit RS485 bedient.
Die Mikrocontroller oder auch Raspis haben UART-Schnittstellen mit 5V 
oder 3,3V. Ein Baustein, um das auf RS232 umzusetzen, ist nicht 
günstiger als einer für RS485. Dazu braucht RS485 weniger Adern und ist 
busfähig. Ich sehe keinerlei Grund bei RS232 zu bleiben.

von Bauform B. (bauformb)


Lesenswert?

M. K. schrieb:
> Bauform B. schrieb:
>> USB stammt ja auch aus dem letzten Jahrtausend.
>
> Und das ist warum schlecht? Man bedenke nur mal, Messer und Gabel sind
> schon Jahrtausende alt, da wirds auch mal Zeit für was Neues…

Keiner hat gesagt, dass USB schlecht ist. Im Gegenteil, die 5V sind 
damit entschuldigt. Wenn es nicht ständig neue Stecker gäbe, hätte ich 
garnichts zu meckern.


Jobst Q. schrieb:
> Ein Baustein, um das auf RS232 umzusetzen, ist nicht
> günstiger als einer für RS485.

OK, der braucht 4 Kondensatoren zusätzlich und hat 16 statt 8 Pins.

> Dazu braucht RS485 weniger Adern und ist busfähig.
> Ich sehe keinerlei Grund bei RS232 zu bleiben.

Das dann doch nicht. Entweder genauso viele Adern plus ein uC-Pin mehr 
(DE) plus aufwendigere Software oder zwei Adern mehr (vollduplex) und 
Null Software-Aufwand. Aber die Treiber-Chips selbst sind natürlich ok.

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.