This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

CC2538 Flash Memory Write Ambiguity

Hi TI,

There is an ambiguity in the CC2538 Flash Memory documentation that could have design impact on our side that we would like to have a little bit more information on.

More specifically, in section 8.3.2 Writing Multiple Times to a Word of the CC2538 User Guide, it says that the same address cannot be programmed "0" more than eight times before the next erase. Considering that a word is four bytes, and that each is addressable, that can be interpreted as that a word can be programmed "0" for a total of 32 times.

That is actually something that we want to achieve to be able to store unary numbers (or bit vector). This would make it possible to monotonically increment an unary number 32 times without the need to erase a whole 2kB page. Which is quite convenient.

However, the example shown shortly after state that "This makes it possible to write up to 4 new bits to a 32-bit word 8 times" and shows how each nibble is updated for a total of 8 times. Meaning, in that context, that it could only be possible to increment  an unary number 8 times... Less convenient.

Hence, I was wondering if actually it was possible to flip each bit individually for a total of 32 times or only 8.

Thank you!
Sim
  • Hi Sim,

    It is only 8 times per word, not 32. The flash is written full word at a time, and each time you write to a word, regardless of the value written, the flash content of this word degrades a little. As long as you rewrite it 8 times or less, the flash content is good enough to provide a correct reading. If you rewrite the same word 9 times or more (without erasing the page), the flash content of that word may not read correctly.

    Best regards,

    OD