Große Daten Mengen ablegen?

OP #2318577
Hallo,

ich lese mit ein Atmega8 drei AD Ports ein und Speicher jeden Wert in 
eine Variable.


Das Problem ist, ich weiss nicht wohin mit den Daten, ich würde gerne 
jede Sekunde messen und das ganze vielleicht über 1 Stunde lang.

erste Idee hatte ich das ganze über ein Funkmodul nach jeder Messung an 
ein PC zu Senden, das ganze klappt auch eigendlich nur leider reist oft 
die Funkverbindung ab weil dort wo die schaltungen in einsatz kommt 
viele andere Funkquellen sind.

Idee zwei, auf eine SD Karte Schreiben, leider ist die Schaltung dafür 
aufwendig und braucht relativ viel Platz, die schaltung sollte so klein 
wie möglich bleiben.

Was gibt es für Alternativen? kann man den Ram des Atmegas vergrößern?

dann würde ich das ganze 1 Stunde lang im ram sammeln und dann das ganze 
Packet über ein Kabel auf den PC übertragen.
Gast #2318598
>naja ein ad wert besteht maximal aus 4 stellen (0-1023 ) also 4bit bei 3

Nö, in ASCII wären das 4 Byte. Binär 2 Byte.

Im besten Fall 3 x 2 x 3600 = 21600.

32kB EEPROM oder FRAM passt dazu.
Gast #2318599
Stefan B. schrieb:

> kann man den Ram des Atmegas vergrößern?

Nö. Bei anderen AVRs wie z. B. ATmega128 (einen neueren kenne ich jetzt 
nicht auswendig) wäre das gegangen (Interface für ext. Speicher).
Eine andere Möglichkeit besteht darin, ein externes RAM/EEPROM/FLASH 
anzubinden, z. B. ein I²C-EEPROM. Da muss man dann eben noch die 
Ansteuerung implementieren.

Das Ganze hängt natürlich von der Datenmenge und von der Häufigkeit des 
Beschreibens ab.

Ist das für eine Anwendung, die nicht "immer" laufen muss, sondern über 
ihre Lebenszeit nur fünf Mal für eine Stunde aufnimmt? Dann sammele die 
Daten im RAM bis zur Größe einer FLASH-Seite, und schreibe die dann ins 
FLASH.
Gast #2318602
Uwe ... schrieb:
> Wie viele Bytes sind es denn nun insgesamt?

Das läßt sich noch leich beantworten. Nach Adam Riese, ohne 
Datenkompression bei 10-bit ADC mit 1 Hz wohl
3  10 bit  60 * 60 = 13.2 kByte oder, wenn man jede Sekunde 4 Byte 
ablegt, gut 14 kByte.
Gast #2318605
4 Stellen (0 - 1023) ?????

Ich würde sagen 2 Bytes

2 Bytes  3 AD-Signale  3600 / 1024 = 21,1kByte

Vielleicht reicht auch eine kleinere Mittelwertbildung.
jede Sekund wird gemessen und nach 10 Messungen ein Mittelwert gebildet 
und gespeichert.
Bei einer Auswertung über eine Stunde müsste die Auflösung ja reichen.
#2318621
eine microsd-Karte benötigt definitiv nicht mehr Platz als ein Funkmodul 
und bietet für wenig Geld quasi unbegrenzten Speicher.
Ansonsten gibts sehr günstigen Dataflash mit SPI-Interface im SO-8 
Gehäuse (1Mbit für weniger als 2€)

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 15 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.