Hallo, ich möchte die Drehraten- und Beschleunigungswerte eines IMU (Inertiale Messeinheit) möglichst mit voller Auflösung auf eine SD-Karte aufzeichnen. Dazu benötige ich einen Datenlogger. Hat das vielleicht von euch schonmal jemand gemacht? Ich möchte mir gerne einen Datenlogger selbst bauen. Hättet Ihr da vielleicht eine gute Empfehlung welchen uC und IMU ich verwenden könnte? Als IMU hätte ich mir z.B. das MPU-6050 vorgestellt (Link zum Datenblatt: https://www.cdiweb.com/datasheets/invensense/MPU-6050_DataSheet_V3%204.pdf). Die Datenrate für den Beschleunigungssensor ist 1000 Hz und für das Gyro 8000 Hz. Kann man überhaupt soviele Daten so schnell auf eine SD-Karte speichern? Wahrscheinlich muss man da irgendwie mit Puffer arbeiten und den internen Speicher des uC. Wäre super wenn ihr mir weiterhelfen könntet. Vielleicht wisst ihr ja sogar eine gute Website wo jemand genau das versucht. Vielen Dank :-)
Dieses Forum bietet Hilfe zur Selbsthilfe. Hier deine Antworten: peter schrieb: > Hat das vielleicht von euch schonmal jemand gemacht? Ja, mehrfach (beruflich bedingt) peter schrieb: > Hättet Ihr da > vielleicht eine gute Empfehlung welchen uC und IMU ich verwenden könnte? uC: den den du kennst bzw. beherrschst. Ich nehme gerne ein STM32F030 andere gleich ein STM32f7... IMU gibt es wie Sand am Meer. Da du keine genauen Anforderungen hast: such dir selbst eines aus. Der MPU-6050 ist für Anfänger nicht schlecht. peter schrieb: > Kann man überhaupt soviele Daten so schnell auf eine SD-Karte speichern? Mit Zwischenspeichern kein Problem. peter schrieb: > Wahrscheinlich muss man da irgendwie mit Puffer arbeiten und den > internen Speicher des uC. Jepp. RAM haben moderne uC mehr als genug. Mann kann aber zur Not auch ein externes RAM nehmen.
Nimmst du SPI und eine FAT Library, kannst du so 100 KByte/Sekunde erwarten. Dann gibt es unzählige Beschleunigungen. Blockgrösse an Erase-Size der Karte anpassen, vorab eine grosse Datei anlegen...
peter schrieb: > Die Datenrate für den Beschleunigungssensor ist 1000 Hz und für das Gyro > 8000 Hz. Das ergibt 16bit alle 125ns + 16bit jede ms (falls du mit Datenrate die Abfragefrequenz meinst), also insgesamt 18KB/s. Die Schreibgeschwindigkeit (RAW, also ohne Umweg über FAT) auf SD liegt zwischen 180KB/s und 250KB/s mit 1bit SPI - das ist 10mal so schnell. Ungefähr alle 28ms wird ein Sektor mit 512Byt beschrieben, das dauert zwischen 2-3ms und somit ist die Mindestanforderung an den uC nur 1KB RAM und SPI-Interface (Es geht aber auch genausogut mit Soft-SPI). Das Problem entsteht beim Schreiben auf SD - die mind. 2-3ms müssen in einem Stück abgearbeitet werden und in dieser Zeit kann der Sensor nicht abgefragt werden. Selbst mit SPI-Interrupt geht das nicht, da CS für SD die ganze Zeit auf LOW bleiben muss. Sollte aber die Abfrage nicht unbedingt alle 125us stattfinden, kann das jede MEGA ab M88 ohne Probleme schaffen. Oder du nimmst I2C für die Kommunikation mit dem Sensor, dann kannst du mal zwischendurch Sensorwerte einlesen und die SD-Card bleibt trotzdem selektiert. Wobei bei I2C mit 400KHz, 1 Byte Request und 2 Byte Answer das alles ziemlich knapp wird - so um die 65-75us braucht das Ganze mindestens. Vorausgesetzt, dass keine Register im Sensor adressiert werden müssen. Sollte dies der Fall sein, kannst du diese Alternative vergessen, dir bleibt nur noch DMA als Ausweg. Aber STM32F sind auch nicht viel teuerer als ATMEL, wenn überhaupt...
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.