USB OTG zu UART Bridge

OP #5769510
Lesenswert?

Hallo,

Ich möchte zwischen meinem Atmega328 und dem PC per USB kommunizieren. 
Dazu bietet sich ja eine USB-UART-Bridge (z.B. CP2102N) an.
Nun soll die Empfangsseite aber auch als Master für angeschlossene 
Slave-Devices anstatt dem PC fungieren. Im Prinzip wird also USB-OTG 
Verhalten von der Bridge gefordert. Gibt es da passende ICs? Ich habe 
ICs wie den STOTG04E gefunden, aber das ist ja keine Bridge in dem 
Sinne.

Gruß
Daniel
OP #5769559
Lesenswert?

Niklas G. schrieb:
> Was für Devices denn?

Momentan ein weiterer Atmel-µC mit einer normalen USB-UART-Bridge 
vorgeschaltet. Ein simples Slave-Device eben. Ich gehe hier über USB, um 
es standardisiert zu halten (auch weil eine USB-Buchse die physische 
Verbindung darstellt).

Niklas G. schrieb:
> Sowas? https://www.ftdichip.com/Products/ICs/VNC2.htm

Schau ich mir mal an...
OP #5769567
Lesenswert?

Fred R. schrieb:
> Warum verwendest du nicht gleich einen µC mit USB Stack?

Das Design mit dem Atmega328 steht bereits. Ich würde ungerne die MCU 
austauschen, auch wenn es Platz für einen weiteren Chip kostet.

Fred R. schrieb:
> Ansonsten: PIC32 gibts in DIL und kann Device/Host.

Meinst du den als Haupt-MCU oder als Converter USB-UART?
Persönliche Seite #5769569
Lesenswert?

Daniel U. schrieb:
> Ein simples Slave-Device eben.

Den Begriff "Slave-Device" gibt es nicht. Es gibt USB-Host und 
USB-Device.

Daniel U. schrieb:
> normalen USB-UART-Bridge

Was für eine? Du brauchst einen Treiber für deinen USB-UART-Chip.

Fred R. schrieb:
> Der VNC2 ist dafür oversized.

Man braucht oversized IC's wenn man einen undersized µC benutzt :)

Fred R. schrieb:
> Ansonsten: PIC32 gibts in DIL und kann Device/Host.

Das können viele andere auch... Aber es soll ja ein ATmega32 sein.
OP #5769587
Lesenswert?

Niklas G. schrieb:
> Was für eine? Du brauchst einen Treiber für deinen USB-UART-Chip.

Das kommt auf den Host an, den ich versuche zu finden. Das muss 
natürlich kompatibel sein.

Ich weiß wirklich nicht, ob die hier gesuchte Verbindung überhaupt 
möglich ist (daher frage ich). Wenn nicht, dann muss die Kommunikation 
zwischen den µC wohl über UART ablaufen.
#5769623
Lesenswert?

Daniel U. schrieb:
> Fred R. schrieb:
>> Warum verwendest du nicht gleich einen µC mit USB Stack?
>
> Das Design mit dem Atmega328 steht bereits. Ich würde ungerne die MCU
> austauschen, auch wenn es Platz für einen weiteren Chip kostet.

Das wirst Du aber müssen. PIC24 und PIC32 können es direkt, gibts in 
DIL28, sind viel leistungsfähiger, kosten nicht viel mehr, und die 
Hardwareänderungen wären recht gering, sofern Du nicht exzessiv 
5V-Devices verwendet hast. Das meiste ist ja heutzutage 3.3V.

fchk
Gast #5769625
Lesenswert?

Daniel U. schrieb:
> Ich habe ICs wie den STOTG04E gefunden,
Ein Transceiver, regelt die Signalumsetzung. Der OTG Controller ist 
extern (steht auch in der Beschreibung).


> Ich weiß wirklich nicht, ob die hier gesuchte Verbindung überhaupt
> möglich ist (daher frage ich).
Möglich schon, in Software.  Wenn der Controller die USB Betriebsart 
erkennt und entsprechend handelt. Ist aber eher komplex. Als Chip hab 
ich auch nur den Vinculum gefunden. Hab auch das Testboard, ist (bzw. 
war) aber nicht sehr ausgereift.
#5769679
Lesenswert?

HyperMario schrieb:
> Frank K. schrieb:
>> PIC24 und PIC32 können es direkt,
>
> Hast du das schon mal gemacht?

Den Microchip-USB-Stack habe ich schon verwendet, mit CDC und Mass 
Storage. Allerdings nur als Device. Support für Host ist aber auch 
dabei.

Greif Dir mal einen PIC32MX270F256B-I/SP und probiere es selber aus. Für 
OTG brauchst Du Micro-AB Buchsen am Gerät für den ID-Pin und MicroA auf 
MicroB Kabel für die Verbindung zwischen zwei Geräten.

https://www.microchip.com/wwwproducts/en/PIC32mx270f256b

fchk

PS: Die USB-Peripherie ist hier in Hardware vorhanden, daher auch Full 
SPeed als Host, Device und OTG.
#5770084
Lesenswert?

Daniel U. schrieb:
> Ihr schlagt hier den PIC32 vor, wie sieht es mit dem STM32 aus? Der kann
> ja auch USB. Bei welchem der beiden wäre es besser zu implementieren?

Du brauchst nicht nur USB, sondern Du brauchst USB OTG. Das können nicht 
alle STM32. Die meisten können nur Device sein, nicht aber Host.

Von der Software her kommt es auf die Qualität der USB Stacks an, und da 
weiß ich nicht, was ST inzwischen da liefert.

Von der Hardware her ist PIC32 einfacher, weil Du da mit einem 
Lochrasteraufbau starten kannst, sofern Dir 28 Pins reichen. Größere 
Packages sind dann TQFP im 0.5mm Raster - das ist bei allen gleich 
unangenehm zu verarbeiten.

Es gäbe auch noch TI z.B. Die haben auch einen guten Softwaresupport. 
Aber auch das ist TQFP. In einfachen Packages wie DIL oder SO28 gibts 
bei USB OTG nicht viele Alternativen zu Microchip.

fchk
Gast #5770100
Lesenswert?

Frank K. schrieb:
> Von der Software her kommt es auf die Qualität der USB Stacks an, und da
> weiß ich nicht, was ST inzwischen da liefert.

Was ich da bisher gesehen habe funktioniert. Die Doku dazu ist 
allerdings sehr knapp und er Code gewöhnungsbedürftig (erinnert an 
Spaghetti). Dafür ist aber jede zweite Zeile kommentiert - was ich 
wiederum lobenswert finde.
Gast #7238828
Lesenswert?

Moin,

alter Post, aber drüber gestolpert, weil ich gerade exakt die gleiche
Problemstellung habe. Habe eine fertige Baugruppe mit Atmega32U4, die 
bisher nur über USB an ein Android-Tablet angeschlossen war und über 
COM-Port Daten an die App gesendet hat.
Nun ersetzen wir das Android-Tablet mit einem (SPI u. UART-)Display ohne 
USB-Host, ich habe allerdings keine weitere Schnittstelle auf der 
Baugruppe frei und davon noch 3000+ auf Lager. µC austauschen daher 
keine Option.

Habe nun den VNC2 dafür als Lösung genommen, der arbeitet nun wie vom OP 
gewünscht als Konverter von USB (CDC) auf UART für das Display.

(CH559 ist noch unterwegs, evtl teste ich den noch.)

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