Hallo Community, ich bin neu in der MicroController Szene und habe mich in den letzten Wochen mit dem STM32F4 beschäftigt. Momentan möchte ich, um ein Projekt zu realisieren, USB-Host zum laufen bringen um eine Serielle Verbindung herzustellen. Ich möchte also ein Gerät dass Serielle Daten über USB verschickt an den STM32F4 Discovery anstecken und mit diesem Gerät kommunizieren. Vom MicroController zum PC habe ich es, dank zahlreicher Projekte im Inet, mit UB_USB-CDC einer Libary hinbekommen. Am PC musste nur der ST-Link Treiber installiert werden. Wie sieht das aber auf der MicroController Seite aus ? Ich weiß leider nichtmal wo ich anfangen soll. USB Host ( ein USB STICK lesen ) würde ich ja noch hinbekommen. Aber wie lese bzw konfiguriere ich die Serielle Verbindung über USB ? Ich hoffe der eine oder andere kann mir ein hilfreichen Tip geben. Grüße und einen schönen Feierabend :)
Mar Mor schrieb: > Ich möchte also ein Gerät dass Serielle Daten über USB verschickt an den > STM32F4 Discovery anstecken und mit diesem Gerät kommunizieren. Ist das Gerät ein CDC oder verwendet es eine USB-Seriell-Bridge von Herstellern wie FTDI, Prolific, SiLabs etc.? Du musst wie bei Deinem USB-Host-Beispiel die Treiber für das jeweilige Gerät nachbilden, also entweder die für CDC oder die proprietären für die verschiedenen USB-Seriell-Bridges; als Anhaltspunkt eignen sich hier die Linux-Treibersourcen. Warum nutzt Du nicht eine der UARTs Deines µC?
Hallo Rufus Τ. Firefly , Danke für deine Antwort. Das Modul sollte eigentlich heute ankommen. Leider ist es dass noch nicht. Spätestens Montag sollte ich dann mehr dazu wissen. Aber ich gehe sehr stark davon aus, dass es ein CDC ist und kein anderes. Wie schwer wäre es den, so einen virtuellen Com Port auf dem Discovery im Usb Host zu realisieren ? Ich vermute das würde schon ausreichen. Vor USB habe ich mittlerweile großen respekt. Usb ist eine richtige Zicke :) Mit Uart wäre es kein problem. Ich wurde nur auf die Idee gebracht und möchte einfach lernen bzw vorerst nicht aufgeben :)
Hi, das Discovery Board hat einen USB Anschluss drauf. Es ist also keine Uart zu USB Brücke im Spiel. Ich verstehe die Frage noch nicht so richtig, habe mich mit dem Thema serielle Schnittstelle über den USB Port aber auch noch nicht auseinander gesetzt. Ist es nicht ausreichend über CDC einen virtuellen Comport zu betreiben? Darüber kann dann doch sowohl vom uC zum PC als auch umgekehrt kommuniziert werden? Guck dir vielleicht mal das Beispiel hier an: http://mikrocontroller.bplaced.net/wordpress/?page_id=1263 LG Jan
Hi Jan, der µC hat 2 USB Ports ( Nicht falsch verstehen, soll kein klugscheissern sein ) :) Der micro Usb kann zum arbeiten benutzt werden, das stimmt. Das von dir genannte beispiel habe ich schon ausprobiert und kann es jedem nur nahe legen der sich damit beschäftigen möchte ( Super Source !!! ). Über den Port habe ich auch das beispiel zum laufen bekommen. Aber das von dir verlinkte Projekt arbeitet andersherum. PC : HOST µC : DEVICE Meine Frage, bzw mein Problem wäre umgekehrt: PC : DEVICE µC : HOST bzw : µC_1 : HOST Modul : DEVICE und die kommunikation über usb_cdc_seriell . So das ich theoretisch das USB Device ( Modul ) an den PC Host klemmen könnte und dort mit HyperTerminal kommunizieren würde, über ein Virtual_Port. Nur soll hier der µC als HOST den Job des PC's übernehmen. Jetzt ist nur die Frage... Wie horche ich im Host mode so einen com port bzw virtuellen com port ab ? Oder müsste ich wie Rufus Τ. Firefly geschrieben hat, ein quasi Treiber schreiben ?
Mar Mor schrieb: > Meine Frage, bzw mein Problem wäre umgekehrt: > > PC : DEVICE > µC : HOST Das geht nicht. Ein PC kann kein USB-Device sein -- außer mit spezieller Hardware. > Oder müsste ich wie Rufus Τ. Firefly > geschrieben hat, ein quasi Treiber schreiben ? Dabei bleibe ich. Nichts anderes macht das von Dir erwähnte Beispiel zum Ansprechen eines USB-Sticks; das ist nur kein CDC, sondern ein MSD. Das Grundprinzip aber bleibt das gleiche.
Hi, auch ohne klugscheißen zu wollen: Der uC hat nur einen USB Port ;) Der zweite wird durch einen zweiten uC realisiert und ist nur fürs Debugging. Mit deiner Erklärung bin ich nun schlauer. Was du vor hast, ist glaube ich kein Anwendungsfall, der irgendwo schon fertig in der Schublade liegt. Hier müsstest du selbst ran. Falls es eine Host taugliche USB zu seriell Brücke gibt, wäre das der deutlich einfachere Weg. Liebe Grüße, Jan
@ Rufus Τ. Firefly Rufus Τ. Firefly schrieb: > Mar Mor schrieb: >> Meine Frage, bzw mein Problem wäre umgekehrt: >> >> PC : DEVICE >> µC : HOST > > Das geht nicht. Ein PC kann kein USB-Device sein -- außer mit > spezieller Hardware. War mir bewusst, das sollte nur der verständlichkeit, so primitiv verdeutlicht werden. Jan Berg schrieb: > auch ohne klugscheißen zu wollen: Der uC hat nur einen USB Port ;) Der > zweite wird durch einen zweiten uC realisiert und ist nur fürs > Debugging. Der Punkt geht an dich :) hast natürlich recht. Danke, Rufus Τ. Firefly & Jan Berg (berge)... Ich werde versuchen weiter in dieser Richtung zu recherchieren und sollte ich was finden, hier natürlich posten. Grüße
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.