I would like to have the requirements for avoiding FLASH write disturbance when erasing single pages clarified. The user manual (UM11065, rev 1.3) includes the following statement under section 4.5.7, page 26:
To avoid write disturbance (a mechanism intrinsic to flash memories), an erase
should be performed after 16 consecutive writes inside the same page. Note that the
erase operation then erases the entire sector.
Remark: Once a page has been written to 16 times, it is still possible to write to other
pages within the same sector without performing a sector erase (assuming that those
pages have been erased previously).
Will erasing 64-byte pages using the IAP erase pages command (section 4.6.10) instead of erasing complete 1024-byte sectors using the erase sectors command (section 4.6.3) cause write disturbance?
My goal is to use the internal FLASH for EEPROM emulation. I cannot afford to use a complete 1024 byte sector and would like to repeatedly erase rewrite a single 64-byte page. Will this use case causes write disturbance and if so can it be mitigated by reserving the adjacent pages as no-go zones?
Thank you in advance for your assistance.
Regards,
Johan
Hi implicit,
Please check my answers bellow:
Will erasing 64-byte pages using the IAP erase pages command (section 4.6.10) instead of erasing complete 1024-byte sectors using the erase sectors command (section 4.6.3) cause write disturbance?
Usually while using a flash memory is always recommendable to erase first the page you're going write. In the case of the LPC80x, the flash module can overwrite 16 times before an erase is need it, is enough with erasing the page to avoid write disturbance, also as a suggestion, you could try erasing the page before writing it .
My goal is to use the internal FLASH for EEPROM emulation. I cannot afford to use a complete 1024 byte sector and would like to repeatedly erase rewrite a single 64-byte page. Will this use case causes write disturbance and if so can it be mitigated by reserving the adjacent pages as no-go zones?
I think this isn't need it, is enough with erasing the page.
Best Regards,
Alexis Andalon
Thank you for your swift response Alexis! If possible I would like to clarify my understanding of a couple of points in your answer.
I think this isn't need it, is enough with erasing the page.
Can you confirm that by continually erasing and reprogramming a single page will be equivalent to erasing and reprogramming full sectors from a reliability perspective and that doing so I will still reach the 200,000 cycle endurance rating?
Usually while using a flash memory is always recommendable to erase first the page you're going write. In the case of the LPC80x, the flash module can overwrite 16 times before an erase is need it, is enough with erasing the page to avoid write disturbance, also as a suggestion, you could try erasing the page before writing it .
I'm not quite following you in being able to rewrite a page up to 16 times. Given the use of ECC I would have expected that individual word would only be programmable once without erasing the page first. Are you saying that this FLASH memory supports a limited number of rewrites of data without prior erasure?
Regards,
Johan
Have the same questions for the LPC822 regarding "flash disturbance" in attempting to use the flash in place of EE but alas NXP has not chosen to clarify and it's been well over a year! I would think by the nature of flash that you can not write to the same line without erasing the page first. It would be nice if you could write to successive lines in the same page before erasing but it is also not clear if that is true. Even if it is true it is not clear what the OP quoted section is trying to convey to avoid "flash endurance". NXP please explain/expand on this overall issue including the ways the pages can and can not be written to, when, how and how many times, before erasing, etc. A brief ongoing dialog would be best since I do not think all questions would be addressed even by an answer to the questions asked/expressed/referenced so far. Thank you in advance NXP.
Did anyone have success in writing to the same page multiple times without erasing?
What if you write all 0xFF except for the location you want to set? Is that a better approach than read-modify-write, since it wouldn't re-program the already set bits?
FYI: I posted a similar question here: https://community.nxp.com/t5/LPC-Microcontrollers/LPC804-write-flash-single-word/td-p/1398379 Hope it gets more attention than this thread...