Forum: Mikrocontroller und Digitale Elektronik Beste Lösung für Datenlogger?


von Auli (Gast)


Lesenswert?

Hallo,
ich plane ein Projekt um Temperaturdaten zu loggen. Habe da an einen 
At90Usb als Controller gedacht um die Daten anschließend per Usb 
auszulesen. Hätte auch daran gedacht das ich die Daten auf einer Sd 
Karte speichere.
Was hält ihr von diesem Ansatz bzw. wie würdet ihr das machen. Um lange 
genug speichern zu können hätte ich da so an einen Speicher von 1Gb 
gedacht.

MFG

von Michael U. (amiga)


Lesenswert?


von Auli (Gast)


Lesenswert?

Hallo,
ja aber es geht mir insbesonders um die Geschwindigkeit. Ob das die 
beste Lösung ist. Die Sd Karte wird ja mit SPI angesprochen, und ist Spi 
schnell genug um USB 2.0 mehr oder weniger auszureitzen?

MFG

von Gast123 (Gast)


Lesenswert?

Hast Du denn einen Mikrocontroller, der USB2.0 mehr oder weniger 
ausreizt? ;-)

von Neubi (Gast)


Lesenswert?

wie oft möchtest du denn deine temperatur in der sekunde messen ? - bei 
480mbit/s die usb2.0 max. kann weis ich nicht ob das schnell genug ist 
für dich ;) ??

von Peter D. (peda)


Lesenswert?

Neubi wrote:
> wie oft möchtest du denn deine temperatur in der sekunde messen ?

Habe ich mich auch gefragt.

Bei 1GB, 1Jahr und 16Bit komme ich auf 60ms.
Außer einer riesig aufgeblähten Datenflut sehe ich keinen Sinn darin.
Eine Minute sollte in der Regel völlig ausreichen.


Peter

von Auli (Gast)


Lesenswert?

Hallo,
mein Ansatz war dahin gemeint das ich dann die Daten die auf der Sd 
Karte gespeichert werden über Usb auslese.
Also von der Sd Karte zum Controller und dann über Usb raus.
Das ganze wird in ein Gehäuse verpackt dass ich dann wohin lege und dann 
die Temperatur logge (ohne Usb Anbindung).
Oder gibt es eine bessere Lösung als eine Sd Karte was sich aber in der 
Selben Preisspanne bewegt.

MFG

von Martin (Gast)


Lesenswert?

Es gibt auch zur SD-Geschwindigkeit schon einige Beiträge hier im Forum.

von vielleicht so (Gast)


Lesenswert?

Bei einem Logger sollte der Stromverbrauch im Vordergrund stehen, nicht 
das Interface. Man setzt das Interface auf Standby, und vergleicht den 
Strom. Auch wenn das Auslesen nach einem Jahr eine Viertelstunde oder 
laenger betraegt, was soll's ?

von Mario (Gast)


Lesenswert?

Ich hab da vor einer Weile mal was geschustert, auch mit SD-Karte und 
AVR. Allerdings damals noch mit Bascom programmiert.
Das Auslesen erledigte ich über die RS232 Schnittstelle und einer 
Terminalsoftware, welcher mir einen Log speicherte, den ich dann in ein 
Excel-Sheet kopierte.
Bei der Spannungsversorgung beging ich den grössten Fehler...ich 
vernachlässigte den Quiescent Current des Reglers... der war recht 
hoch... Also am besten einen Low-quiescent-current Regler einsetzen oder 
gar keinen.
Gespiesen wurde über 4 serielle AA-Batterien. Die halten recht lange. 
Und eine 1GB SD hatte Platz für etwas über 500 Millionen Messwerte... :)

http://mauerer.m.googlepages.com/autonomertemperaturlogger

Gruss

von Michael U. (amiga)


Lesenswert?

Hallo,

man könnte auch die SD-Karte dann einfach aus dem Logger ziehen und in 
einen Cardreader am PC stecken...

