Forum: Mikrocontroller und Digitale Elektronik Flash zur Datenaufzeichnung nutzen


von Klaus (Gast)


Lesenswert?

Hallo,

kann man den Flashspeicher bei den Atmegas irgendwie auch zur
Datenaufzeichnung zb. Sensorendaten nutzen(??Self Programable??. Der
interne EEprom ist ja nicht gerade rießig.

mfg

Klaus

von mmerten (Gast)


Lesenswert?

Die Anzahl der Schreibzyklen ist beim Programm-Flash beschränkt und auch
nicht unbedingt schnell, aber es gibt doch viele andere einfache
Möglichkeiten EEPROM oder DATAFLASH am I2C oder SPI Bus.

von Markus Kaufmann (Gast)


Lesenswert?

Hallo Klaus,

das Flash läßt sich nur vom Bootloader aus beschreiben, nicht von
normalen Programmen. Zwar ist der Bootloader eigentlich auch nur ein
Programm, aber Bootloader sind komplizierter zu programmieren, haben
eine gewisse Maximalgröße und vor allem dürfen sich die Werte nicht zu
oft ändern, ATMEL gibt 10.000 Lösch/Schreibzyklen an.

Ein 24C256 enthält 32KB EEPROM Speicher, braucht nur zwei Pins am
Prozessor (I2C-Bus), verkraftet eine Million Schreibzyklen und kostet
(bei Reichelt) nur 2,25€. Ich denke, das ist die bessere Lösung.

Markus

von Direx (Gast)


Lesenswert?

Direx glaubt das nicht:
beim 68HC908 geht's jedenfalls, und ich schätze, beim Atmel auch.

Siehe Motorola Application Note:
flash as eeprom in hc908qx    AN2346.pdf
Die Beschreibung ist relativ komliziert, weil die großen Wert darauf
legen, trotz Random-Betriebs wenig Erase-Zyklen zu erzeugen.

Wenn Du nur Loggen willst, also eine Datenreihe aufzeichnen und später
wieder ausgeben, geht's wesentlich einfacher.

Dennoch gilt: die eigenliche Schreibroutine muss im Boot-Flash oder im
Ram ablaufen.

an Markus: Ein Bootloader kann auch wesentlich mehr als nur das Flash
beschreiben.
Dass es NUR vom Bootloader aus geht, stimmt zumindest beim Motorola
nicht.

Gerade hab ich das PDF der ATtiny2313 gelesen (S.154):
http://www.atmel.com/dyn/resources/prod_documents/doc2543.pdf

The device provides a Self-Programming mechanism for downloading and
uploading program code by the MCU itself. The Self-Programming can use
any available data interface and associated protocol to read code and
write (program) that code into the Program memory.

The Program memory is updated in a page by page fashion. Before
programming a page with the data stored in the temporary page buffer,
the page must be erased. The temporary page buffer is filled one word
at a time using SPM and the buffer can be filled either before the Page
Erase command or between a Page Erase and a Page Write
operation: ....

Da ist zwar die Rede von program code, aber mit Daten geht's bestimmt
genau so.

von Ratber (Gast)


Lesenswert?

Naja,kommt immer drauf an wie oft aufgezeichnet werden soll.

Bei wenig Zyklen kann man das auch im Flash machen.

Bei mehr einfach wie oben schon gesagt nen Externes EEProm an SPI oder
I2C.

Am Preis kann es ja nicht liegen oder ?

Oder ist es etwa der Benötigte platz der Schaltung ?

von Markus Kaufmann (Gast)


Lesenswert?

Hallo Direx,

da hast Du ja einen alten Thread ausgegraben.

Die verschiedenen Prozessorfamilien haben alle unterschiedliche
Möglichkeiten und Funktionen. So kann ein AVR z.B. keinen Maschinencode
im RAM ausführen, während das für viele Prozessorfamilien überhaupt
kein Problem ist.

Ich hab' auch nicht behauptet, daß der Bootloader nur das Flash
beschreiben kann, sonst könnte man damit ja keinen RS232-Bootloader
oder dergleichen schreiben. Der Hauptunterschied ist bei den AVRs, daß
der Bootloader auch das Flash beschreiben kann, was normale Programme
nicht können. Das ist aber dabei Absicht, denn so kann auch ein amok
laufendes Programm nie den Programmcode zerstören. Ein Reset (evtl.
sogar durch den Watchdog) und schon ist wieder alles in Ordnung.

Markus

von Eckhard (Gast)


Lesenswert?

Hallo,

das Problem ist eher, das der AVR das aufgrund seine Harvard
Architektur nicht zuläßt, der 68HC908 hat mit seiner Von Neumann
Architektur da keine Probleme. Gegen versehenliches löschen gibt es
möglichkeiten eine  Flash Bereich zu schützen ( Flash Block Protection
). Was die Schreibzyklen betrifft kann man das meist mit ein wenig
denken in den Griff bekommen.


Eckhard

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.