Forum: Mikrocontroller und Digitale Elektronik Controller und Speicher


von Marcus (Gast)


Lesenswert?

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

von Aufreger deluxe (Gast)


Lesenswert?

Ich würde einen seriell ansprechbaren Speicher nehmen, wie EEPROM oder 
SD-/MMC-Karte. Vorteil: brauchst nur 4 IP-Pins.

von Hauke R. (lafkaschar) Benutzerseite


Lesenswert?

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.

von Ronny (Gast)


Lesenswert?

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.

von Marcus (Gast)


Lesenswert?

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

von Jörg B. (manos)


Lesenswert?

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.

von Marcus (Gast)


Lesenswert?

@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. :)

von Sonic (Gast)


Lesenswert?

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.

von Marcus (Gast)


Lesenswert?

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

von Sonic (Gast)


Angehängte Dateien:

Lesenswert?

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!

von Marcus (Gast)


Lesenswert?

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?

von Sonic (Gast)


Lesenswert?

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

von André K. (freakazoid)


Lesenswert?

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

von Marcus (Gast)


Lesenswert?

Hallo Andre!

128kByte hat der ATmega8 aber nicht. Oder ahbe ich mich da jetzt so 
verlesen?

von André K. (freakazoid)


Lesenswert?

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

von Sonic (Gast)


Lesenswert?

Na klar, der lässt sich in der Hobbywerkstatt absolut problemlos 
verarbeiten! Von der Programmierung mal nicht gesprochen ..

von Hauke R. (lafkaschar) Benutzerseite


Lesenswert?

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.

von Ronny (Gast)


Lesenswert?

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

von Sonic (Gast)


Lesenswert?

Mein Reden, Danke Ronny ..

von Marcus (Gast)


Lesenswert?

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

von Ronny (Gast)


Lesenswert?

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.

von Marcus (Gast)


Lesenswert?

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. :)

von Hauke R. (lafkaschar) Benutzerseite


Lesenswert?

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