I'm using S25FL512SAGMFI011 for my bit stream storage with SPI interface operating @ 20MHz. I'm using CM3 to program the device, able to read idcode and status register correctly. so with the checking WEL and WIP bit i'm continuing to program, when ever WIP bit is "0" as stated in datasheet. But when i'm trying to read back using 0x03 it is giving all "0xFF". How can we sure that program is happened or happening other than WIP bit in status register?.
Can you guys please help me with this?
Thank you for contacting Cypress Community Forum. Currently we reviewing the issue and will get back to you as soon as we find the resolution.
Unfortunately, we are not familiar with CM3 programmer. But if you have access to the driver code and/or probing flash signals, we can try to debug.
As to the question “How can we sure that program is happened or happening other than WIP bit in status register” – this can be done by checking the WIP transactions, i.e., after sending program command, check SR1, if WIP changes to 1, means the program command is accepted by flash. Keep checking SR1, when WIP goes back to 0 again, and WEL is also cleared to 0, that means program completes successfully. If WIP does not change to 1 after sending program command, i.e., the WIP remains 0 and WEL remains 1. This may indicate the program command is not accepted by flash at all. As WEL is cleared to 0 by any success program/erase operation, so WREN (set WEL to 1) command is required prior to every program/erase command.
Please do following experiments and send us the result so we can have better understanding of the issue:
If you can’t modify the code to do the suggested test. Then try to capture Logic Analyzer traces at the flash pins while sending program command.
Thanks for your reply, we are following the below sequence for programming flash and we aqre facing the issue. tried with 61 bytes of data as well as big data. Getting "FF". when reading.
Note: we can able to read status and configuration registers correctly. But problem is with when we are reading from memory using 03h command
I can able to see the data while programming on beagle SPI analyser and device giving WIP as 1 during writing and iam waiting up to WIP bit to 0 for sending next page of data.
page size - 512 bytes and 256 bytes tried.
Please reply to my mail-id so that I can forward my code. Here we are using CM1 not CM3.
Thank you for sending the information. Currently we are reviewing the issue and will get back to you as soon as we find the resolution.
Have a wonderful day
Please see the Beagle logs with comments attached (the text highlighted in green are the suggested debugging code to add).
More suggested test and questions are as below:
In the test flow you described
Is it really 20h? 20h is not supported in FL512S. And I see in the beagle logs, the erase command is D8h.