USB Mass Storage Class auf STM32

Gast #5977389
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
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
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.
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
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
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
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

Eine eigene Frage? Dieser Thread ist über 7 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.