Ich möchte jedenfalls nicht unbedingt über SPI 1GB von einer SD-Karte 
mit einem MC zum PC schaufeln wollen, wenn es sich irgendwie vermieden 
läßt.

Gruß aus Berlin
Michael

von istselberbauenhiersinnvoll (Gast)


Lesenswert?

Da gibts beim grossen c was fertiges.

istselberbauenhiersinnvoll?

von vielleicht so (Gast)


Lesenswert?

Sicher kann man selber bauen. Man muss aber unbedingt bei jeder 
Komponente den Stromverbrauch anschauen, auch bei pullup Widerstaenden, 
und um jedes ua kaempfen. Ein pullup von 1MOhm zieht bei 3.3V schon 
3.3uA. Spannungsregler gibt's schon mit 20uA Quiescent. Waehrend dem 
Schreiben braucht man 3.3V, im Powerdown genuegen noch 1.8V bei einem 
AVR.

von vielleicht so (Gast)


Lesenswert?

Falls  man die SD karte in den PC stecken will benoetigt man ein FAT 
drauf, sonst benoetigt man nichts. Eine FAT implementierung auf einem 
AVR, von der ich gehoert habe, hat noch  eine datenrate von 50kBytes, 
verpufft also um die 100 Befehle pro geschriebenes Byte. Moeglicherweise 
gibt es effizientere FAT. Sonst wuerd ich's sein lassen.

von Auli (Gast)


Lesenswert?

Also sollte ich das ganze so planen das ich einen möglichst 
Energiesparenden Controller benutze der die Daten auf die SD Karte 
speichert und ich sie dann herausnehmen kann und in den Pc stecke.
Gäbe es noch andere Speichermöglichkeiten in diese Größenordnung die 
schneller sind, sich aber im finanzierbaren Raum befinden?

MFG

von vielleicht so (Gast)


Lesenswert?

Eine andere Ueberlegung ist die Abtastgeschwindigkeit. Die oben 
genannten 60ms sind in den meisten Faellen uebertrieben. Damit kann man 
noch 8Hz darstellen. Allenfalls genuegt ein Wert pro Minute. Dann sollte 
man bedenken, dass USB & SD Speicher NAND Flash sind, das guenstigst 
moegliche. Beide beinhalten schon Wearleveling. Wenn man mit den nackten 
Chips arbeitet so muss mann das Wearleveling selbst machen, oder auf NOR 
Flash ausweichen.

von Tubie (Gast)


Lesenswert?

Ich habe meinen Datenlogger, welcher bestandteil meiner 
Heizungssteuerung ist mit dem Vinculum VDRIVE2 (USB Stick Laufwerk) 
realisiert. Klappt wunderbar - einfach per SPI/UART  OPEN, WRITE, CLOSE 
Befehle verschicken und der rest (FAT und Verzeichnisstruktur) macht das 
VDRIVE2 von selbst.

Hier gibt es 2 Möglichkeiten, das VDRIVE kostet mit Versand ca. 60€. Der 
Chip VNC1L ca. 15€ dieser ist im Drive verbaut und muß, wenn er nackt 
ist lediglich mit einer vom Hersteller zur Verfügung gestellten Firmware 
bespielt werden.

Wenn nur 1* pro Minute was geschrieben werden soll, kann man entweder 
ganz die Stromversorgung abschalten oder Prüfen, was Stick+Vdrive im 
Idle Modus verbraten. Evtl. kann man noch hergehen und 1 Std (60 Werte) 
im RAM de µC speichern um dann bei vollem Speicher das Laufwerk zu 
aktivieren und die Daten reinzuschreiben.


Gruß,
Tubie

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Das Lesen der Karte geht deutlich schneller, als das Schreiben. Der 
Flaschenhals ist aber der Controller mit seiner geringen Taktfrequenz, 
so daß das SPI-Interface mit maximal 8Mhz laufen kann. USB2.0 wird damit 
im Leben nicht ausgenutzt. Der maximale Lesedurchsatz dürfte bei etwa 
500kByte/sek. liegen. Als Alternative würde ich die Nutzung von WinHex 
vorschlagen, damit kann man auch Karten ohne FAT in jedem Windows-PC 
einlesen und die Daten in ein File schreiben. 2GB laufen hier in 3..4 
Minuten durch. Ein Interface braucht der Logger dann gar nicht.

