PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Welche Hardware sollte ich verwenden?



DanielSan
30.07.2009, 22:18
Hi,

Ich habe vor, einen Datenlogger zu bauen. Das hab ich schonmal mit einer C-Control gemacht, hat gut funtkioniert. Allerdings sind diesesmal meine Anforderungen höher.

Es sollen 3 10bit AD werte gemessen und gespeichert werden. Wie oft ich das pro Sekunde machen möchte ist noch nicht ganz klar aber mindestens 10mal und das dann über mindestens 30min. Dann möchte ich die Daten noch 1 mal pro Sekunde auf einem LCD ausgeben. Allerdings nicht den AD Wert sondern den wirklichen Wert also nicht 0-1024 (oder 0-1023?) sondern zb. 12,345.

Ich habe hier eine 256mb microSD karte rumliegen könnte man die dazu verwenden? Groß genug sollte sie ja sein.

Meine Frage ist jetzt, welche Hardware brauche ich?
Ist ein Atmega644 das Richtige für mich?
Habe ich dann noch genug ressourcen um einige kleinere Berechnungen mit den Werten durchzuführen?
Bei der Programmiersprache kommen für mich entweder Basic oder C in frage.

Danke
MFG Daniel

Besserwessi
30.07.2009, 23:10
Die micro SD karte sollte als Datenspeicher gehen. Dafür gibt es auch fertige Routinen wie man daten auf SD speichert und ließt. Wenn man will, kann man einen Adapter von MicroSD auf normal SD als Steckplatz nutzen. Wenn man vorsichtig ist, sollte es gehen direkt an den Adapter kabel zu löten.

Bei der Stromversorgung wäre da vermutlich 3.3 V die bessere Wahl, dann braucht man für die SD-Karte auch keine Pegelwandler mehr. Ob auch direkt 3 V gehen müßte man vorher klären.


Der Mega644 ist schon ziehmlich groß. Das wesentliche wird die der benötigte Platz im SRAM sein, denn zum ansprechen der SD Karte braucht man zum Teil relativ viel RAM. Ein Mega324 sollte aber reichen. Ob auch ein Mega168 reicht, hängt von den Routinen für die SD karte ab. Platz im Flasch sollte auch beim Mega168 noch genug haben,

Wenn man keinen extra Leser für die Karte hat,sollte man eine Schnittstelle zum PC einplanen.

Beim LCD sollte man darauf achten, das man es ggf. auch abschalten kann um Strom zu sparen. Vor allem wenn man mehr daten Speichern will. Für nur 30 Min und nur 10 Werten je Sekunde (= 40 Bytes/s) reichen 72 kBytes an Speicher. Mit 256 MBytes kann man viel länger aufzeichnen.

Wenn man nicht basteln, sondern nur Programmieren will, wäre eventuell der ATMEL Butterfly ein passende Hardware. Ich wiess nur nicht genau ob noch 3 AD Kanäle frei sind.

DanielSan
31.07.2009, 08:07
Hi Besserwessi,

danke für deine Antwort.

Wenn ich nur so wenig speicher benötige, wäre es dann nicht auch eine Lösung ein EEPROM zu verwenden?
Wäre da der Programmieraufwand geringer?
Ist ein EEPROM schneller oder langsammer im lesen und schreiben als eine microSD? Bzw. reicht es von der Geschwindigkeit her?
Wenn ich ein EEPROM verwende brauche ich ja auch keine 3V mehr oder?
Wie wäre da beispielsweise sowas ST 24C256 MN6 :: CMOS seriell EEPROM, 5V, SO-8?

Kann ich rein theoretisch auch mehrere EEPROM´s verbauen und dann prüfen auf welchem schon was drauf ist und dann auf einem schreiben welches leer ist? Wenn ich z.b. 3 EEPROM´s habe das ich dann 3 Messreihen aufnehmen kann ohne zwischendurch an den PC zu müssen.

Der Atmega644 sieht ja ganz gut aus und so teuer ist der ja auch nicht. Ein bisschen luft nach oben würde ich schon gerne haben.

Danke
MFG Daniel

Besserwessi
31.07.2009, 09:21
Man kann auch ein externe EEPROM nutzen. Da wird die Programmierung noch etwas einfacher. So groß ist der Unterschied aber nicht, denn für SD karten gibt es ja auch schon feritge Software Teile. Mit dem Seriellen EEPROM baucht man weniger Pufferspeicher und sollte dann auch mit einem Mega88 oder ähnlich auskommen.

Das 24C256 EEPROM sind aber nur 256 kbit oder 32 kBytes. Das wäre also eher zu wenig. Mehr als ein Speicher geht, ist aber nur bedingt sinnvoll. Bis 4 gleiche dieser Chips sollten am I2C bus gehen.

Da schon lieber ein größerer Chip.
Die nächst größere Familie sind die Dataflash chips. Da ist man mehr im Bereich um 1 Mbyte.

Man kann natürlich speichern welcher Teil belegt ist, und welcher nicht.

Die Geschwindigkeit reicht für die 10 Hz Datenrate allemal aus. Selbst das I2C eeprom kann noch 64 Bytes in etwa 5-10 ms speichern. Die Seriellen EEPROMS sind dabei eher langsam, Dataflash und SD karte in etwa gleich schnell.

DanielSan
31.07.2009, 09:38
Ok

hab gerade nochmal schnell gegoogelt. "AVR-DOS for Bascom" ist das das stichwort wo ich weiter ansetzen kann?
Hab ich das richtig verstanden, das ich auf die SD Karte mehrere Dateien schreiben kann? Dann könnte ich ja viele Messreihen aufnehmen bevor ich wieder zum PC muss.
Wie schnell wäre denn dann so eine SD Karte in Verbindung mit einem Atmel?

