To use the command 0xEB tp ead the memory array, you need to have the right number of dummy cycles configured which correspond to the SPI frequency you're using. You can refer to table 19 (page 38) from the datasheet for the details about the Latency Codes.
These are defined in bits CR3NV[0..4] and CR3V[0..4].
The other thing you need to consider is the 3-byte addressing or 4-byte addressing being used:
- If CR2V=0 then 3-byte address isused
- If CR2V=1, then 4-byte address (A31-A0) is used
CR2V and CR2NV does not have to be set otherwise you will enable the QPI mode (4-4-4) and the flash will have to be operated in that mode. You will then need to send command Exit QPI to exit that mode.
Can you send logic analyzer traces of the failing reads?
What SPI frequency are you running at?
I'm also suspecting that you had a power loss during register programming which may have led to registers corruption. In that case, the unit may be bricked.
How many units did you test in total and how many were failing?
Customer Application Engineering
Flash Business Unit
Cypress Semiconductor Corp.