von vielleicht so (Gast)


Lesenswert?

Der Vinkulum .. 2mA im standby. War wohl eher als Witz gedacht. Der kann 
wieder kommen wenn er 20uA im standby zieht.

von Sandro K. (maexchen)


Lesenswert?

vielleicht so wrote:
> Der Vinkulum .. 2mA im standby. War wohl eher als Witz gedacht. Der kann
> wieder kommen wenn er 20uA im standby zieht.

Der Vorschlag war ja, ihm die Speisung zu kappen, dann geht das schon.

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Die Speisung zu kappen macht keinen Sinn, solange Datenleitungen mit dem 
Rest der Schaltung verbunden sind, über die dann Strom in den VNC 
fließt.

von Peter Diener (Gast)


Lesenswert?

Hallo zusammen,

meine Empfehlung schaut folgendermaßen aus:

Wenns eine SD-Card sein soll, die die Daten speichert (was ich 
prinzipiell befürworte) sollte der Mikrocontroller auf 3,3 Volt laufen, 
um Probleme mit dem Interface zu vermeiden. Also einen low-voltage AVR 
oder gleich einen MSP430 verwenden.

SPI ist so schnell, wie du es einstellst, kann auch 10 Mbit/sec sein.
Meine Karten können das auch noch.

Über einen MC mit USB auszulesen halte ich für großen Blödsinn, dafür 
muss man ja dem MC beibringen, dass er ein Massenspeicher ist, das ist 
mit allem Ärger rund um USB verbunden. Da bin ich für die Lösung mit FAT 
und dem Auslesen im Cardreader mit dem PC. Dann hast du zudem die 
Möglichkeit auch jeden anderen MC als einen USB-fähigen zu verwenden.

Aber Vorsicht mit FAT: Jede Änderung an einem File wird in der 
File-Allocation-Table abgespeichtert, der betroffenen Sektor der FAT 
also bei jedem Messwert gelöscht und neu geschrieben. Das musst du 
verhindern, die FAT also im RAM halten und erst bein Shutdown speichern 
und sonst event. regelmäßig einmal in der Woche. Wenn du die FAT dauern 
überschreibst, sind schon nach kurzer Zeit die maximalen Schreibzyklen 
der Karte überschritten und das Flash ist zerstört.

Das kann man am PC mit einem USB-Stick ausprobieren, einfach einen 
Ordner mit 50000 Dateien draufkopieren. Das macht man 3 mal und der 
Stick ist kaputt. Also auf die Schreibzyklen der FAT aufpassen!

Wenn du einen ATMega1281V nimmst, hast du 8 kB Arbeitsspeicher, 
erweiterbar auf 64 kB extern, da kannst du die FAT mühelos puffern, und 
der läuft mit 3,3 Volt (das ist wichtig, alle anderen Lösungen machen 
gern Ärger, kann man im Forum oft genug lesen).


Viele Grüße,

Peter

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

>SPI ist so schnell, wie du es einstellst, kann auch 10 Mbit/sec sein.

Zumindest bei AVRs ist fSPI max. 1/2 fCPU. Schneller ist nicht. 
Lediglich bei 20Mhz AVRs kann man 10Mbit/s fahren, was dann aber auch 
nicht dem Nettodurchsatz entspricht -> Kommandooverhead, warten auf 
Busy-Ende der Karte, warten auf Ende des gerade übertragenen Bytes...

von vielleicht so (Gast)


Lesenswert?

Schreiben mit SPI ... GHeschwindigkeit... waren wir bei einem 
temperaturlogger oder bei einer Videokamera ?

von Tubie (Gast)


Lesenswert?

>Die Speisung zu kappen macht keinen Sinn, solange Datenleitungen mit dem
Rest der Schaltung verbunden sind, über die dann Strom in den VNC
fließt.

