This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

nRF52532 max number of write times in one block

Primarily addressed Torbjørn Øvrebekk, Nordic.

Refer document  nRF52832 Product Specification v1.4

I read " The same block in the Flash can only be written nWRITE number of times before an erase must be performed " where nWRITE is 181 and block is 512 bytes.

I did perform 4096 number of write zero operations bit by bit with successfully read back same data one by one, and all bits was successfully zeros after restart. I could repeat this process. Was I just "lucky" ?

Do I MUST erase after 181 writing, it mean I cannot even perform two write operations for all the 32-bits in one block without erase ?

Parents
  • I wrote in my previous post that each block was 512kB, it's actually 512bytes.
    This 512byte block can be written to 181 times before it needs to be erased. One 512byte block consists of 128 4byte words. Each 4byte word can only be written to twice, this means that if you only write one byte at a time you can only use half of the words, and therefore only half of the 512 byte block. 

    There are 8 blocks of 512byte in each 4kB page, and one can only erase a page, not individual blocks. 

    Lennart said:
    Is my conclusion correct. If I write zero bits or other data in any order more than 181 times it is expected to typical be read back correctly, but not any guarantee ?

    It is undefined behavior, we do not know what will happen. At best you will only get data corruption, at worst it will impact flash endurance, etc.  

    Lennart said:
    A following question is: If I write more than 181 times and for each write operation read back the value to confirm the read back is correct, is it then guarantee that the writing did work without any future corruption ?

     We do not know, it's undefined.

Reply
  • I wrote in my previous post that each block was 512kB, it's actually 512bytes.
    This 512byte block can be written to 181 times before it needs to be erased. One 512byte block consists of 128 4byte words. Each 4byte word can only be written to twice, this means that if you only write one byte at a time you can only use half of the words, and therefore only half of the 512 byte block. 

    There are 8 blocks of 512byte in each 4kB page, and one can only erase a page, not individual blocks. 

    Lennart said:
    Is my conclusion correct. If I write zero bits or other data in any order more than 181 times it is expected to typical be read back correctly, but not any guarantee ?

    It is undefined behavior, we do not know what will happen. At best you will only get data corruption, at worst it will impact flash endurance, etc.  

    Lennart said:
    A following question is: If I write more than 181 times and for each write operation read back the value to confirm the read back is correct, is it then guarantee that the writing did work without any future corruption ?

     We do not know, it's undefined.

Children
No Data
Related