www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Speicher ATMega32


Autor: Daniel Gr. (painproduction)
Datum:

Bewertung
0 lesenswert
nicht 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.....

Autor: Rudolph (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: painproduction (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: jack (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Uhu Uhuhu (uhu)
Datum:

Bewertung
0 lesenswert
nicht 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ß...

Autor: plaudertasche (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Daniel Gr. (painproduction)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Andreas K. (a-k)
Datum:

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

Autor: Daniel Gr. (painproduction)
Datum:

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

Autor: jack (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Andreas K. (a-k)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: sechsnullfuenf (Gast)
Datum:

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

Autor: Oops (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: testaccount (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
53 != 35
#
...

Autor: testaccount (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
35 * 7 = 245
53 * 7 = 371

->9bit muss reichen

Autor: testaccount (Gast)
Datum:

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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.