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

Nor Flash

wanglijian
Level 1
First solution authored First reply posted First question asked
Level 1

hello!

I am trying to erase the chip according to the chip sheet. my program is like the picture which is the same as the sheet example. However, when the erase operation is over, I read the data in a section of address and found that it is not 0xfff. the result is attached on. I don't know what the problem is. I hope you can help me.

0 Likes
1 Solution
BushraH_91
Moderator
Moderator 250 solutions authored First comment on blog 500 replies posted
Moderator

Hello,

If you got 0xFFFF, that means the address is erased. And yes, it may take 6 minutes or more to erase whole chip in S29GL01GP (datasheet says 512s in typical, it’s 8 minutes).

The reason we generally not use simple delay is that the erase/program time varies by condition like temperature and/or number of erase performed.

 

Not sure why you got ‘7’ as returned status. Recommending to check “actual_data” directly.

Thank you

Regards,

Bushra

 

View solution in original post

0 Likes
4 Replies
BushraH_91
Moderator
Moderator 250 solutions authored First comment on blog 500 replies posted
Moderator

Hello,

Thank you for contacting Infineon Community. 

In the data pattern read out from the Flash, the DQ6 and DQ2 are still toggling (79d=0100 1111 vs 11d=0000 1011).

That means the erase is still in progress. please make sure the toggleBitOnErase() works correctly. 

Please refer to our Low-Level Driver to see if your issue is resolved.

https://www.infineon.com/cms/en/design-support/software/device-driver-libraries/memories-for-embedde...

Thank you

Regards,

Bushra

 

0 Likes
wanglijian
Level 1
First solution authored First reply posted First question asked
Level 1

hello!

thanks for your reply.I am trying to use the driver you provided. As shown in the attachment, specifically, I used the lldgetdeviceid() function to return 0x2801. According to the manual, this is correct. Then, I used LLD_ Eraseop() function, but the returned status value is always 7, which indicates that the erase failed. I want to erase the whole chip now. Is it because I use the wrong function? or did I not add a delay?

0 Likes
BushraH_91
Moderator
Moderator 250 solutions authored First comment on blog 500 replies posted
Moderator

Hello,

If you got 0xFFFF, that means the address is erased. And yes, it may take 6 minutes or more to erase whole chip in S29GL01GP (datasheet says 512s in typical, it’s 8 minutes).

The reason we generally not use simple delay is that the erase/program time varies by condition like temperature and/or number of erase performed.

 

Not sure why you got ‘7’ as returned status. Recommending to check “actual_data” directly.

Thank you

Regards,

Bushra

 

0 Likes
wanglijian
Level 1
First solution authored First reply posted First question asked
Level 1

hello,

I modified IID_ The chiperaseop() function, as shown in the attachment, means that the erasing waiting time is added. After about 6 minutes, the program jumps out of the loop, status=1, and I read the address content from base_addr  and returns 0xFFFF. Does this mean that the chip erasure is successful? Does it take 6 minutes to erase the chip? Why not add delay in the driver function? Is my modification correct?

0 Likes