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