Guten Abend zusammen! :) Ich bin gerade in der Planungsphase für ein kleines Projekt und hätte gerne mal Euren Rat dazu. Also, mein Ziel ist es einen Datenlogger zu basteln, der über einen gewissen Zeitraum drei Zeitverläufe aufnimmt und speichert. Innerhalb von einer Stunde fallen nach meiner Berechnung 72,12kByte an (und eine Stunde sollte er schon aufnehmen können). Also ist die minimale RAM-Größe 128kB, damit ich auch noch etwas Spielraum für Erweiterungen habe. Als µC hatte ich den Atmega8 ins Auge gefasst, da er ausreichend schnell ist und genügend Reserve für kleinere Erweiterungen bietet. ... Dachte ich zumindest, bis ich zu dem Punkt kam, als ich mich damit beschäftigen musste den Speicher zu Planen. 20 freie Portpins müssten ja schon dafür herhalten. Liege ich damit soweit richtig? Wenn ja: Welchen µC/SRAM-Baustein würdet Ihr empfehlen? Wenn nein: Seid bitte nachsichtig mit mir. Ich versuche zu lernen. :) Mit den besten Grüßen Marcus
Ich würde einen seriell ansprechbaren Speicher nehmen, wie EEPROM oder SD-/MMC-Karte. Vorteil: brauchst nur 4 IP-Pins.
Wieso denn SRAM? Dann is ja sofort nach nem Spannungsverlust alles wech. Ich würde n externes Flash nehmen oder sogar ne SD karte da passt dann einiges drauf.
Ich würde ein serielles (SPI) Flash nehmen.Die gibt es preiswert in nahezu allen Grössen. http://www.atmel.com/dyn/products/param_table.asp?family_id=668&OrderBy=part_no&Direction=ASC Der AT25FS040 z.B ist 512KB gross,läuft mit 3V und ist vergleichsweise flott.Obwohl das bei deinen Datentransfers nicht so kritisch ist.
Hallo Aufreger, hallo Hauke! :) Danke schonmal für die schnelle Antwort. Ich dachte eigentlich an SRAM, weil mir dabei auf Anhieb einleutet, wie ich es ansteuern muss. Also eigentlich aus Purem Respekt vor seriell ansprechbaren Speichern. :) Man will sich ja als Anfänger auch nicht übernehmen. Aber jetzt mal zu Eurem Vorschlag mit dem Flash-Speicher. Könnt Ihr mir dazu eine Quelle empfehlen, damit ich mich genauer einlesen kann? Dann fällt es mir sicher leichter abzuschätzen, ob ich mir das schon zutrauen kann. Gruß Marcus
Was soll mit den 76,12 kByte anschließend passieren? (seriell an PC, Transport über Wechselspeicher, Analyse im µC...) Wie häufig werden die Daten erfasst? (EEPROMs sind ca. 100.000x wiederbeschreibbar...) Die einfachste Lösung ist bestimmt die Zwischenspeicherung auf ein EEPROM und anschließende serielle Übertragung.
@Ronny: Danke für den Link ich schaue ihn mir gerade an. Du hast recht. Ich messe wirklich nicht mit einer besonders hohen Frequenz. Daher sollte die Geschwindigkeit des Speichers relativ egal sein. @Jörg: Die Daten sollen an den PC übertragen und ausgewertet werden. Ich denke der Lebenszyklus eines EEPROMS ist mehr als ausreichend. :)
Hätte auch einen Datenlogger anzubieten. Ist älteren Datums (2002 oder so) mit Mega32, 2 Latches und 128kB SRAM. SRAM ist Batteriegepuffert, verliert also nix, geht aber nur bis max. 128kB, da die einen nicht negierten CS - Pin haben. DCF-Uhr ist dran, misst auf 8 Kanälen im Sekundentakt. Schaltplan hab' ich leider nur vom Nachfolger mit 3 Latches und 512kB Speicher, wenn Interesse besteht kann ich den ja als JPG posten.
Hallo Sonic! Ich weiss nicht, ob ich Dein Angebot richtig verstanden habe, aber ich würde den Datenlogger doch sehr gerne selber bauen. Sonst lerne ich ja nichts. :) Denen Schaltplan würde ich mir aber sehr gerne ansehen. Das wäre wirklich klasse, wenn Du bereit wärst ihn hier zu posten. Pufferung über Batterie habe ich auch vorgesehen. Allerdings wollte ich das ganze Board darüber versorgen. Nur den SPeicher zu versorgen wäre wahrscheinlich schlauer. Danke für den Tipp. Gruß Marcus
OK, dann stell' ich das Teil mal 'rein. Die Batteriepufferung ist bei diesem Teil nicht drin, weil er keinen nicht invertierten CS-Pin hat. Wie gesagt - ist älteren Datums, heute würde ich auch zu SD-Karten tendieren. Materialkosten sind ungefähr gleich, aber um ein Vielfaches mehr Speicher. Ich hoff' mal du kannst was damit anfangen!
Super danke! Ich denke ich muss noch etwas lesen, bis ich mich entscheiden kann. Die SD-Karte hat natürlich den Reiz, dass man bei ihrer Benutzung auf die serielle Datenübertragung zum PC verzichten könnte. Aber wie groß wird der Programmieraufwand, wenn man die Daten gleich in einem auswertbaren Format auf der Karte ablegen will?
Da gibt's schon einige gute Sachen, die schon eine FAT32 oder FAT16 auf die SD-Karte machen, dann kannste das am PC über den Kartenleser 'rüberziehen. Hab' nur rade keinen Link parat ..
Warum benutzt Du nicht den internen Program-Flash eines AVR für's Loggen? 128KB sollten da doch reinpassen und viele können 'sich selbst programmieren'. Keine externen Bauteile und platz-/geldsparend. Grüße, Freakazoid
Hallo Andre! 128kByte hat der ATmega8 aber nicht. Oder ahbe ich mich da jetzt so verlesen?
Hallo, > Als µC hatte ich den Atmega8 ins Auge gefasst, Nur gefaßt ;-))) Aber bevor er eine Menge Klimbim dabeikauft, Verdrahtungen realisiert (zusätzliche Fehlerquellen), ... kann er direkt mehr Geld (ca. 10 EUR) ausgeben für z.B. einen ATmega2560. http://www.atmel.com/dyn/products/param_table.asp?family_id=607&OrderBy=part_no&Direction=ASC Grüße, Freakazoid
Na klar, der lässt sich in der Hobbywerkstatt absolut problemlos verarbeiten! Von der Programmierung mal nicht gesprochen ..
Alle pins die man nich braucht vorher mit m cutter wegschneiden :P Dann ist der einfacher zu löten. Ne mal im ernst ... SD-Karte finde ich am Sinnvollsten, da du dir so die Serielle PC anbindung sparst, viel Speicher zur verfügung hast, falls du die ganze geschichte mal erweitern willst/länger laufen lassen willst. Und du hast sehr wenige leitungen.
@André: Hast du schonmal mit einem AVR-Program den Flash selbigen AVRs beschrieben?Dank Harvard-Architektur ist das nicht ganz sooo einfach.Vor allem wen die Anwendung nicht in den Bootloader-Bereich passt...
Hallo Andre :) In der dritten Person ist wirklich lange nicht mit mehr mit mir gesprochen worden. lach Nachdem ich gerade mal die Anforderungen für SD-Karten, die man mit einem FAT16-Dateisystem beschreiben will, überflogen habe, muss ich feststellen, dass ich auf jeden Fall mehr Speicher brauche. Ob ich das jetzt mit einem anderen Controller oder zusätzlichem Speicher mache muss ich mir noch überlegen. Vor möglichen Fehlern und dem größeren Aufwand fürchte ich mich eigentlich weniger. Ich lerne ja dabei. :) Auch wenn die Beträge nicht die Welt ausmachen, finde ich es doch immer sschöner, wenn man mit möglichst wenig finanziellem Aufwand ein Aufgabe löst. Aber vielen Dank für den Link. So eine Übersicht Hilft sehr beim Grübeln. Gruß Marcus
Die seriellen Flashs (SPI) besitzen meistens(immer?) eine Chip-Enable Leitung.Wenn man die an einen normalen I/O hängt,kann man mehrere der kleinen Flashs an einen Mikrocontroller hängen.Über I/O-Multiplexer auch deutlich mehr Flashs als I/O-Pins am Mikrocontroller verfügbar sind.Ist dann natürlich jedesmal mit einem weiteren IC pro Flash verbunden.Wenn man nur einige MB benötigt,macht sich das wirklich gut.Wenns deutlich mehr als 8MB werden soll,ist dann die bereits erwähnte SD-Karte die bessere Wahl.Allerdings ist man dann entweder auf ein FAT-Lib angewiesen (die es frei verfügbar geben sollte) oder beschäftigt sich einige Tage mit einem antiquierten Dateisystem.Allerdings ist das Einbinden einer Lib bei entsprechend großen Controllern dann auch nicht mehr das Problem.
Bevor ich mich für heute verabschieden muss möchte ich mich noch rechtherzlich bei Euch allen für Eure Auskunftsfreude, die ANregungen und Tipps bedanken. ... ach ja und natürlich habe ich auch noch eine Frage ;) Da mir die Idee mit der SD-Karte sehr gut gefällt habe ich überlegt, ob es Sinn machen könnte, die Daten ersteinmal auf einem EEPROM zu speichern, da ich ja sowieso zusätzlichen Speicher benötige. Anschließend könnte der µC auf Anforderung die Daten in einem FAT16 Dateisystem auf die SD-Karte schieben. So hätte ich zwei schön übersichtlich getrennte Programmteile. Andererseits hätte ich dann aber auch einen deutlich größeren Aufwand an Speicher, als wenn ich die Daten direkt auf die SD-Karte schiebe. Was wäre Eurer Meinung nach die sinnvollere Lösung? Oder doch ganz anders? Also bis hoffentlich Morgen. Ich wünsche eine Gute Nacht. :)
Bei deinen Datenraten ist es eigentlich egal ... EEPROM ist aber n ziemlicher Umweg. Ich würde einen Block ins RAM samplen und dann wenn der voll ist auf die SD-Karte schreiben.
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.