Schreiben auf SD-Karte, Daten gehen verloren

Gast #1891334
Lesenswert?

Hi, ich habe ein kleines Problem mit einer SD-Karte. Ich schreibe 
zeilenweise Daten mit einem Zeitstempel in eine Text-Datei. Alle 10ms 
wird eine neue Zeile in die Datei geschrieben. Ich komme so auf eine 
Datenmenge von 3,6KByte, die pro Sekunde auf die Karte geschrieben 
werden muss. Der SPI-Bus und die SD-Karte müssten das von der Datenrate 
locker mitmachen. Wenn ich jedoch über längere Zeit Daten aufzeichne, 
fehlen in unregelmäßgen Abständen mehere aufeinanderfolgende Daten (10 
Zeilen also 100ms). Für meine Anwendung ist das leider nicht sehr gut. 
Ich habe bereits mehrere SD-Bibliotheken ausprobiert, bei allen tritt 
das gleiche Phänomen auf. Meine Schaltung läuft auf 3,3V, ich brauche 
von daher keinen Pegelwandler oder ähnliches. Hatte vielleicht schonmal 
jemand ein ähnliches Problem oder hat jemand ein paar Tips? Viele Grüße, 
Mans
Moderator Persönliche Seite #1891526
Lesenswert?

Kann gut sein, dass die Karten selten aber bestimmt meherere 10ms 
benötigt, um einen Block zu schreiben. Bei einigen SD-Karten sind 200ms 
"block write time max." spezifiziert. Abhilfe schafft in solchen Fällen 
ein Zwischenspeicher (FIFO-Warteschlange), in den z.B. von einem 
Timer-Interrupt-Service-Handler oder einem Task im gewünschten 
Zeitintervall ein Datensatz geschrieben wird. In der Hauptschleife bzw. 
in einem anderen Task wird dann "nur noch" geschaut, ob Datensätze im 
Puffer stehen und diese dann der Schreibroutine übergeben.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren