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


von Frank (Gast)


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)


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)


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)


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)


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)


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


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)


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.

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
Noch kein Account? Hier anmelden.