Danke
MFG Daniel

Besserwessi
31.07.2009, 10:07
Eine SD Karte kann mehrere Dateien beinhalten, ähnlich wie ein USB Stick. Der Zugriff ist dann aber etwas komlizierter und langsamer. Man wird da wohl auf fertige Code teile wie das AVR-DOS zuzückgreifen. Was man da an Speicher braucht müßte in der Beschreibung stehen. Mit wenig Speicher geht es auch, wird dann aber unter umständen recht langsam.

Die SD karte wird über eine ART SPI interface angesprochen. Für 1 byte braucht man da etwa 18 Zyklen. Dazu kommt dann noch etwas Zeit für den overhead, also die Adressen und Befehlen zum schreiben usw. . Damit wird man wohl 20-25 Zyklen pro byte brauchen. Zum eigentlichen schreiben könnte die SD karte dann auch noch mal etwas zeit brauchen, könnte aber auch sein, dass man während der Zeit schon die nächten Daten übertragen kann. Für die Daten vom internen AD-Wandler sollte das aber ausreichen. Die GEschwindigkeit sollte bei der Beschreibung des SD Karten Codes auch mit dabei stehen.

DanielSan
01.08.2009, 08:29
Hi,

ich hab mir nochmal einiges durchgelesen. Aber eine Sache will mir nicht in den Kopf, ich möchte den Atmega644 auf 20Mhz laufen lassen. Jetzt gibt es ja verschiedene möglichekeiten (Oszilator / Quarz) ich würde es gerne mit einem Quarz machen. Wäre dieser hier dann das Richtige?
http://www.pollin.de/shop/shop.php?cf=detail.php&pg=NQ==&a=MzE2OTc4OTk=

Da ich mir nicht 100% sicher bin, würde ich noch gerne wissen, ob ich diesen Sensor http://www.freescale.com/files/sensors/doc/data_sheet/MMA3201D.pdf
per AD Wandler auswerten kann. Es gibt ja auch Sensoren die per PWM ausgewertet werden. Manche können sogar beides. Ich bin mir da wie gesagt nicht ganz sicher.

Danke
MFG Daniel

021aet04
01.08.2009, 09:14
Der "Quarz" ist falsch. :cheesy: :cheesy: Wenn ich den Link verwende kommt ein Display
Der MMA3201 hat einen Analogausgang. Auf Seite 5 ist ein Plan, wie man ihn anschließt. Die Ausgänge haben bei 0g 2,5V (damit sie pos. und neg. Kräfte messen können)

DanielSan
01.08.2009, 09:25
Mh komisch wie konnte das denn passieren?^^ Das Display will ich garnicht haben XD

Naja hier der richtige Link (hoffentlich)
http://www.pollin.de/shop/shop.php?cf=detail.php&pg=Mw==&a=Njc5OTY3OTk=&bcka=Njc5OTY3OTk=&bckpg=Mw==

021aet04
01.08.2009, 09:34
Der passt. Vergiss die Kondensatoren nicht.
MfG Hannes

DanielSan
02.08.2009, 12:06
Hi,

Ich weiss zwar nicht ob das noch hier rein passt (ich denke schon ist ja noch Hardware) aber ich wollte auch nicht extra einen neuen Thread eröffnen.

Ist die Schaltung wie ich sie gezeichnet habe so i.O.?
Man schaut auf die Leiterbahnen, also auf die Platine von unten.
Besonders an der Stelle mit AREF AGND und mit dem Pullup Widerstand am RESET bin ich mir nicht sicher ob das so Passt.
Wie ich oben ja schon geschrieben habe, möchte ich AD Wandler verwenden.

Wenn ich die Platine gezeichnet habe, werde ich sie auf meiner CNC Fräsen.

Danke
MFG Daniel

Besserwessi
02.08.2009, 12:37
Es fehlen noch die Kondensatoren zur Entkopplung der Spannungsversorgung: je einer links und rechts vom Chip wären ideal. Gerade wenn man den AD-Wandler nutzen will, solle man auf eine saubere Spannungsversorgung achten. Bei der Brücke für VCC unter dem Chip kann man später ggf. auch eine Ferriteperle oder ähnliches vorsehen.

Der 7805 geht besser, wenn er auch vor dem Regler einen Kondensator hat. Je nach Spannungsquelle ist ggf. auch ein Elko sinnvoll.

Die 10 K am Reset kommen schon hin.

DanielSan
02.08.2009, 13:24
Hi,

als Spannungsversorgung werde ich einen 7,2V NiCd Akku einsetzen, später evtl. einen 2S LiPo. Das Teil soll nämlich in mein Modellflugzeug.


je einer links und rechts vom Chip wären ideal

Meinst du damit den 7805? Sollte das dann so aussehen wie auf dem Bild (Anhang)

Wie genau sieht das dann aus wenn der 7805 am Input einen Kondensator hat?

MFG
Daniel

Besserwessi
02.08.2009, 14:36
Am wichtigsten sind die Entkoppelkondensatoren am µC. Da einer bei AVCC-AGND und einer bei VCC-GND. Der 7805 ist nicht so weit weg, und kann die beiden kondensatoren mit nutzen als Kondensatoren hiner dem 7805. Wenn man bei 7805 einen Kondensator dahinter hat, sollte man auch einen davor haben, so wie in dem Plan gezeigt, nur das Co schon durch die beiden Kondensatoren am µC da ist.

Wenn man nur 7,2 V als Spannung hat, sollte man statt dem 7805 besser einen low drop regler nehmen. Sonst hat man am Ende keine 5 V mehr, wenn die Akkuspannung unter 7 V sinkt.