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