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
Daniel U. schrieb: > Nun soll die Empfangsseite aber auch als Master für angeschlossene > Slave-Devices anstatt dem PC fungieren. Was für Devices denn? Sowas? https://www.ftdichip.com/Products/ICs/VNC2.htm
Der VNC2 ist dafür oversized. Mal ehrlich, 3 ICs statt einem? Warum verwendest du nicht gleich einen µC mit USB Stack? Ansonsten: PIC32 gibts in DIL und kann Device/Host.
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...
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?
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.
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.
:
Bearbeitet durch User
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
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.
Daniel U. schrieb: > Wenn nicht, dann muss die Kommunikation > zwischen den µC wohl über UART ablaufen. Das ist jedenfalls um viele Größenordnungen einfacher. Zwei µC, welche kein USB können, mithilfe zusätzlicher USB-IC's über USB kommunizieren zu lassen ist eine ziemliche Frankenstein-Konstruktion.
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.
:
Bearbeitet durch User
Frank K. schrieb: > mit CDC und Mass > Storage. Allerdings nur als Device. Hab ich auch schon, aber mit den Mikroe Compiler. Funzt super. Bei Host bin ich gerade bei, läuft aber noch nicht, daher die Frage
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?
:
Bearbeitet durch User
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? Kommt halt auf die Präferenz an, wer STM32 programmiert würde selbstverständlich zum STM32 raten - wer PIC32 programmiert eben zu diesem. Ich persönlich, würde zum STM32 raten.
Zumindest auf dem STM32F407 ist es einfach, einen Mass Storage Host zu implementieren, also USB-HDD oder USB Sticks anzustecken. Es sollte noch einfacher sein, CDC Host zu spielen, habe ich aber noch nicht gebraucht.
:
Bearbeitet durch User
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
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.
Ich habe den Code von Uwe B. benutzt und ihn für meine Zwecke modifiziert. http://mikrocontroller.bplaced.net/wordpress/ Sollte mit jedem STM32F4 laufen.
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.)
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.