Forum: Mikrocontroller und Digitale Elektronik stm32f407 USB Host Beispiel


von Marc (Gast)


Lesenswert?

Guten Tag zusammen

Ich will einen einfachen test machen ob USB Host auf einem STM32F407 
läuft, hatt mir jemand ein gutes Beispiel? Der stm soll z.B. Daten auf 
einen USB Stick loggen

Vielen Dank im Vorraus

von Frickelfritze (Gast)


Lesenswert?


von Frickelfritze (Gast)


Lesenswert?


von Marc (Gast)


Lesenswert?

Komme leider nicht ganz raus, bräuchte vermutlich ein tutorial.. :(

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Schau mal bei Uwe:
http://mikrocontroller.bplaced.net/wordpress/?page_id=6

Er nimmt StdPeriLib, evtl. ist das für dich angenehmer. Ich habe da mit 
dem F4 Disco recht leicht einen USB Stick angedockt.
Die einzige Schwierigkeit war es, einen passenden Adapter von USB-OTG 
auf USB-A Buchse für den Stick zu machen, da habe ich mir mit einem 
MiniHub für OTG geholfen.

: Bearbeitet durch User
von Frickelfritze (Gast)


Lesenswert?

Marc schrieb:
> Komme leider nicht ganz raus, bräuchte vermutlich ein tutorial.. :(

Das kommt jetzt nachgeschoben ....

... oder bräuchtest du vielleicht eher eine fertige Lösung auf dem
Silbertablett serviert ....

von Marc (Gast)


Lesenswert?

Das nicht habs einfach nicht zum laufen gebracht...

Aber trotzdem Danke für die Bemühungen.

von Jonas (Gast)


Angehängte Dateien:

Lesenswert?

Habs jetzt nochmal versucht mit diesem Tutorial.

http://www.keil.com/appnotes/files/apnt_268.pdf

Wenn ich die Funktion "fstatus = finit (drive_name);" aufrufe bekomme 
ich immer den fehler "fsDriverError", wie entsteht dieser Fehler? und 
was kann ich machen?

von Jonas (Gast)


Lesenswert?

Wo konfiguriere ich die DATA+ und DATA- Pins oder sind die immer PA11 
&PA12?

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Jonas schrieb:
> oder sind die immer PA11
> &PA12?

Ja. Am F407 Discoboard ist das so fest verdrahtet. Die Initialisierung 
wird normalerweise von der Library übernommen, wenn du das OTG als Host 
konfigurierst.

Marc schrieb:
> Das nicht habs einfach nicht zum laufen gebracht...

Wenn du Uwes USB Beispiel nicht zum laufen bekommst, solltest du nochmal 
schauen, ob du wirklich alle Sourcefiles kompilierst und alle Header 
ordentlich einbindest. Es bleibt nicht nur beim USB Host, sondern du 
musst natürlich noch ein Filesystem einbauen. Uwe benutzt dazu FatFS.
Ich benutze eine ältere Coocox IDE und da hat alles immer geklappt. Man 
sollte aber, wie immer, klein anfangen und dann zu grösseren Projekte 
weitergehen.

von abced (Gast)


Lesenswert?

STM32 USB mit der HAL ist ein ziemliches Bug-Fest. Vorher zwingend (!) 
die offiziellen STM32-Foren von ST lesen. Viele Bugs die dort seit 1-2 
Jahren bekannt sind, wurden noch nicht behoben.

von Jonas (Gast)


Lesenswert?

Ich verwende ein eigenes PCB Design und Keil MDK-ARM Professsional, 
clock habe anpassungen für PLL_M, PLL_N & PLL_Q gemacht weil ich einen 
ext 12MHz Quarz verwende, das Board aus dem Beispiel verwendet einen 
8MHz..

PF11 - OTG Enable (geht auf einen STMPS2151STR und bringt 5V auf VBUS)
PF12 - OTG OC
PA9  - VBUS
PA10 - ID
PA11 - DM
PA12 - DP

Das Filesystem etc. habe ich genau nach den appnotes von Keil erstellt
http://www.keil.com/appnotes/files/apnt_268.pdf

Hab auch eine SD-Card auf dem PCB, welche recht schnell funktioniert 
hat.
Muss ich vieleicht noch auf was anderes achten?

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.