Hi,
Man kann ja auf den STM32 den Flash benützen um einen EEPROM zu
simulieren, jedoch frage ich mich, ob sich das lohnt für eine Anwendung,
wo man vielleicht 10 mal pro Monat was speichert? Die Daten bewegen sich
bei meiner Applikation auch nur um die 32kByte. Die Schreibzyklen sind
ja das Problem, da nur etwa 1/10 Schreibzyklen wo in einem normalen
EEPROM möglich sind und nur Page weise geschrieben werden kann. Lesen
kann man ja aber so oft wie man will.
Hat jemand von euch schon Erfahrungen mit dem virtuellen EEPROM
gesammelt und schon mal den EEPROM zu oft beschrieben?
Bert S. schrieb:> Hat jemand von euch schon Erfahrungen mit dem virtuellen EEPROM> gesammelt und schon mal den EEPROM zu oft beschrieben?
Ersteres ja, zweiteres nein. Es war für mich im Endeffekt wesentlich
einfacher, ein simples 93C46 anzudocken, als eine Page für das virt.
EEPROM zu spendieren.
Bert S. schrieb:> edoch frage ich mich, ob sich das lohnt für eine Anwendung,> wo man vielleicht 10 mal pro Monat was speichert?
Wenn du wirklich nur 10x im Monat schreiben musst,
und der Flash 10000 Schreibzyklen hält:
Ergibt das 1000Monate oder 83 Jahre. Ich denke die wenigsten
Elektrogeräte werden diese Haltbarkeit benötigen...
Servus,
was mir in dem Zusammenhang aber mal aufgefallen ist: In der original
ST-EEPROM Emulation wird bei jedem Reset des Controllers immer die
bereits als "gelöscht" markierte EEPROM-Page zur Sicherheit nochmal
gelöscht - und die Hardware führt die Löschoperation auch tatsächlich
aus, was man daran sieht, daß der Flash-Zugriff für die Erase-Zeit
blockiert ist. Da stellt sich die Frage, ob diese Löschzyklen nicht auch
das Flash abnutzen?
Thomas E. schrieb:> Servus,>> was mir in dem Zusammenhang aber mal aufgefallen ist: In der original> ST-EEPROM Emulation wird bei jedem Reset des Controllers immer die> bereits als "gelöscht" markierte EEPROM-Page zur Sicherheit nochmal> gelöscht - und die Hardware führt die Löschoperation auch tatsächlich> aus, was man daran sieht, daß der Flash-Zugriff für die Erase-Zeit> blockiert ist. Da stellt sich die Frage, ob diese Löschzyklen nicht auch> das Flash abnutzen?
Stimmt, und auch bietet diese Library von ST nur das Schreiben einer
Variablen auf einmal an, so dass man bei 100 Variablen schon 100 mal
eine Page schreibt.
Hier mal die Library die ich gefunden habe für meinen STM32F3. Man kann
ja da wirklich nur ein HalfWord auf einmal schreiben. Beansprucht das
den Flash nicht extrem?
Bert S. schrieb:> Edit: Ok, habe wohl eine falsche Library erwitscht, es gibt andere die> das besser machen.
Ich kenne nur die Applikation von ST, wo solange die Änderungen von
beliebigen (logischen) Variablen in eine Page geschrieben werden, bis
diese voll ist. Dann gibt es so eine Art "Garbage Collection", wobei nur
die zuletzt gültigen Variablen in die neue Page übertragen werden. Gibt
es da auch noch eine andere Appnote oder Lib von ST?
Bert S. schrieb:> Beansprucht das> den Flash nicht extrem?
Soweit ich sehen kann, ist das die EEPROM-Emulation, die ich meine und
beschrieben habe. Die Beansspruchung des Flashs hält sich dadurch in
Grenzen, daß das Löschen einer Page erst nach vielen Änderungen an
einzelnen Variablen erfolgt. Bei einer Pagegröße von 1K ist die Page
also erst nach 255 Schreibzyklen voll, egal, ob immer die gleiche
Variable oder immer andere Variablen geändert werden, und erst dann muß
ein Löschzyklus erfolgen.
Offenbar ist in Deiner Version aber eine Prüfung drin, ob die als
gelöscht gekennzeichnete Page auch tatsächlich gelöscht ist, und nur
wenn das nicht der Fall ist, wird die Page nochmal gelöscht. Das war
wohl in der früheren Version (ohne HAL), die ich kannte, noch anders.
Ganz schlüssig scheint mir das Konzept der Prüfung aber nicht zu sein,
oder habe ich etwas übersehen? Wenn durch eine unvollständig
durchgeführte Lösch-Operation zwar die "addressvalues" alle auf 0xFFFF
stehen, aber dazugehörige Variablen-Werte im Flash noch Daten enthalten,
gilt die Page hier trotzdem als gelöscht!?
Eine eigene Frage?
Dieser Thread ist über 8 Jahre alt.
Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.