Does the S25FL's P_ERR bit signal the writing to unerased area?

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
IsKo_4503166
Level 1
Level 1
Welcome!

Hello,

I use a S25FL256S flash memory and I noticed that no P_ERR bit if

I write to an unerased (not all bits are ones) memory area, however

the writing fails. Is this normal behavior or does I overlook something?

I hoped I can detect similar errors via P_ERR. Should I reread the data

after writing operation if I would like to check the result of operation?

Thanks.

0 Likes
1 Solution
SudheeshK
Moderator
Moderator
Moderator
250 sign-ins First question asked 750 replies posted

Hello,

Flash device will not set P_ERR bit in status register 1, if you are programming data to already programmed locations. Please note, program operation can change a bit from 1 to 0. It is not possible to change a bit from 0 to 1 using a program operation. If you try to change the data a bit from 0 to 1 using program operation, flash will not report error and data at that bit will remain as 0. Only an erase operation can change data at a bit from 0 to 1.

In the question, you have mentioned that the write operation fails. Could you please provide more details about this? How are you checking if the program operation completed successfully or not?

To assist you better with this question, could you please provide more details about your requirement?

Thanks and Regards,

Sudheesh

View solution in original post

0 Likes
2 Replies
SudheeshK
Moderator
Moderator
Moderator
250 sign-ins First question asked 750 replies posted

Hello,

Flash device will not set P_ERR bit in status register 1, if you are programming data to already programmed locations. Please note, program operation can change a bit from 1 to 0. It is not possible to change a bit from 0 to 1 using a program operation. If you try to change the data a bit from 0 to 1 using program operation, flash will not report error and data at that bit will remain as 0. Only an erase operation can change data at a bit from 0 to 1.

In the question, you have mentioned that the write operation fails. Could you please provide more details about this? How are you checking if the program operation completed successfully or not?

To assist you better with this question, could you please provide more details about your requirement?

Thanks and Regards,

Sudheesh

0 Likes

Hello,

thank you for you quick response!

The only write checking I implemented was the checking of the P_ERR bit.

During tests the programming algorithm unintentionally ran into an unerased

memory area and the read back data was different form the written data (this

is what I meant "writing failed") but the P_ERR stayed zero (did not show the

error) and this was surprising because, in my point of view, this is a

programming error.

After your answer everything is clear now. I will implement readback and compare

the written and the readback data to check the programming operation.

Thank you again!

0 Likes