2017-08-08 02:14 AM
Hi all,
How is calculated the number of times that a certain byte of the internal STM32(L0) EEPROM is written in the following situation?
1 - The firmware writes a byte in EEPROM address 0x0808 0000. The code *(uint8_t *)0x08080000 = data; is used to perform the writing once the memory is unlocked.
2 - The firmware writes at some other point in time a byte in EEPROM address 0x0808 0001 in the same manner.
Since the addresses 0x0808 0000 and 0x0808 0001 belong to the same word, is each of these mentioned addresses written twice or once?
In STM32L0 RM0377 reference manual it can be read:
which suggests me that the microcontroller hardware performs a read-modify-write operation on the 4 bytes of the same word. But here is where I am not sure.
The issue is important in my application to avoid coming near the max. endurance of the EEPROM (100K cycles)
Thanks in advance for your clarification.
2017-08-08 06:13 AM
Hi
Frago.Marcos
,There is application note related to L4 products that can help to calculate the EEPROM endurance.
It is AN4894 with its firmware package
.Even if it is not developed based on STM32L0, it can provideyou guidelines.
-Amel
To give better visibility on the answered topics, please click on Accept as Solution on the reply which solved your issue or answered your question.
2017-08-08 10:39 AM
Thanks Amel,
I found in that Application Note the following info:
Is this a general statement about EEPROM technology or about how EEPROM is written in STM32?
If I remember correctly the Microchip extarnal EEPROM chips write in blocks of 16 bytes. Whenever you write one byte you affect the endurance of the other 15 bytes neighbors in the same page.