mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Schreiben auf SD-Karte, Daten gehen verloren


Autor: Mans (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
wird wohl ein software fehler sein. Selbst wenn der Bus nicht schnell 
genug ist würde man sotwas ja ein der Software merken und kann dann 
eventuell eine Meldung ausgeben.

Autor: Martin Thomas (mthomas) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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

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.
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.

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