Was spricht dagegen die µC Leitungen, welche an den VDrive gehen 
hochohmig zu schalten? Die müssen ja nur dann eingeschaltet werden, wenn 
was geschrieben/gelesen werden sollte.

Überhaupt hat der USB-Stick den riesen Vorteil, das man auch mal ganz 
bequem mal eine .ini Datei draufspielen kann und dan macht der µC genau 
das, was in der Datei steht. ;) Ist nämlich mein nächstes Projekt, was 
die Heizungssteuerung angeht.


Grüße,
Tubie

von Tubie (Gast)


Lesenswert?

>Das kann man am PC mit einem USB-Stick ausprobieren, einfach einen
>Ordner mit 50000 Dateien draufkopieren. Das macht man 3 mal und der
>Stick ist kaputt. Also auf die Schreibzyklen der FAT aufpassen!

War da nicht mal was gewesen, das sich bei den ganzen Flash 
Speichern/Karten die Speicherzellen, welche besonders oft beschrieben 
werden irgendwann als Defekt markiert werden und dann woanders 
hingeschrieben werden?

Bin mir nicht sicher aber meine darüber mal was gelesen zu haben.


Gruß,
Tubie

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Ja - sowas soll es geben ;-). Trotzdem habe ich in der Vergangenheit 
diverse Billigprodukte durch simples Schreiben kaputt bekommen, 
wohingegen Markenprodukte zuverlässig arbeiten. Du vertraust Deinem 
VDrive ja wirklich sehr..


>Was spricht dagegen die µC Leitungen, welche an den VDrive gehen
>hochohmig zu schalten? Die müssen ja nur dann eingeschaltet werden, wenn
>was geschrieben/gelesen werden sollte.

Nichts spricht dagegen. Mir persönlich sind "Vcc-gekappte" ICs in einer 
Schaltung immer ein rotes Tuch.

von Tubie (Gast)


Lesenswert?

> Du vertraust Deinem VDrive ja wirklich sehr..

Ist halt eine sehr einfache Sache wenn ASM Programmiert und kein C kann. 
Also auch nicht auf fertige FAT Libs zurückgreifen kann. Das nächste mal 
wird es allerdings der VNC1L Chip werden.


> Mir persönlich sind "Vcc-gekappte" ICs in einer
> Schaltung immer ein rotes Tuch.

Warum eigentlich? Noch nie von einer Schaltung die Versorgung 
abgeklemmt, um sie dann, wenn sie wieder benötigt wird unter Strom zu 
setzen? Wenn man vorher die Zuleitungen hochohmig macht, also kein Strom 
ohne Vcc in den Chip fließen kann passiert doch nix.

Gruß,
Tubie

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Nun, Du sprichst von einem Chip, der an einem programmierbaren 
Controller hängt. Abhängig von der geistigen Fitness des vor dem Moitor 
sitzenden Humanoiden kann es auch mal sein, daß betreffeder Chip keine 
Vcc hat und die Ausgänge des Controllers doch nicht hochohmig sind. 
Hmmm...

von Tubie (Gast)


Lesenswert?

Da muß ich Dir natürlich absolut recht geben. Die Software sollte dann 
schon passen. Habe sowas bisher immer über einen Jumper gelöst. Der wird 
erst dann umgesteckt, wenn alles zu 100% funktioniert. Aber wie immer 
kann man ein kleines Rest Risiko nie ausschließen.

Gruß,
Tubie

von Auli (Gast)


Lesenswert?

Sehr gute Ansätze, hab mich auch ein wenig umgesehen und die Sd Karte 
ist die günstigste Lösung. Werde mich für den ATmega644P entscheiden, 
dieser hat genug RAM um zu Puffern und gehört zur Pico Power Serie.
Werde das ganze auf einer mini Sd Karte abspeichern zum späteren 
auslesen am PC.

MFG

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Paß bei den SD-Karten auf, daß Du keinen Billigramsch kaufst. Lohnt sich 
nicht.

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
Noch kein Account? Hier anmelden.