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
  • Hey Lennart,

    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" ?

    No, this is the expected behavior of any flash memory, where the erased state of any byte is 0xFF, if you write zeroes bit-by-bit the state changes from 0xFF to 0xFE to 0xFD, etc, and you will be able to read out the correct state of the memory. 
    Now if you do the inverse, erase a byte, write it to 0x00, and then try to write any other value to the byte, you should see that it cannot change state from 0x00. 
     

    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 ?

    Flash writing to zero is an operation where one drains a charge from a transistor gate, who has been previously charged during the erase procedure. This is why any flash memory cell's erased state are all ones and not zeroes. 

    As one block of flash contains 512kB of memory cells, if you write to each byte, one-by-one, you should after a few hundred bytes start to see data corruption as the memory cell's write-circuit fails, I believe due to insufficient charge somewhere in its circuitry.

    We guarantee safe operation for 181 such writes before one needs to erase the block, and thereby re-charging the memory cell's circuits. 

    I suggest you read up on NOR flash and Block erasure

    Cheers,
    Håkon. 

Reply
  • Hey Lennart,

    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" ?

    No, this is the expected behavior of any flash memory, where the erased state of any byte is 0xFF, if you write zeroes bit-by-bit the state changes from 0xFF to 0xFE to 0xFD, etc, and you will be able to read out the correct state of the memory. 
    Now if you do the inverse, erase a byte, write it to 0x00, and then try to write any other value to the byte, you should see that it cannot change state from 0x00. 
     

    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 ?

    Flash writing to zero is an operation where one drains a charge from a transistor gate, who has been previously charged during the erase procedure. This is why any flash memory cell's erased state are all ones and not zeroes. 

    As one block of flash contains 512kB of memory cells, if you write to each byte, one-by-one, you should after a few hundred bytes start to see data corruption as the memory cell's write-circuit fails, I believe due to insufficient charge somewhere in its circuitry.

    We guarantee safe operation for 181 such writes before one needs to erase the block, and thereby re-charging the memory cell's circuits. 

    I suggest you read up on NOR flash and Block erasure

    Cheers,
    Håkon. 

Children
No Data
Related