0
\$\begingroup\$

As the title says, I want to know what could happen if you write too many time in one EEPROM address.

To be specific, I'm working on a microcontroller (STM32L072) and I saw a bit flip in EEPROM at a specific address (let's called it address X1).

During the investigation of the fault, I saw another fault: we write too many times (>100.000 times Cf datasheet) a byte next to address X1 (X1+1).

So my real question is: if I write too many times to a byte at an address, could that corrupt the byte at an adjacent address?

Edit after questions: The flip switched 1 to 0 at the address X1, and we write 0 to the address X1+1.
the address X1 is 0x08080061, and so the X1+1 is 0x08080062

\$\endgroup\$
7
  • \$\begingroup\$ Just to be clear: Address X1 is not written too many times, but only address X1+1 (or X1-1)? \$\endgroup\$
    – Arsenal
    Commented Jul 27, 2022 at 9:30
  • \$\begingroup\$ Define "too many". \$\endgroup\$
    – Solar Mike
    Commented Jul 27, 2022 at 9:33
  • 3
    \$\begingroup\$ Additional note: the failure modes might depend on the exact implementation of the device, so instead of calling it "the EEPROM", it could be helpful to call it "24MC16" or whatever it is. \$\endgroup\$
    – Arsenal
    Commented Jul 27, 2022 at 9:43
  • \$\begingroup\$ "I saw a bit flip in EEPROM at a specific address" - which MCU/EEPROM, and what did the bit 'flip' to? What value was being written to the adjacent byte? Was it erased before each write? How many writes had occurred before the bit 'flipped'? \$\endgroup\$ Commented Jul 27, 2022 at 10:30
  • 3
    \$\begingroup\$ How do writes operate on this device? Some devices write a block or a page in a single operation, not just single bytes. Then updating any location in X1's block will stress X1. \$\endgroup\$
    – user16324
    Commented Jul 27, 2022 at 11:38

1 Answer 1

2
\$\begingroup\$

From the manual I found, chapter 3.3.4, page 84:

Erase/write endurance cycles in data EEPROM are linked to one single word granularity (one erase/write cycle degrades only one programmed word area in data EEPROM).

So you can erase and/or write a single byte. However, it seems as if "under the hood" always a complete word is erased or written. If you exceed the endurance of some bit in a word, it can happen with any of its bits.

The addresses you use belong to the same word.

Interestingly, erased bits read as "0", not as "1" as many other NVMs.

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.