Hallo, als nächstes in meinem Projekt möchte ich mich gerne mal mit der USB Schnittstelle der STM32F4 Controller beschäftigen. Ich hab mir die USB-Libs mal angesehen, doch leider gibt es dabei keine Anleitungen, wie bei der Standard-Peripherie-Lib. In den Beispielen von ST steige ich nicht ganz durch, deshalb nun die Frage ob sich jemand damit auskennt und vllt. auch ein Beispiel hat? Moritz
Hallo, also ich steig da bei den STM32F4-Controllern noch nicht durch. In welchen Modi kann die STM32F4-USB-Schnittstelle verwendet werden? (Host // Device // OTG(Host/Device)). Hat vielleicht jemand ein Bsp. für das STM32F4 Discovery Board? Moritz
Moritz M. schrieb im Beitrag #2761717: > On-the-Go ist doch > eig. dazu da um z.B zwei USB-Sticks miteinander zu verbinden oder? OTG soll deinem Programm ermöglichen, das Gerät an diesem Anschluss als Host oder als Device, je nach Auswahl im Programm(zum Beisp. durch den Joystick), zu behandeln. Ein USB-Stick Inhalt wird als -Board ist Host- für dieses Gerät ausgelesen. Wenn dieser (gleiche!) USB-Anschluss später irgentwann mit dem PC verbunden wurde und Du mit dem Joy/Touch -Board ist Device- ausgewählt hast, wird das ganze Board vom PC als "Device" erkannt und so behandelt. Als HID (human interface Device) als Mouse z.B., wenn Du den Kompass/Acc. drauf hast. Die Kippbewegungen des Boards bewegen dann einen Mauszeiger auf dem PC-Bildschirm ; Bei meinem Board wird in diesem Fall die SD-Karte des Boards ausgelesen und kann beschrieben werden(Data-Logging). Nun kannst Du 2 verschiedene USB- Anschlüsse vorsehen. Ich habe einmal FS(Full-Speed) und einen HS(High-Speed über USB3320) am Laufen. Und für beide OTG...
Hallo okay. Also OTG ist praktisch Device und Host in einem, nur das der Host eingeschränkte "Rechte" hat gegenüber einem reinen Host. Bei OTG wird dann während der Laufzeit festgelegt ob die Schnittstelle Host oder Device sein soll? Die USB-Schnittstelle von den STM32F-Controllern kann aber auch als normaler Host bzw. Device verwendet werden oder? Moritz
Hallo nochmal, ich glaube ich habe die Antwort selbst gefunden (Reference Manual). Also STM32F4-Controller habe nur OTG. Diese OTG-Schnittstelle kann dann nur als Host oder nur als Device verwendet werden; Oder als OTG, wobei der Modus(Host/Device) während der Laufzeit festgelegt wird. Hab ich das Richtig verstanden? Moritz
...im Grunde, -ja; OTG ist höher angesiedelt, da Du dich nicht von vorherein festlegen musst... -eben "on the go" , oder , "wie benötigt"...
...schau Dir mal das Bild genauer an: Beitrag "Re: HY_STM32F417_BB" Du siehst am unteren Rand die Auswahlmöglichkeit für USB-FS. -einmal als Host, darunter per Stick wählbar, als Device...
...oder noch eindeutiger: -mit dem Programm FS-USB-Host aus der o.g. Lib kannst Du Dir die Bilder auf deinem USB-Stick auf dem LCD ansehen,http://www.mikrocontroller.net/attachment/148684/HY_F417_BB_MS-Cardn_007__FILEminimizer_.jpg -mit dem Programm STM324xG-EVAL_USBD-FS aus o.g. Lib kannst Du am PC den Stick als "Laufwerk" öffnen und den Inhalt ansehen und ändern http://www.mikrocontroller.net/attachment/148558/Speicherinhalt_der_SD-Karte__FILEminimizer_.jpg
Hallo, vielen Dank! Also verstanden habe ich das jetzt. Ich weiß nur nicht richtig wie man die Lib verwendet. Welche Init-Funktionen brauch man? Wie kann man Daten Senden? Usw...? Beipiele? Moritz
...wenn Du die Lib entpackt hast, öffnest Du z.B. stm32_f105-07_f2_f4_usb-host-device_lib\STM32_USB-Host-Device_Lib_V2.1.0 \Project\USB_Host_Device_Examples\DRD -dann suchst Du Dir die IDE deines Vertrauens und öffnest das entsprechende Projekt; -da ist alles vorhanden und sehr gut kommentiert;
Hallo, also sehr gut dokumentiert ist finde ich etwas anderes.Hat nicht jemand einfach ein Beispiel z.B. einfach nur eine Maus Emulation oder so? Kann doch nicht sein, dass ich der erste bin der die USB Schnittstelle ohne irgendein Klumpatsch drum herum benutzen möchte? Moritz
Hallo, hat wirklich noch niemand die USB Schnittstelle benutzt? Durch die Beispiele von ST steige ich nicht ganz durch. Die Std_Periph_Lib ist super dokumentiert die USB_Lib praktisch gar nicht. Moritz
Moin, Ich nutze sie beispielsweise als Host für n USB Stick. Was genau willst du denn machen. MfG Tec
Hallo, ich möchte mich einfach erstmal so mit USB näher beschäftigen. Könntest du dein Projekt mal posten? Moritz
Moritz M. schrieb: > ich möchte mich einfach erstmal so mit USB näher beschäftigen. Könntest > du dein Projekt mal posten? es ist halt erst mal ein großer Unterschied, ob man einen USB Host oder ein USB Device realisieren will. Dies sollte man mindestens mal festlegen. Wenn man dies nicht kann, hilft vielleicht erst einmal ein Blick in die USB 2.0 Spezifikation, die man unter http://www.usb.org findet.
Hallo, ich weiß wie USB im Prinzip funktioniert usw. Mir ist ziemlich egal ob ich mit einem Host oder mit nem Device anfange. In meinem späteren Projekt kommt beides rein. Ich wäre sehr froh wenn du dein Beispiel posten könntest. Moritz
http://code.google.com/p/thundercyer-the-alarm-clock/ Das Repo ist nicht sehr aktuell, aber USB ist vollständig drin. Was USB mit dem ST Lib angeht ist das eigendlich recht simpel. Bei dem F4 lässt du den OTG Core mit übersetzen bei nem F1 den normalen. Dann musste Host oder Device mit übersetzen und darin die gewünschte Dev Class. Wenn das hast treibst du dich eigenlich nur in den usb_usr.x Dateien rum. Da sind die Callbacks aus dem USB stack drin. Sieht man auch schön bei dem Mediakey beispiel für das F4discovery. MfG Tec
Siehe auch diesen Thread hier: Beitrag "STM32F4 Discovery: USB CDC (serielle Schnittstelle) arbeitet!" Ich habe das Beispiel von hier probiert. Dort hat sich zumindest das Device mit FS (Full Speed) gemeldet (mehr nicht getestet): https://www.das-labor.org/svn/microcontroller/src-stm32f4xx/serialUSB/
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.