Forum: Mikrocontroller und Digitale Elektronik Speicher ATMega32


von Daniel G. (painproduction)


Lesenswert?

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

von Rudolph (Gast)


Lesenswert?

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.

von painproduction (Gast)


Lesenswert?

@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?

von jack (Gast)


Lesenswert?

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

von Uhu U. (uhu)


Lesenswert?

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

von plaudertasche (Gast)


Lesenswert?

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

von Daniel G. (painproduction)


Lesenswert?

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?

von Andreas K. (a-k)


Lesenswert?

Alternative zu EEPROM: serielles Flash-ROM, 3,3V SPI. Gibt es bis 4Mbit 
als SO8, bis 64Mbit als SO28 und TSOP.

von Daniel G. (painproduction)


Lesenswert?

Neee, sorry hast recht, das wäre eine ziemlich kompliziertes 
umrechnungs-Kuddel-muddel. 2 Byte im Hex format wären am einfachsten....

von jack (Gast)


Lesenswert?

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

von Andreas K. (a-k)


Lesenswert?

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.

von sechsnullfuenf (Gast)


Lesenswert?

Schau dir mal die Atmel Datenflash an. Die sind sehr praktisch, schnell 
und einfach anzusteuern.

von Oops (Gast)


Lesenswert?

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.

von testaccount (Gast)


Lesenswert?

53 != 35
#
...

von testaccount (Gast)


Lesenswert?

35 * 7 = 245
53 * 7 = 371

->9bit muss reichen

von testaccount (Gast)


Lesenswert?

3 bit für den tag 0-7
6 bit für die Woche 0-63

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.