Skip to main content
M F
Associate II
August 8, 2017
Question

EEPROM endurance, calculation of EEPROM writing cycles

  • August 8, 2017
  • 1 reply
  • 2759 views
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.

    This topic has been closed for replies.

    1 reply

    Amel NASRI
    Technical Moderator
    August 8, 2017
    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 "Best Answer" on the reply which solved your issue or answered your question.
    M F
    M FAuthor
    Associate II
    August 8, 2017
    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.