Forum: Mikrocontroller und Digitale Elektronik Datenlogger für größere Datenmengen


von Dude (Gast)


Lesenswert?

Hallo,

ich habe mehrere Sensoren die Daten liefern welche ich auf einen 
geeigneten Speichermedium in genau der Reihenfolge speichern muß wie die 
daten anfallen.

Es fallen z.Z. ca 2-3kByte pro Sekunde über je ein USART (ATMEGA644p) 
an. Später könnte das auch noch mehr werden.

Zuerst dachte ich an eine Lösung wie sie hier schon oft besprochen 
wurde: Daten über USART in einen ATMEGA... und dann auf eine SD Card 
speichern.

Bei ausgiebigen Tests kam es aber immer wieder zum "verschwinden" von 
daten, d.h. manche  Datensätze wurden nicht gespeichert. Ich habe die 
wirkliche Ursache nicht genau herausfinden können aber ich vermute dass 
es mit der Eigenschaft der SD Cards zusammenhängt, daten manchmal 
verzögert zu übernehmen wenn (SD card-)intern irgenwelche "arbeiten" 
anliegen (wear leveling). Bei GPS Loggern mit einem NMEA Datensatz pro 
Sekunde wird das noch keine Probleme geben.

Hat jemand Erfahrungen beim speichern solcher datenraten auf SD Card? 
Ich weiß dass viele kommerzielle Geräte die karten mit viel höheren 
datenraten beschreiben. Aber dort werden wahrscheinlich größere 
Pufferspeicher eingesetzt die ein nicht kontinuierliches 
Schreibverhalten der Karte von der datenquelle entkoppeln.

Kann mir jemand genaueres zu den Auswirkung des wear leveling 
hinsichtlich einer nicht kontinuierlichen Beschreibbarkeit von SD Cards 
sagen? Ich habe bislang nur Infos zu Sinn und Prinzip von Wear leveling 
gefunden.

Welche andenen Speichermedien außer SD Card gibt es noch, die relativ 
einfach mit ATMEGAs angesteuert werden können?

Danke für Hilfe,
Dude

von Rainer U. (r-u)


Lesenswert?

Es gibt noch CF-Karten. Das Problem (man kann nicht immer kontinuierlich 
schreiben) besteht aber da auch. SD-Karten lassen sich bis zu 250ms 
Zeit, bis sie wieder "da" sind. Du müßtest also bei 2kByte/s ca. 512 
Byte (einen Sektor) zwischenspeichern, das geht noch im Ram vom AVR. 
Ansonsten macht sich als Puffer ein kleiner SPI-Ram ganz gut (DIP8) - 
einfach anzusteuern, 32kByte sind gängig.

Und - Du solltest Deine "Vermutung" natürlich erstmal bestätigen, z.B. 
rote Lampe leuchten lassen, wenn Programm schreiben will und SD-Karte 
nicht schnell genug antwortet..

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.