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.
mhh... naja ein ad wert besteht maximal aus 4 stellen (0-1023 ) also 4bit bei 3 eingängen 4*3=12 bit die sekunde * 3600 sekunden = 43200 bit /8= 5400 Byte 5400 Byte/1024= 5,2 Kbyte oder irre ich mich?
>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.
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.
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.
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.
Stefan B. schrieb: > rs232 brauch ich doch ne datenleitung Ja, aber die wolltest Du doch sowieso verlegen. Stefan B. schrieb: > dann würde ich das ganze 1 Stunde lang im ram sammeln und dann das ganze > Packet über ein Kabel auf den PC übertragen.
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€)
Wie wäre es mit einem SPI-RAM: http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=2698 hans
> naja ein ad wert besteht maximal aus 4 stellen (0-1023 ) also 4bit 0-1023 sind binär 10 Bit, die bringst Du in 2 Byte unter und hast noch Platz über, z.B. für eine "letztes-Byte-Flag". Dezimal geaschrieben sind es 4 Stellen, also 4 Byte. Leichter als SPI- sind I2C-EEPROMS anzusprechen, ich nehme gerne die 24FC1025 http://www.microchip.com/wwwproducts/Devices.aspx?dDocName=en024639
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.