cancel
Showing results for 
Search instead for 
Did you mean: 

EEPROM endurance, calculation of EEPROM writing cycles

M F
Associate II
Posted on August 08, 2017 at 11:14

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:

0690X00000607nFQAQ.png

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.

2 REPLIES 2
Amel NASRI
ST Employee
Posted on August 08, 2017 at 15:13

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

http://www.st.com/content/st_com/en/products/embedded-software/mcus-embedded-software/stm32-embedded-software/stm32cube-expansion-software/x-cube-eeprom.html

.

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.

Posted on August 08, 2017 at 17:39

Thanks Amel,

I found in that Application Note the following info:

0690X00000607jvQAA.png

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.