USB Mass Storage Class auf STM32

Gast #5977389
Lesenswert?

Hallo Gemeinde,

ich möchte, dass beim Anstecken meines Nucleo-Boards
über USB an den PC, ein Laufwerk erscheint.
(z.B. im Windows Explorer)
Diese soll les- und schreibbar sein.

Bevor ich jetzt in die falsche Richtung losmarschiere,
hier meine Fragen:

Ist das Nucleo-Board für diesen Modus ein Host oder ein Device?
Kann CubeMx dafür hilfreich sein, oder gibt es bessere 
Implementierungen?

Target wäre ein STM32L496.

Viele Grüße
Runout
Gast #5977451
Lesenswert?

Hi,

das wäre zu einfach... ;-)
Der USB-Stick ist quasi der PC.

Wenn ich einen USB-Stick an die MCU anschließe,
dann ist der Stick das Device und die MCU der Host.

Der "Stick" ist über USB-Mass-Storage-Class
angeschlossen.

Es gibt von STM entsprechende Host- und/oder Device-Lib.
Daher das Verständnisproblem.

Grüße Runout
#5977458
Lesenswert?

runout schrieb:
> Hi,
>
> das wäre zu einfach... ;-)

Nein. Es ist einfach.

> Der USB-Stick ist quasi der PC.

Wirr? Es geht darum ein Nucleo Board als USB-Stick-Ersatz zu betreiben.

> Wenn ich einen USB-Stick an die MCU anschließe,
> dann ist der Stick das Device und die MCU der Host.
>
> Der "Stick" ist über USB-Mass-Storage-Class
> angeschlossen.
>
> Es gibt von STM entsprechende Host- und/oder Device-Lib.
> Daher das Verständnisproblem.

Bei so viel Wirrnes und Unverständnis wird das nichts.
#5977475
Lesenswert?

runout schrieb:
> ich möchte, dass beim Anstecken meines Nucleo-Boards
> über USB an den PC, ein Laufwerk erscheint.
> (z.B. im Windows Explorer)
> Diese soll les- und schreibbar sein.

widerspricht

runout schrieb:
> Der USB-Stick ist quasi der PC.
>
> Wenn ich einen USB-Stick an die MCU anschließe,
> dann ist der Stick das Device und die MCU der Host.


Was willst du nun genau machen?
Persönliche Seite #5977476
Lesenswert?

runout schrieb:
> Ist das Nucleo-Board für diesen Modus ein Host oder ein Device?

Device.

runout schrieb:
> ich möchte, dass beim Anstecken meines Nucleo-Boards
> über USB an den PC, ein Laufwerk erscheint.

Sicher dass das die beste Idee ist? Soll das Nucleo hier wirklich nur 
als Datenablage fungieren (mit SD-Karte oder so) oder soll das Nucleo 
die Daten doch auch selbst verarbeiten, als Steuerung für irgendwas? 
Dann wäre Mass Storage (USB-MSC) ggf. ziemlich umständlich. Wenn es nur 
darum geht, dass du ohne Treiber-Installation Daten austauschen 
möchtest, gibt es bessere Wege - z.B. als WinUSB Device. Was möchtest du 
also genau erreichen?

runout schrieb:
> Kann CubeMx dafür hilfreich sein, oder gibt es bessere
> Implementierungen?

Das enthält Libraries dafür, ja. Wenn du es selbst implementieren 
möchtest, und/oder doch keine der dort gebotenen Standard-Klassen 
verwenden willst (was wie gesagt möglicherweise sowieso nicht die beste 
Idee sein könnte):
[[USB-Tutorial mit STM32]]
Wobei das auf den STM32L496 nicht so zutrifft, weil der die komplexere 
"USB-OTG" Peripherie hat.
Gast #5977586
Lesenswert?

Hallo,

zur Funktion:
Es soll nur ein ca. 1MB großes Firwarefile in diesem Laufwerk abgelegt 
werden.
Der von Niklas vorgeschlagene, umgekehrte Weg wäre besser,
ist aber nicht gewünscht.

Habe jetzt zwei brauchbare Quellen gefunden.
-"STM32_USB-Host-Device_Lib_V2.2.0" (STM32F4)
-HAL generiertes Projekt (STM32L4)

und DIE Referenz: usbmassbulk_10_Ref1_0.pdf

Vielen Dank an alle, vor allem Cyblord,
dem pädagogischen Feinfinger in diesem Forum...

Grüße
Runout
Gast #5977598
Lesenswert?

runout schrieb:
> Der von Niklas vorgeschlagene, umgekehrte Weg wäre besser,
> ist aber nicht gewünscht.

Was ist denn daran "umgekehrt"?

runout schrieb:
> Es soll nur ein ca. 1MB großes Firwarefile in diesem Laufwerk abgelegt
> werden.

Und was passiert dann damit? Soll der Controller sich damit selbst 
überschreiben? Oder das auf einen anderen Controller flashen?

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren