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.
:
Bearbeitet durch User
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!?
:
Bearbeitet durch User
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.