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,
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
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
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.
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.
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...
>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