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
Hallo, schon alle Treffer hier im Forum durchgeschaut? http://www.mikrocontroller.net/search?query=datenlogger&forums[]=1&forums[]=19&forums[]=2&forums[]=4&max_age=-&sort_by_date=0#results Gruß aus Berlin Michael
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
Hast Du denn einen Mikrocontroller, der USB2.0 mehr oder weniger ausreizt? ;-)
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 ;) ??
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
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
Es gibt auch zur SD-Geschwindigkeit schon einige Beiträge hier im Forum.
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 ?
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
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
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.
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.
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
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.
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
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.
Der Vinkulum .. 2mA im standby. War wohl eher als Witz gedacht. Der kann wieder kommen wenn er 20uA im standby zieht.
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.
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.
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
>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...
Schreiben mit SPI ... GHeschwindigkeit... waren wir bei einem temperaturlogger oder bei einer Videokamera ?
>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
>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
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.
> 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
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...
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
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.