Moin, Ich möchte Daten (16bit Integer Zahlen) einigermaßen hochfrequent (16..32..64Hz, gerne auch öfter) per I2C einlesen und auf eine SD Karte Schreiben. Grundsätzlich kein großes Problem, jedoch soll das ganze auch einigermaßen Stromsparend werden, am liebsten würde ich mit einem 18650er Akku einige Tage durchmessen. So lange wie möglich eben. Es gibt eine große Auswahl an fertigen Boards mit AVR oder gar ARM Prozessor + uSD Sockel, jedoch finden sich kaum Informationen zum ungefähren Energiebedarf, schon garnicht bei Benutzung der einer SD Karte. http://www.exp-tech.de/adafruit-feather-32u4-adalogger http://www.exp-tech.de/adafruit-feather-m0-adalogger http://www.chip45.com/categories/avr_mikrocontroller_module_boards_sd-karte.php http://pjrc.com/teensy/index.html uva. Hat hier jemand Erfahrung mit solchen Boards oder wenigstens dem Energiebedarf einer uSD Karte? Ein eigenes Layout käme grundsätzlich auch in Frage, aber wenn man sowas für 20 oder 30€ kaufen kann... Vielen Dank, ich bin gespannt! Hauke
Hauke Haien schrieb: > am liebsten würde ich mit einem > 18650er Akku einige Tage durchmessen. Wenn alles ständig wach bleibt wirds wohl schwierig. Besser Controller mit 13,32,64,gern auch öfter, Hz aufwecken und Daten im RAM sammeln. Wenn RAM voll, SD-Karte wecken, Daten schreiben und alle weiterschlafen lassen.
Danke, den Gedanken hatte ich auch schon. Insgesamt habe ich noch keine Erfahrung mit SD Karten am Mikrocontroller. Weiss jemand, mit welchen Zeiträumen man für das Schreiben einiger Bytes oder auch Kbytes aus einem Buffer rechnen muss? Also eher uS oder ms? Angenommen ich habe einen AVR mit 1, 4 oder 8 MHz? Hängt das nur vom SPI Clock ab? Sorry, ich versuche mir gerade etwas Wissen zusammen zu picken...
Hallo Hauke, fast schon ein 99% passendendes Board welches auch gut im Stromverbrauch ist wäre das MSP-EXP430FR5994. für ca 15€ ist da sogar eine 8G SD Karte mit dabei, auch ein kleiner SuperCap. Die Demo-Apps decken deine Anwedung auch ab. http://www.ti.com/tool/msp-exp430fr5994 Der interessanteste part ist das FRAM, erst zyklisch ins FRAM schreiben....und wenn der FRAM buffer genügend gross ist mal die SD anmachen und dort ablegen. Kenne nichts was weniger Strom verbraucht und ohne selbst zu löten bei dem Preis auskommt. mfG Peter ;-)
Danke, Peter. Den MSP430 hatte ich garnicht mehr auf dem Schirm. Leider finde ich keine Abmessungen dazu, am liebsten wäre mir aber ein schmales, längliches Layout wie die meisten von mir verlinkten Boards.
Vermutlich ist es eher die Karte, die den Unterschied im Stromverbrauch ausmacht; vor Jahren fand ich bei Messungen an normalen SDCs Werte zwischen 35...90 mA, dazu kommen noch die beim Schreiben recht unterschiedlichen Verzögerungen.
>Weiss jemand, mit welchen Zeiträumen man für das >Schreiben einiger Bytes oder auch Kbytes aus einem Buffer rechnen muss? Geschrieben werden kann immer nur mindestens ein ganzer Sektor (512Byte) oder mehre Sektoren. >Also eher uS oder ms? Millisekunden. Ich habe da gelegentlich schon mal 300ms Peak gemessen. Die Zeit ist bei allen meine Karten unterschiedlich. >Angenommen ich habe einen AVR mit 1, 4 oder 8 MHz? >Hängt das nur vom SPI Clock ab? Nein, dann wären alle SD Karten ja gleich schnell. Steig besser auf einen SPI-Flash um. Da sind wenigstens min.-max. Zeiten fürs Schreiben im Datenblatt.
Hm, bei 64Hz kommen da über ein paar Tage ziemliche Datenmengen zusammen. Deshalb wünsche ich mir die sd Karte, die man schnell im PC auslesen kann. Mein Plan war, einfach die Startzeit der Messung zu loggen und danach die Sensorabfrage per Timer interrupt zu machen. Nun frag ich mich, wie sich das wohl mit variierenden Schreibzeiten verträgt. Und wie macht man das, wenn man die Daten buffert?
Du musst die Daten ohnehin im RAM sammeln und dann Blockweise auf die SD
Karte schreiben. Ich meine, ein Block hat 512 Bytes, fall ich mich da
richtig erinnere.
Solange du nicht auf die Karte zugreifst und sie nicht taktest,
verbraucht sie nur wenig Strom. Notfalls kannst du sogar die
Stromversorgung ganz unterbrechen, allerdings musst du sie dann bei
jedem Zugriff neu initialisieren.
> Mein Plan war, einfach die Startzeit der Messung zu loggen
Und wo kommt die Uhrzeit her?
holger schrieb: > Steig besser auf einen SPI-Flash um. Da sind wenigstens > min.-max. Zeiten fürs Schreiben im Datenblatt. +1 Der MX25L25735F z.B. hat 32MB, sollte also für 3 Tage reichen, schreibt immer 256 Byte auf einmal und braucht dafür max. 1.5ms und 20mA. Die restliche Zeit braucht er max. 50uA oder optional 20uA. Am PC hast ja Strom ohne Ende und der Akku muss wieder geladen werden. Bei der Gelegenheit kannst die Daten auf eine SD-Karte kopieren. Evt. kann man sie auch per Netzwerk übertragen?
Stefan U. schrieb: >> Mein Plan war, einfach die Startzeit der Messung zu loggen > Und wo kommt die Uhrzeit her? Ganz einfach. z.B. : Es wird ein Uhrenschaltkreis, z.B. DS32C35, installiert, welcher von einer Knopfzelle gepuffert, mitläuft. Im Prinzip alles schon fertig. Nur nicht auf absolut niedrigen Stromverbrauch getrimmt und die Verwendung von SDHC-Karten ist bei mir auch nicht möglich. (nur SD-Karte bis 2GB) Für ein transportables EKG-gerät läuft bei mir ein MSP430F1610. Alle 5ms werden 4 Spannungswerte gemessen, auf einer graph. Flüssigkristallanzeige als Kurve visualisiert und in einem Feld gesammelt. Nach 512Bytes (entspricht 1 Sektor) werden die Daten über SPI auf die SD-Karte geschoben. (es gibt auch schnellere Protokolle, aber keine Ahnung davon) Die Karte wird am PC ausgelesen, um die Daten zu bewerten. Ähnliche Projekte sind Temperatur-, Feuchte- und Druckmessungen mit Abtastzeiten im Sekundenbereich. kein Wochenendprojekt!!
:
Bearbeitet durch User
Ich habe bisher noch keine SDHC Karten ausprobiert. Was ist denn da anders, als bei SD Karten? Sind die nicht kompatibel (wenn entsprechend formatiert)?
eagle user schrieb: > Am PC hast ja Strom ohne Ende und der Akku muss wieder geladen werden. > Bei der Gelegenheit kannst die Daten auf eine SD-Karte kopieren. Evt. > kann man sie auch per Netzwerk übertragen? Nun, die Idee ist eigentlich, den Akku einfach zu tauschen und die Karte flott auszulesen oder ebenfalls zu tauschen. Ich könnte mir allerdings auch vorstellen, statt sd ein entnehmbares spi Flash Modul zu verwenden. Da bräuchte es dann eben noch ein auslesegerät, aber das ließe sich wohl machen...
Stefan U. schrieb: > Was ist denn da > anders, als bei SD Karten? Sind die nicht kompatibel keine Ahnung. Ich verwende Teile einer Bibliothek von Texas Instruments, welche vorwiegend für SD-Karten an einem MSP430Fxx gedacht sind.
Eventuell ist das Olimexino-STM32 für dich interessant, das enthält alles für den Betrieb von einer Lithium-Zelle (inkl. Ladeschaltung) und auch einen µSD-Slot (allerdings nur SPI, sollte bei der Geschwindigkeit aber reichen). Der Controller ist "nur" ein STM32F1 welcher nicht besonders sparsam ist, könnte aber trotzdem reichen. Eine RTC brauchst du auch nicht, denn der Controller hat eine eingebaut und würde dann permanent (im Stromsparmodus) laufen. Ich habe mal den Stromverbrauch beim Schreiben auf eine microSDHC-Karte mit einem STM32F4 gemessen. Dabei wurden jede ms 1KiB an Zufallsdaten generiert und alle 16ms ein 16KiB-Block herausgeschrieben. Im Anhang sieht man das Ergebnis (Messung am 1Ω-Shunt, also 1mV = 1mA) - die kleinen Peaks sind das Rechnen, der 200mA-Peak das Schreiben. Ist aber wohl nicht besonders genau aufgrund des großen Shunts. Wie meine Vorredner würde ich auch stark dazu raten, so viele Daten wie möglich im RAM zu sammeln (mind. 16 KB), die Karte einzuschalten, am Stück rauszuschreiben, und wieder auszuschalten. Ggf. sogar die Karte zwischendurch komplett ausschalten. Je größer der Datenblock, desto größer die Effizienz der Karte und desto schneller ist der Vorgang beendet (kumulativ) und desto geringer ist der Energieverbrauch.
:
Bearbeitet durch User
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.