Winbond NAND flash W25N01GV - problem while flashing one page multiple times

 I run into a problem while using W25N01GV. Since I couldn't find an answer on the internet I contacted Winbond support. Here is my conversation so maybe it will help you as well. 

Question 1 : Hi,

I am using W25N01GV on different projects and recently I found a problem while writing multiple data on the same page.
With command Load Program Data (02h) I am loading data to Data Buffer and then I store it to flash with Program Execute (10h).
Each time I am writing to a different column address on the same page. After around 200 writes on the same page some old data seems to change, even I didn't write anything at their location. Any chances there is a limit to how much time could be one page used before erasing the whole block? or this could be a faulty sample of flash?

Best regards,
Igor Misic
(2020-11-29 19:06:17)

Answer 1 : Hi Igor:
Thank you for contacting Winbond.
About the SPI NAND flash, there are two limitation for page program operation.
1. There are 4 times for doing page program in the same page(Number of Page program times. NoP=4). So the user needs to issue block erase when NoP =4.
2.The pages within the block have to be programmed sequentially from the lower order page address to the higher order page address within the block. Programming pages out of sequence is prohibited.


  1. I've just been bitten hard by this flash memory. I've been writing at most 4 times per page, page order kept but read data were different from what was written. Problem is with internal ECC which seems to work properly only for 512B aligned writes. But not with every data. Most of them worked well with the same data storing scenraio. But with one specific binary file (FW upgrade) I was getting read errors at the same offset in page in different chips, in different blocks, but always the same error. Really hard to find. Turned off ECC and the original data were read!

    Hope this note might help somebody.


Post a Comment

Popular posts from this blog

AUTOSAR and CRC calculation

Flashing/debugging/running code at external memory in the memory-mapped mode

Debugging EK-TM4C123GXL with Visual Studio Code on Linux