Hi Ramesh,
From the data it looks as if the flash is changing by one bit in the byte value. We only are seeing a small portion (16 bytes) of data that is probably hundreds or thousands of bytes in total. There is a couple of things that would still be helpful to know.
- What is DVDD for the MSC1210?
- What crystal frequency is being used?
- Are you changing from the default values of the FTCON, MSECL and MSECH registers?
When the erase to the memory takes place, there must be sufficient time to charge the memory cells high so that each byte becomes 0xFF. So erasing sets the bits. You cannot write a '1' to a bit, you can only write '0'. It may be that not enough erase time is being issued to set the bits to the necessary charge. Or it could be a transient event that is clearing a bit. The answers to the above questions will help me to determine if there is enough erase time for maximum endurance.
Best regards,
Bob B