Hallo Zusammen, ich wollte mich erkundigen ob jemand die USB-OTG Funktionalität mit dem STM32 bereits realisiert hat? Worum es geht: ich versuche gerade bei dem STM32F411 eine Umschaltfunktion zwischen USB Host (MSD Class) auf USB Device (CDC Class) zu realisieren. Nach dem Start wird das STM32F411 als Host (Mass storage device) initialisiert. So kann ich Daten vom USB Stick lesen. Das funktioniert einwandfrei. Danach schalte ich (zu Laufzeit) das USB als Device (CDC). So kann ich Daten als eine Serielle Schittstelle senden und empfangen. Das funktioniert auch ohne jegliche Problemen. Wenn ich versuche, aber (zu Laufzeit), das USB umgekehrt vom Device auf Host zurück zu schalten (mit sämptlichen Initialisierungsvorgängen), lauft das USB Peripherie nichts mehr - das USB Stick wird nicht erkannt. Bei USB OTG soll die Umschaltung eingentlich in beide Richtungen funktionieren ?! Was mache ich da grundsätzlich falsch ? Im voraus - Danke für eure Tipps !!! Mit freundlichen Grüßen Andrey
Hi. Nimmst du auch die Versorgungsspannung weg? Ich glaube das ist zur Neuinitialisierung nötig. Was passiert wenn du mit CDC startest und dann auf MSD wechselst? Gruß
Andrey schrieb: > ich versuche gerade bei dem STM32F411 eine Umschaltfunktion zwischen USB > Host (MSD Class) auf USB Device (CDC Class) zu realisieren. Wozu? Das geht gleichzeitig wenn man einen IAD (Interface Association Deskriptor) benutzt. BTDT. Wird von allen modernen OS unterstützt, IIRC war nur Win XP <SP3 die Ausnahme. Umschalten von USB Konfigurationen ist ansonsten extrem lästig. Der PC re-enumeriert nur wenn sich der Device Deskriptor auch ändert. Anmerkung: Bei meiner "Stick" (Mass storage) Implementation hatte ich ein Wechselmedium emuliert, damit der PC auch mitbekommt wenn sich was via CDC ändert. Ansonsten cached der das USB Laufwerk.
Ups, falsch gelesen. Irgenwie hatte ich das so geparst das STM den Stick emulieren und nicht als Host ansprechen soll. Bitte meine obige Antwort ignorieren. Was ist eigentlich angeschlossen wenn Du zur "Laufzeit" umkonfigurierst? Zwei Hosts am selben Bus tun nicht. -> Schaltplan Ansonsten: Oszi mit Aufzeichnungsfunktion. PulseView hat mir mal bei USB Problemen sehr geholfen. Eventuell stimmt irgendein Timing nicht, oder Du musst dem Stick einfach neu Strom geben - bei OTG sollte die 5V Versorgung ja schaltbar sein...
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.