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

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

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.