Forum: Mikrocontroller und Digitale Elektronik USB Device (virtual COM) zu RS232


von Adrian F. (adrian_e418)


Lesenswert?

Hi,

ich habe ein USB Gerät, dass einen virtuellen COM Port am Rechner 
erstellt. Nun möchte ich dieses Gerät an einem µC über eine UART 
Schnittstelle ansprechen. Dafür bräuchte ich allerdings einen Wandler, 
der mir echtes UART oder meinetwegen RS232 bereit stellt. Gibt es so ein 
device?

Viele Grüße
Adrian

von Walter T. (nicolas)


Lesenswert?

Adrian F. schrieb:
> Gibt es so ein
> device?

Einfach wird es nicht. USB OTG z.B. ist dafür meines Wissens nach nicht 
vorgesehen - also müsste man dafür einen kompletten Host implementieren. 
(Bitte korrigiert mich, wenn ich etwas übersehen habe.)

Unter Umständen ist es einfacher, einen echten UART auf der Leiterplatte 
abzugreifen - wenn der nicht existiert, siehe oben.

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


Lesenswert?

Adrian F. schrieb:
> Nun möchte ich dieses Gerät an einem µC über eine UART
> Schnittstelle ansprechen.
Müsste das heißen "... von einem µC über ..."

> Dafür bräuchte ich allerdings einen Wandler,
> der mir echtes UART oder meinetwegen RS232 bereit stellt.
Nein, du brauchst einen USB-Host, der einen Treiber für diesen 
virtuellen Comport hat. Jetzt ist die Frage, welcher µC das sein soll. 
Manche können das: https://www.google.com/search?q=cdc+usb+host

> Gibt es so ein device?
Das könnte was sein: https://www.hobbytronics.co.uk/usb-host-serial
Auf jeden Fall müsste deine Suche in diese Richtung gehen.

: Bearbeitet durch Moderator
von Walter T. (nicolas)


Lesenswert?

Was mir noch einfällt: Wenn nur eine temporäte Lösung gebraucht wird, 
ist es unter Umständen am einfachsten, den virtuellen COM über einen PC 
mit COM0COM auch einen echten COM zu tunneln.

von Adrian F. (adrian_e418)


Lesenswert?

Hallo Walter! Ich möchte so ein Gerät nicht bauen, sondern am besten 
fertig kaufen. Einen USB Host zu implementieren ist wohl echt viel 
Arbeit. Gerade wenn man es noch nicht gemacht hat.

von Schlaumaier (Gast)


Lesenswert?

Verstehe das Problem nicht.

USB zu RS232 gibt es doch wie Sand am Meer.

Einzige Problem. Man muss aufpassen das der Richtige Chip drin ist bei 
Windows 10. Da gabs wegen Fälschungen einigen Stress.

Ich habe vor einigen Monaten noch so ein Teil installiert um die 
Elektronik einen alten Motorrad auslesen zu können.

Nein ich verstehe nix davon. Ich musste nur die Hardware und Software 
ans laufen bringen. Den Rest hat der Werkstandinhaber selbst gemacht. ;)

von Schlaumaier (Gast)


Lesenswert?


von Walter T. (nicolas)


Lesenswert?

Schlaumaier schrieb:
> Nein ich verstehe nix davon.

Das übliche Problem.

von Axel S. (a-za-z0-9)


Lesenswert?

Adrian F. schrieb:
>
> ich habe ein USB Gerät, dass einen virtuellen COM Port am Rechner
> erstellt.

Was für ein "Gerät" soll das sein?

> Nun möchte ich dieses Gerät an einem µC über eine UART
> Schnittstelle ansprechen.

Ja und? Machen

> Dafür bräuchte ich allerdings einen Wandler,
> der mir echtes UART oder meinetwegen RS232 bereit stellt.

Was nennst du "echtes" UART? Hast du jetzt "unechtes"?


Typischerweise gibt es diese USB-Adapter, die an einem Ende USB sprechen 
und am anderen UART. Und davon gibt es wieder zwei Sorten. Welche die 
echtes RS-232 sprechen (mit 12V Pegeln). Die erkennt man daran, daß sie 
den genormten DB9-Stecker haben. Oder alternativ welche, die 5V oder 
3.3V Logikpegel auf der UART-Seite haben (oft fälschlich als "TTL" 
bezeichnet).

Für den Anschluß an einen µC brauchst du für erstere einen 
Pegelwandler. Z.B. den Klassiker MAX232. Für letztere brauchst du 
gar nichts.

von Jim M. (turboj)


Lesenswert?

Der Host Teil von USB ist ziemlich kompliziert, ich würde da einen 
Raspberry Pi (Zero) benutzen - und dem Linux Kernel die USB Steuerung 
überlassen.

Der hätte auch einen 3,3V Uart an GPIO verfügbar.

Wenn man nur ein Gerät hat lohnt es sich eventuall mal reinszuschauen - 
oft ist da nämlich ein USB2UART Wandler Chip drin, den man einfach 
auslöten könnte.

von Adrian F. (adrian_e418)


Lesenswert?

Lothar M. schrieb:
>> Gibt es so ein device?
> Das könnte was sein: https://www.hobbytronics.co.uk/usb-host-serial
> Auf jeden Fall müsste deine Suche in diese Richtung gehen.

Das klingt sehr vielversprechend. Und auch noch offen zum Nachbauen. 
Danke für den Hinweis. Da schau ich mal genauer rein.

Axel S. schrieb:
>>
>> ich habe ein USB Gerät, dass einen virtuellen COM Port am Rechner
>> erstellt.
>
>Was für ein "Gerät" soll das sein?

Es ist ein Kartenleser, den es nur mit USB-Anschluss gibt.

von Andreas B. (bitverdreher)


Lesenswert?

Walter T. schrieb:
> Schlaumaier schrieb:
>> Nein ich verstehe nix davon.
>
> Das übliche Problem.

Wenn er nichts dazu schreiben würde, wäre es keines.

von Thomas Z. (usbman)


Lesenswert?

Adrian F. schrieb:
> Es ist ein Kartenleser, den es nur mit USB-Anschluss gibt.

nun bei einem Kartenleser würde ich jetzt aber eher MSD vermuten da 
wirst du mit einem Serial Host (CDC) nicht sehr weit kommen.

Einen einfachen Host zu implementieren ist gar nicht so schwer. Kritisch 
ist es eigentlich nur wenn das halbwegs universell werden muss, weil man 
dann eben die Deskriptoren auch interpretieren muss.

Aus der Hostperspektive reicht es nacheinender folgende Requests 
abzusetzen:
- UsbReset
- UsbSetAddress
- UsbGetDescriptor (Device und Config)
- USBSetConfiguration

Danach ist das Gerät betriebsbereit und kann die entsprechenden CLASS 
spezifische Dinge tun.

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


Lesenswert?

Thomas Z. schrieb:
> Adrian F. schrieb:
>> Es ist ein Kartenleser, den es nur mit USB-Anschluss gibt.
> nun bei einem Kartenleser würde ich jetzt aber eher MSD vermuten
Und wenn das ein Magentkartenleser ist? Oder ein RFID-Kartenleser?

> da wirst du mit einem Serial Host (CDC) nicht sehr weit kommen.
Aber der Kartenleser meldet sich laut erstem Post eben doch als 
virtuelles serielles Gerät an.

Schlaumaier schrieb:
> USB zu RS232 gibt es doch wie Sand am Meer.
Dann schließ mal diese "Sand am Meer"-Adapter doch mal so zusammen, dass 
du RS232 zu RS232 bekommst...

: Bearbeitet durch Moderator
von Johannes S. (Gast)


Lesenswert?

es gibt noch MAX3421E, USB Host über SPI:
https://www.maximintegrated.com/en/products/interface/controllers-expanders/MAX3421E.html

habe ich noch nicht benutzt, den gibt es aber auch auf Adapterplatinchen 
bei vielen Händlern.

von Frank K. (fchk)


Lesenswert?

Adrian F. schrieb:

> ich habe ein USB Gerät, dass einen virtuellen COM Port am Rechner
> erstellt. Nun möchte ich dieses Gerät an einem µC über eine UART
> Schnittstelle ansprechen. Dafür bräuchte ich allerdings einen Wandler,
> der mir echtes UART oder meinetwegen RS232 bereit stellt. Gibt es so ein
> device?

Was für ein Gerät ist das GENAU?

Möglicherweise ist in dem Gerät ein USB-UART Umsetzer verbaut. Dann ist 
es eventuell einfacher, diesen Umsetzer-Chip zu entfernen und direkt per 
MAX3232 u.ä. auf den internen UART zu gehen.

Wird der USB-UART direkt im Mikrocontroller in Firmware realisiert, 
funktioniert das natürlich nicht. Aber das wäre eben zu prüfen.

fchk

von TB (Gast)


Lesenswert?

Was für ein Zufall ich habe aktuell das gleiche Thema. Ich möchte zwar 
kein Kartenleser anschließen aber einen Bluetooth USB Dongle. Und bevor 
schlaue Leutz drauf kommen das es diese auch direkt als UART variante 
gibt sage ich nur soviel dazu: "Das weiß ich selbst"

@ Adrian F.: Die Lösung die wir beide Suchen könnte im VNC2 Modul von 
FTDI liegen. Dieser Implementiert einen USB-Host to UART Umsetzer.

https://ftdichip.com/products/vnc2-48q1c/


Ich habe bis dato diverse Umsetzer versucht aber die sind alle 
untauglich für diese Aufgabe.

FTDI habe ich zu dem Thema bereits angesprochen und die haben mir 
bestätigt das es mit dem Chip eine Lösung ist.

Aktuell kämpfe ich noch mit dem Updaten der FW auf dem Demo Board mit 
fertigen VNC2 FW mit diveresen Grundaufgaben. Findest du Hier

https://ftdichip.com/firmware/vnc2-tools/

Zum Programmieren benötigst du VNC2 Debug Modul siehe

https://www.mouser.de/ProductDetail/FTDI/VNC2-DEBUG-MODULE?qs=jyocFDpMvsj9w%252BToZISyJg==&mgh=1&vip=1&gclid=EAIaIQobChMI9KieyLLF9AIVjeJ3Ch2j2Q9XEAQYASABEgL0ufD_BwE

und als Testumgebung z.b. diese

https://ftdichip.com/products/v2dip1-48/

Demo Board.

Wäre interessant für mich wenn ich einen Mitstreiter wüsste eine Lösung 
für das Problem mit dem VNC2 oder auch anderem CHIP aufzubauen.

Wenn ich einen Schritt weiter komme gebe ich gerne weitere Infos bin 
aber auch nicht abgeneigt wenn jemand Erfahrungen mit dem VNC2 hat da 
mit der FTDI Programmier Software wie gesagt aktuell Probleme habe und 
auch nicht sicher bin ob eine der Sample FW schon die richtige Basis für 
den HOST - UART Konverter bietet => da auch hier ein Virtueller COM auf 
der USB Peripherie (Dongle)emuliert wird.

von Frank K. (fchk)


Lesenswert?

TB schrieb:
> Was für ein Zufall ich habe aktuell das gleiche Thema. Ich möchte zwar
> kein Kartenleser anschließen aber einen Bluetooth USB Dongle. Und bevor
> schlaue Leutz drauf kommen das es diese auch direkt als UART variante
> gibt sage ich nur soviel dazu: "Das weiß ich selbst"

Ist das ein spezieller BT USB-Dongle? Die üblichen Teile, die Du für PCs 
bekommst, implementieren nur HCI. Die ganzen High-Level Protokolle und 
Profile sind nicht im Dongle, sondern im Softwarestack auf dem PC 
implementiert. HCI gibts nicht nur über USB, sondern auch über UART, und 
passende Module kann man kaufen.

Wenn Dein USB-Dongle ein spezielles Profil (HID oder so) implementiert, 
dann müsste man anderweitig weiter sehen. Wichtig wäre eben an dieser 
Stelle zu wissen, was das USB-Interface genau implementiert. Und wenn es 
HCI ist, Du aber am anderen Ende keinen BT-Stack hast, dann brauchst Du 
gar nicht erst weiterzumachen.

fchk

von Holger D. (hodoe)


Lesenswert?

Hallo, ich stand auch vor dem Problem, ein USB-Gerät, welches ein 
virtuellen COM-Port erstellt mittels µC anzusprechen. Ich habe das mit 
diesem Modul https://www.hobbytronics.co.uk/usb-host-board-v24 
verwendet.


Gruß
Holger

: 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
Noch kein Account? Hier anmelden.