Archiv verlassen und diese Seite im Standarddesign anzeigen : Speicherplatz auf dem ATMega8
hi
ich will einen Temperaturlogger bauen. Als Sensor hab ich mir den DS1820 rausgesucht weil ich bei dem nicht noch umständlich umrechnen muss. Der Sensor liefert mir die Temperatur in 2 Bytes.
Wieviele Messwerte kann ich da auf einem AVR ablegen.
Kann ich dazu den EEProm oder RAM benutzen oder welcher Speicher ist da für mich interesant ?
Vielen Dank
linux_80
13.07.2006, 00:01
Hallo,
kommt darauf an, was mit den Daten passieren soll, das SRAM hat insgesamt 1kB, da ist aber der Stack und die Variablen des Programms auch mit drin.
Das EEprom hat 512 Byte, die bleiben dann auch erhalten, wenn man den Strom abdreht, allerdings kann man den nur 100000 mal neu beschreiben.
dennisstrehl
13.07.2006, 00:06
Also, der RAM ist flüchtiger Speicher ist, d.h. er ist leer nachdem die Spannungsversorgung nen Moment weg war. Ich denke mal dass das nicht ganz in deinem Interesse ist.
EEPROM ist nicht sonderlich schnell, aber für nen Temperaturlogger wird's reichen. In die 512 Byte Speicher kannst du 512 Bytes reinlegen. Bei 2 Byte / Temperaturwert macht das 256 Werte. Nicht sonderlich viel.
Am besten wird's wohl sein, einen Teil vom Codespeicher zu benutzen, davon hast du immerhin 8kB zur Verfügung. Im Datenblatt sollte stehen wie das funktioniert, ansonsten frag halt nochmal nach.
MfG
linux_80
13.07.2006, 00:17
Den Flash kann man aber nur 10000 mal neu Beschreiben, und auch nur Seitenweise, beim M8 sind das immer 128 Byte auf einen rutsch.
Also brauchts erst immer 64 Werte mit 2Byte, damit eine Seite voll wird.
Nächste Alternative wäre ein Externer Speicher, per I2C o.ä.
Kommt halt drauf an was es genau werden soll.
das ganze soll ein Temperaturlogger für unsere Heizung werden und deshalb in Intervallen von höchstens 15min die Temperatur auslesen und speichern auserdem sollte das ganze auch mal mindestens einen Monat laufen können ohne das ich in den Keller muss zum auslesen.
vom Datenaufkommen müsste ich als überschlagsmäßig auf
Tag des Jahres + Jahr + volle Temperatur = 5Byte
24*4=96Byte
also etwa 100Byte pro Tag
Ich denke die vollen 2 Byte Temperatur brauche ich nur einmal am Tag und ansonsten zeichne ich nur die Temperaturänderung auf
ich hab grad gesehen das er ATM16 bzw. 32 ja auch viel mehr speicher hat vll nehm ich einen von denen...
auserdem sollte das ganze auch mal mindestens einen Monat laufen können ohne das ich in den Keller muss zum auslesen.
Falls du auch mal noch längere Zeit nicht danach schauen willst, kannst du ja auch eine MMC (Multimediacard) verwenden. Die sind relativ leicht anzusteuern und für die Menge an Speicherplatz extrem günstig Auf www.ulrichradig.de findest du nähere Informationen dazu.
ba4_philipp
14.07.2006, 12:59
Welche Auflösung brauchst du denn bei der Temperatur? Das bewegt sich ja eh nur in einem kleinem Fenster, das müsste doch reichen das dann mit einem Byte aufzulösen (ist dann wohl eh schon über der Messgenauigkeit) und Tag usw brauchst du ja auch nicht jedesmalzu speichern. Nur den Start der Aufzeichnung und dann weißt du ja das das nächste Byte immer 15min neuer ist.
Daraus nacher wieder eine Absolute Temperatur zu machen und das Umrechnen der Zeiten für die Messwerte kannst du dann nach dem Auslesen machen. Bzw. auch im Controller falls ein Display ran soll.
Gruß Philipp
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.