Forum: Mikrocontroller und Digitale Elektronik STM32 Flash als EEPROM schreibzyklen


von Holger K. (holgerkraehe)


Lesenswert?

Hallo zusammen

Ich möchte die EEPROM Emulation beim STM32 verwenden.
Dabei wird ja in das Flash geschrieben.

Es handelt sich bei mir um 2500bytes welche nach und nach während 
mindestens 1000 Stunden geschrieben werden.

Also nach 1000h oder mehr wurde das letzte der 2500bytes geschrieben.


Wie oft kann ich diese 2500bytes eurer Meinung nach schreiben, bevor ich 
mit Fehlern rechnen muss?

Wenn dies 50 mal machbar ist, reicht dies mehr als genug.


Danke schonmal

von Frank (Gast)


Lesenswert?

Du wirst vorallem nur Pageweise schreiben können...

von Little B. (lil-b)


Lesenswert?

Kommt auch drauf an, welchen STM32 du verwenden möchtest.

Es kommt auch auf den Einsatz an, es gibt endlose Möglichkeiten, wie man 
2,5kByte Daten persistent speichern kann.

Der STM32F4 hat "core coupled memory", der mit einer Backup Batterie 
gestützt werden kann. Auf diese Weise arbeitet dieses wie ein EEPROM.

Der STM32F4 hat sein Flash in Bänke aufgeteilt, deren Größe von 16kByte 
bis 128kByte reichen. Du kannst also deine Daten in eine solche (frisch 
gelöschte) Bank schreiben und nach dem Auslesen der Daten diese Bank 
wieder löschen. Dann brauchst du keine EEPROM Emulation und kannst dich 
auf die Werte des Datenblattes berufen.
(etwas verständnis für linkerfiles vorausgesetzt)
(Flash memory endurance and data retention bei einem STM32F407VG: 
10kcycles, 10years)

Verwendest du eine EEPROM Emulation, so kann sich das deutlich 
verringern. Je nach dem wie die Bibliothek implementiert ist, werden 
daten mehrfach abgelegt und protokolloverhead hinzugefügt.

von Stefan (Gast)


Lesenswert?

Mit der STM Eeprom Emulations Library sollte das kein Problem sein. Du 
musst mit dieser lib nicht bei jedem Schreibzyklus löschen, sondern nur 
bei einem Überlauf des virtuellen Eeprom. Wenn Du in dem Eeprom 2500 
Einträge hast, und 10.000 * reinschreibst, dann löscht Du jede der pages 
4 mal.

Das einzige Problem bei der Eeprom-Flash-Emulation:
Während dem Löschen einer Flash-page ist kein Zugriff auf den restlichen 
Flash-Speicher möglich, das heisst, die CPU wird ein paar ms komplett 
stehen (inkl. Interrupts). (Wenn das ein Problem ist, dann kann ein STM 
mit 2 Flash-Memory-Banks verwendet werden, oder zeitkritische Routinen 
ins RAM verlegt werden).

Viele Grüße, Stefan

von Holger K. (holgerkraehe)


Lesenswert?

Danke für eure Antworten

Es handelt sich um ein STM32F105RBT6

von m.n. (Gast)


Lesenswert?

Holger Krähenbühl schrieb:
> Ich möchte die EEPROM Emulation beim STM32 verwenden.

Für ein Einzelstück oder für eine Serie?
Ein kleines EEPROM kostet wenige Pfennige und arbeitet sehr zuverlässig.

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.