Hallo zusammen, mache soeben die ersten Gehversuche mit µ-Controllerprogrammierung in C. Ich verwende einen ATMega32 und habe folgendes Problem: Ich entwickel gerade eine Messvorrichtung mit einem Messtaster. Die Daten (Inkremental, Toleranz +-15µ) möchte ich mit dem ATMega auswerten und die Daten dann speichern und via PC später auszuwerten. Nun meine Fragen: - Mit welchem Baustein speichere ich am besten die Daten? (ca.5000 Datensätze pro Monat, deshalb externer Speicherbaustein) - Wie kann ich die Daten mit einem PC auslesen und später z.B. in Excel auswerten? (Schnittstelle, Datenformat etc.) Für hilfreiche Tipps wäre ich unendlich dankbar, habe da bisher nämlich wenig im Netz gefunden... hoffe auf Bald.....
definiere "am besten". 5000 Datensätze können auch 5000 Byte sein oder 500 KB. Man könnte eine SD-Karte benutzen. Kostet aber Platz und macht etwas Aufwand mit dem Anschluss, vor allem wenn der Controller über 3,6V läuft. Und erfordert einiges an Software. Dafür bekommt man quasi unbegrenzte Kapazität mit den heute billigen 1 GB Karten und kann die Daten gleich so schreiben, dass man die Datei am PC nur noch öffnen muss. Was mir noch fehlt ist eine Bezugsquelle für günstige SD-Sockel. Oder man nimmt ein SPI FRAM wennn die Kapazität dafür reicht. Das ist klein und schnell, lässt sich quasi beliebig oft beschreiben und verliert die Daten beim Ausschalten nicht. Ausgelesen wird das dann über die serielle Schnittstelle, inzwischen am Besten über einen USB-seriell Wandler wie den FT232RL. Dafür muss man sich dann überlegen wie man eine Datei überträgt.
@Rudolph: Danke für Deinen Beitrag. Auf eine SD-Karte wäre ich gar nicht gekommen, wenn sich das mit angemessenen Aufwand realisieren ließe wäre das eine sehr gute Lösung. Sorry, es sind 5000 Datensätze pro WOCHE, also 20.000 pro Monat Ich denke ich brauche pro Datensatz zwei Speichereinheiten (Daten + Timestamp), also 2 Byte. Da die Daten nur sporadisch ausgewertet werden, sollte ich eine Vorhaltezeit von ca. 3 Monaten haben, ergo 120 - 180 kB Also mit 200 kB käme ich klar, fast ein bischen wenig für eine SD Karte, oder?
>Also mit 200 kB käme ich klar, fast ein bischen wenig für eine SD Karte, >oder? Auf jeden Fall, da lohnt der (doch erhebliche) Aufwand nicht. Ich würde zwei 1MBit EEproms nehmen, gibts mit SPI oder I2C.
SD ist wohl die einfachste Lösung: Elektrisch ist der Anschluß sehr einfach und kleine FAT-Dateisysteme gibt es auch als Quelltext auf dem Netz. Die Karten sind sehr billig und wenn man sie ordentlich mit einem FAT-Dateisystem beschreibt, bekommt man die Daten sehr leicht auf den PC. Bastellösungen machen auf Dauer keinen Spaß...
@painproduction > Ich denke ich brauche pro Datensatz zwei Speichereinheiten (Daten + > Timestamp), also 2 Byte. Deine Daten könnten ja in ein Byte passen, aber einen Timestamp? Du willst einen Timestamp in ein Byte packen? Da denke dann über die Auaflösung nach.
Danke für die Ideen! @paludertasche: Es handelt sich weniger um einen Timestamp als um einen DateCode, also Kalenderwoche und Tag würden schon reichen, das müsste doch in einem Byte unterzubringen zu sein, oder?
Alternative zu EEPROM: serielles Flash-ROM, 3,3V SPI. Gibt es bis 4Mbit als SO8, bis 64Mbit als SO28 und TSOP.
Neee, sorry hast recht, das wäre eine ziemlich kompliziertes umrechnungs-Kuddel-muddel. 2 Byte im Hex format wären am einfachsten....
>Kalenderwoche und Tag würden schon reichen, das müsste doch in einem >Byte unterzubringen zu sein, oder? Leider nicht 6 Bit für die Woche, 5 Bit für den Tag.
Wenn man es drauf anlegt, geht auch weit weniger. Je nach Codierung des Datenstroms kann man darauf verzichten, zigmal hintereinander das gleiche Datum reinzuschreiben und kann beim Datumswechsel zudem die Differenz codieren.
Schau dir mal die Atmel Datenflash an. Die sind sehr praktisch, schnell und einfach anzusteuern.
Hi,
>Leider nicht 6 Bit für die Woche, 5 Bit für den Tag.
Nicht ganz! 53 Wochen à 7 Tage ergibt 245.
8 Bit reichen also.
Man muss ja nicht den Tag von 1. - 31. abspeichern,
sondern nur den Wochentag von 0 bis 6 (entsprechend Mo - So),
da in den 1. bis 31. schon die Wochennummer mit drin steckt bzw.
umgekehrt.
Oops.
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.