Forum: Mikrocontroller und Digitale Elektronik STM32F10x EEPROM Emulator


von Benson (Gast)


Lesenswert?

Hallo zusammen,

ich schreibe eine Applikation für den STM32F103xC. Ich möchte auch gerne 
irgendwelche Kalibrationdaten,Betriebsstunden dauerhaft speichern und 
auch während des Betriebs ändern , quasi eine EEProm Funktionalität. 
Dazu habe ich mir die AppNote AN2594 von ST durchgelesen und auch 
implementiert. Soweit so gut ich kann mittels der Routinen Daten 
speichern und auslesen, mein Problem ist aber wenn ich dazu zyklische 
Daten ins EEprom speichere (Betriebsstunde ect.) bsp stündlich wird 
relativ schnell das Ende einer Page erreicht. Die EEprom Routine kopiert 
dann die letzten beiden Daten Words in die neue Page und löscht die alte 
meine anderen Daten sind dann futsch...Das liegt wahrscheinlich daran 
das die Daten nacheinander angehangen werden und nur über die Virtuelle 
Adresse indefizierbar bleiben.
Momentan sehe ich mich gezwungen ein externes EEprom zu verwenden da ich 
mit der bisherigen Lösung keine Daten dauerhaft speichern kann wenn das 
Ende der Page erreicht wird. Sieht hier eventuell jemand einen Ausweg 
doch den internen Daten Flash zu verwenden?

Danke & Grüße

von Christen (Gast)


Lesenswert?

Du musst dringend mit deiner EEprom Routine sprechen, damit sie tut was 
du willst....

von Ingo S. (ingo-s)


Lesenswert?

Habe mir die AppNote auch angesehen, für mehrere Variablen muß sie 
erweitert werden. Am besten alles in eine Struct integrieren, die eine 
2er Potenz als Größe hat mit internem Keyword zum auffinden.

Gruß Ingo

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Ich habe mich damit auch rumgeschlagen und bin zu dem Schluss gekommen, 
das ein externes EEPROM das beste ist. Mir ist es sowieso nicht ganz 
geheuer, im laufenden Betrieb eine ganze Page des Flash zu opfern und 
zweitens ist die Lebensdauer des Flash deutlich mehr begrenzt, als die 
garantierten 1.000.000 Schreibzyklen moderner EEPROMs.

von Jonas D. (daemmi)


Lesenswert?

Benson schrieb:
> Hallo zusammen,
>
> ... die AppNote AN2594 von ST durchgelesen und auch
> implementiert. Soweit so gut ...
>
> Danke & Grüße

Hey,

die AppNote hab ich auch gefunden allerdings finde ich das Demonstration 
Programm nicht.

Kann mir da jemand den Link geben oder eventuell das Demoprogramm hoch 
laden?
Wäre super nett.

Gruß Jonas

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Angehängte Dateien:

Lesenswert?

Das müsste das hier sein. Habs dir mal als ZIP Archiv angehängt.

von (prx) A. K. (prx)


Lesenswert?

An Stelle von externem EEPROM ist oft auch FRAM interessant, mit 
faktisch unbegrenzter Anzahl Schreibvorgänge und kurzer Schreibzeit.

: Bearbeitet durch User
von Jonas D. (daemmi)


Lesenswert?

Matthias Sch. schrieb:
> Das müsste das hier sein. Habs dir mal als ZIP Archiv angehängt.

Wow das war schnell!! Super Danke!

A. K. schrieb:
> ... oft auch FRAM interessant ...

Was ist den FRAM? Der ist aber nicht im STM32F1 verbaut oder? Bin nur 
auf eine schnelle Lösung einen Zählwert bei Spannungsverlust zwischen zu 
speichern. Ist für eine Evaluierung nötig von daher wird das Programm 
dann auch nur ein paar mal genutzt.

Gruß Jonas

von (prx) A. K. (prx)


Lesenswert?

Jonas Damhuis schrieb:
> Was ist den FRAM?

Eine externe Alternative zu EEPROM. Persistentes RAM via SPI|I2C, z.B.: 
http://de.farnell.com/ramtron/fm25cl64-g/fram-seriell-spi-3v-64k-smd-25cl64/dp/1210796

> Ist für eine Evaluierung nötig von daher wird das Programm
> dann auch nur ein paar mal genutzt.

Das klingt nicht so, als ob du dir Sorgen wegen begrenzter Lebensdauer 
machen müsstest. Dafür sollte es eine EEPROM Emulation auch tun. Es 
zwingt dich niemand dazu, das unveränderte Originalprogramm zu 
verwenden, wenn dessen Verhalten nicht optimal ist.

In einer Evaluationsphase kann es ggf. auch sinnvoll sein, einen Typ mit 
mehr Flash einzusetzen, um für so etwas genug Platz zu haben. Die 
Lebensdauer steigt mit der Anzahl Pages, die dafür zur Verfügung stehen.

: Bearbeitet durch User
von Jonas D. (daemmi)


Lesenswert?

Ja ganz genau Lebensdauer ist absolut nicht von Interesse. Es soll nur 
für einen Test, der eventuell ein paar mal bzw. mit Glück auch nur 
einmal durchgeführt wird, eine 32 Bit Variable am Ende des Testes 
abgespeichert werden. diese soll dann nach Spannungsverlust wieder 
ausgelesen werden. Daher denke ich das die Emulationssoftware absolut 
ausreichend ist.

von ♪Geist (Gast)


Lesenswert?

Hast du die Suche nicht benutzt?
Schaue mal hier:
Beitrag "STM32: EEPROM Emulator im Flash"

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

♪Geist schrieb:
> Hast du die Suche nicht benutzt?

Hast du nicht aufs Datum geschaut? Ist alles schon längst erledigt.

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.