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

Writing to nvram

I would like help in understanding the limitations of the NVRAM. The documentation for the nRF52840 and the nRF52832 are different. This is what the nRF52840 reads:

Nvram write 52840 doc

Do I understand correctly that, for any word in a 4K block, it can only be written twice before the entire page must be erased?

The nRF52832 seems to have a different limitation:

nvram writing nRF52840

This is more complicated. Here the page is divided into 512 byte blocks and the limitations is 181 writes per block before page erase is needed. Here nothing is said about a 32 bit word write.

The reason I ask is that I am using Gazell pairing. It seems to me that, for part of the database in nvram, it partitions up its information into 4bit chunks, 8 to a 32 bit word. It shuffles bits and requires a byte to be written, I think for each pairing, which of course turns into a 32 bit word being written per byte demanded i.e. potentially 8 times. It would appear therefore that the nRF52840 is incompatible with the current version of Gazell, which, to say the least is worrying to me since I am sort-of committed to both. What is wrong with my understanding above?

Parents
  • Do I understand correctly that, for any word in a 4K block, it can only be written twice before the entire page must be erased?

     Yes, this is true for the 840. But more specifically the limitations is that you cannot write 0 to the same bit more than twice. In theory the flash allows 8 programs to the same address (but still the same bit cannot be programmed to ‘0’ more than twice). Can you point me to what file/line you are looking at for gazell pairing that does the writes? Thanks

Reply
  • Do I understand correctly that, for any word in a 4K block, it can only be written twice before the entire page must be erased?

     Yes, this is true for the 840. But more specifically the limitations is that you cannot write 0 to the same bit more than twice. In theory the flash allows 8 programs to the same address (but still the same bit cannot be programmed to ‘0’ more than twice). Can you point me to what file/line you are looking at for gazell pairing that does the writes? Thanks

Children
No Data
Related