Forum: Mikrocontroller und Digitale Elektronik USB mass storage (USB-Stick) mit ESP32 / Atmel


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Frank (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Ich möchte das man die vom ESP32 oder Atmel verarbeiteten Daten einfach 
wie einen USB Stick mit dem PC lesen kann.

Also Beispiel:
- DS18B20 sammelt Temperaturdaten
- Daten werden vom Controller auf einen Speicher geschrieben
- Man steckt den kompletten Stick an den USB port und kann die Dateien 
kopieren/drucken...

Ich möchte es gern einfach haben, ohne Wlan anmeldung, fizzelige TF 
Karte oder extra Software um die Daten seriell rauszuziehen.

Ein Datensammelstick dessen Dateien ich sofort lesen/schreiben kann.

Lässt sich das mit einem fertigen zusätzlichen Controller lösen der auf 
einen Speicher (SD oder SPI Eprom) zugreift und die Daten für den PC 
bereitstellt?

von c-hater (Gast)


Bewertung
-1 lesenswert
nicht lesenswert
Frank schrieb:

> Lässt sich das mit einem fertigen zusätzlichen Controller lösen

Das läßt sich sogar OHNE einen zusätzlichen Controller lösen. Man muß 
bloß den richtigen Atmel für das Projekt wählen, z.B. einen M32U2...

von Jens M. (schuchkleisser)


Bewertung
0 lesenswert
nicht lesenswert
Da ich zufällig vor einem ähnlichen Problem stehe, füge ich mal eine 
Salamischeibe hinzu:
Gerät ist außer der Reichweite des PCs, also muss ein Stick beschrieben 
werden.
Oh, wait, das wurde im OP schon genannt... ;)

Wäre ein FTDI Vinculum eine Lösung? Ich hab mich auf eine SD-Card 
eingeschossen, aber USB wär schon geiler...

von c-hater (Gast)


Bewertung
-1 lesenswert
nicht lesenswert
Jens M. schrieb:

> Gerät ist außer der Reichweite des PCs, also muss ein Stick beschrieben
> werden.
> Oh, wait, das wurde im OP schon genannt... ;)

Nein, ganz und garnicht.

von Frank (Gast)


Bewertung
0 lesenswert
nicht lesenswert
c-hater schrieb:
> Das läßt sich sogar OHNE einen zusätzlichen Controller lösen.

gar nicht so übel bin nicht darauf gekommen, ich kann einen BADUSB mit 
SD Karte nehmen (~5 Euro, ATMEGA32U4), anstatt anzugreifen die lufa mass 
storage nutzen.

Soll sehr langsam sein, aber das ist bei dem Auslesen meiner 
Erfassungsgeräte nicht wirklich von Bedeutung, mir geht es um einfach 
für den Nutzer.

c-hater schrieb:
>> Gerät ist außer der Reichweite des PCs...

Also bei mir sind es n Erfassungsgeräte die mobil ausgelesen werden, 
wenn man zurück im Büro ist in den PC stecken und die CSV Dateien 
kopieren.

Beitrag #6314166 wurde vom Autor gelöscht.
von John Doe (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Frank schrieb:
> Ich möchte das man die vom ESP32 oder Atmel verarbeiteten Daten einfach
> wie einen USB Stick mit dem PC lesen kann.
>
> Also Beispiel:
> - DS18B20 sammelt Temperaturdaten
> - Daten werden vom Controller auf einen Speicher geschrieben
> - Man steckt den kompletten Stick an den USB port und kann die Dateien
> kopieren/drucken...
>
> Ich möchte es gern einfach haben, ohne Wlan anmeldung, fizzelige TF
> Karte oder extra Software um die Daten seriell rauszuziehen.
>
> Ein Datensammelstick dessen Dateien ich sofort lesen/schreiben kann.
>
> Lässt sich das mit einem fertigen zusätzlichen Controller lösen der auf
> einen Speicher (SD oder SPI Eprom) zugreift und die Daten für den PC
> bereitstellt?


Wozu? Der ESP32-S2 kann USB. Von den AVRs gibt es ebenfalls etliche 
Derivate mit USB.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
USB-fähige Controller wurden ja schon genannt.

Frank schrieb:
> Ich möchte das man die vom ESP32 oder Atmel verarbeiteten Daten einfach
> wie einen USB Stick mit dem PC lesen kann.

Bei einem Mass Storage Class device (MSC) musst du nur auf eins achten: 
das Dateisystem darf nur einer Partei „gehören“, also entweder der 
Firmware des Controllers oder dem Host, der darauf zugreift. Der Host 
rechnet, nachdem er das Dateisystem eingebunden hat, nämlich ganz und 
gar nicht damit, dass sich der Inhalt seines Datenträgers auf magische 
Weise „von selbst“ ändern könnte. Da er beliebig Daten cachen kann (und 
auch verspätet auf den Datenträger zurück schreiben), führt es 
unweigerlich zu Chaos, wenn beide Parteien schreibend drauf zugreifen.

Eine Partei lesend und eine schreibend geht, also bspw. einen 
Datenträger read-only deklarieren, damit der Host nie schreiben darf, 
allerdings würde der Host auch in diesem Falle Aktualisierungen des 
Datenträgers mit hoher Wahrscheinlichkeit nicht mitbekommen.

Der Controller hat natürlich die Macht darüber, also er kann das Teil 
beim Host read-only deklarieren, dann kann er zumindest weiter 
schreiben, wenn er will. Gibt er es aber read-write frei, darf er ab 
diesem Moment nichts mehr selbst verändern.

von Frank (Gast)


Bewertung
0 lesenswert
nicht lesenswert
John Doe schrieb:
> Wozu? Der ESP32-S2 kann USB.

Ja das ist klar, habe nu noch kein Beispiel gefunden wo er als USB mass 
storage arbeitet.

Jörg W. schrieb:
> Bei einem Mass Storage Class device (MSC) musst du nur auf eins achten:
> das Dateisystem darf nur einer Partei „gehören“, also entweder der
> Firmware des Controllers oder dem Host, der darauf zugreift.

Das ist kein Problem, Datenerfassung und Download der Daten sind 
räumlich und zeitlich getrennt und dem System ist bekannt wenn ich 
erfassen möchte.
Dazu schrieb Frank im Beitrag #6314165:
> Also bei mir sind es n Erfassungsgeräte die mobil ausgelesen werden,
> wenn man zurück im Büro ist in den PC stecken und die CSV Dateien
> kopieren.

Ich erwäge noch eine andere Lösung, ein USB SD(TF) Card Reader Module, 
kostet 2€. Mit meinem ESP32 kann ich einfach auf die eingeschobene SD 
Karte zugreifen. Ist der USB eingestekt bekomme ich 5V und der ESP32 
lässt die Finger von der Karte.

Ein wenig Lötaufwand, 0 Programmieraufwand da ich die TF schon in einem 
anderen Projekt habe. Ich muss 10 Stück machen also 
Zeit-Nutzen-Kosten...

Schon komisch hat jetzt Tage gedauert, erst das ausformulieren, und die 
Kommentare für Lösungswege haben mich weitergebracht.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.