Datenspeicherung mit ESP32

OP #6793368
Lesenswert?
• ▲
▼
Liebe Kollegen,

ich habe mit einem ESP32 eine Messwerterfassung entwickelt und erfasse 
damit für maximal eine Minute alle 5ms 8 analoge Messwerte, welche in 
weiterer Folge auf einer SDKarte gespeichert werden.
Allerdings schafft die SD Karte diese 96.000 Messwerte nicht in 
Echtzeit, sondern hinkt ein wenig nach !
Jetzt möchte ich euch bitte fragen - ich brauche kein fertiges Programm, 
es genügt ein ja oder nein - ob FreeRTOS ein Ansatz sein kann, diese 
Verzögerung zu eliminieren ?
#6793372
Lesenswert?
• ▲
▼
Hallo
die Frage ist doch, woran es hakt! Ein RTOS ist kein Turbolader der 
macht auf Grund zusätzlicher Software alles eher langsamer.  Check doch 
mal selber, wo es hakt. Ich schätze bei deiner SD-Karte. Wie betreibst 
du die? Im SPI-Modus oder im SD-Modus? Wie schel ist die Karte? Und wie 
oft beschreibs du die? Und mit FAT-FS oder selbergestrickt?

Gruß
Gerhard
Gast #6793382
Lesenswert?
• ▲
▼
Wie dem auch sei, weniger als 100 kB pro Minute (nicht Sekunde) sollte 
jede SD Karte mit Leichtigkeit schaffen.

Dein Problem ist vielleicht eher, dass SD Karten zwischendurch mal mit 
sich selbst beschäftigt sind und dabei zahlreiche Takte verbraten. 
Typischerweise dauern diese pausen bis zu 200ms.

Dagegen kann man nichts machen, außer mit entsprechend viel RAM zu 
puffern.
Gast #6793396
Lesenswert?
• ▲
▼
Andreas S. schrieb:
> Liebe Kollegen,
>
> ich habe mit einem ESP32 eine Messwerterfassung entwickelt und erfasse
> damit für maximal eine Minute alle 5ms 8 analoge Messwerte, welche in
> weiterer Folge auf einer SDKarte gespeichert werden.
> Allerdings schafft die SD Karte diese 96.000 Messwerte nicht in
> Echtzeit, sondern hinkt ein wenig nach !
> Jetzt möchte ich euch bitte fragen - ich brauche kein fertiges Programm,
> es genügt ein ja oder nein - ob FreeRTOS ein Ansatz sein kann, diese
> Verzögerung zu eliminieren ?

Mal abgesehen von der Tatsache das 1600 Messwerte pro Sekunde (bei 
vermuteten 2Bytes pro Wert) also 3,2kB/s schon deutlich in Richtung 
Fußgängergeschwindigkeit deuten…

Wenn das FAT-Dateisystem derart lahmarsc.ig operiert, sollte man die 
Messwerte im RAM zwischenspeichern und anschließend (oder IRQ-basierend 
während der Erfassung) auf die SD-Karte tröpfeln.
#6793608
Lesenswert?
• ▲
▼
Hey Andreas,

wie schreibst du denn auf die SD Karte (Anzahl Pages / Buffergröße)?
SPI oder SDMMC/SDIO?

Nur um es nochmal nachzurechnen:
(Die ADC haben ja 12Bit soweit ich es richtig gesehen habe)

5ms (200x/Sek) * 8 Ch. * 2 Byte = 3200 Byte/Sek.
Das wären 6,25 Pages (je 512 Byte) / Sek.

Was mir dazu einfällt:
Bei mir war es so, dass Schreibvorgänge mit je 512 Byte langsamer waren 
als z.B. immer ein Buffer mit 4 Pages (2048 Byte) zu schreiben.

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.