mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Flash zur Datenaufzeichnung nutzen


Autor: Klaus (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: mmerten (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Markus Kaufmann (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Direx (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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/...

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.

Autor: Ratber (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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 ?

Autor: Markus Kaufmann (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Eckhard (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.