Hi Tong Pilip,
Thank you for contacting Cypress Semiconductor.
Could you please elaborate a little on your problem?
- What do you mean when you say "cannot do other operations"? What all operations did you try?
- Can you tell us the exact command sequence that you followed?
- When was the error flag set?
- Are you reading all data as 0xFF after erase operation?
Thank you for answer the question.
The only operations can read is RDID and SFDP.
1.pull up the wp
2.changed 4 byte address mode.
3.pull down the cs after transfer
4.send command 1 byte.
5.send address 4 byte.
6.read data 1 byte.
I read many register data is 0xff.
Is all the default register data 0xff?
Does register write need to be erased first?
Error returned when using a write register operation(WREN, Write register, poll...) function.
- Please clarify how you are enabling 4 byte address mode? Which command are you using? Please mention all the steps.
The correct way to do this would be -
Make CS# LOW.
Send 4BAM (B7h) command.
Make CS# HIGH.
- For read operation, could you please clarify what location are you trying to read? Are you trying to read any of the memory locations or any of the registers?
- If you are trying to read any of the memory locations, then the command sequence mentioned by you in the previous comment is correct. Could you please provide us the logic analyzer waveforms for this read operation?
- If you are trying to read the value of any of the registers using RDAR command, you will have to provide the required number of latency cycles depending upon the frequency that you are operating on. Please refer to Table 25. Latency Code (Cycles) Versus Frequency on page 52 of the datasheet. (Link - https://www.cypress.com/file/215911/download)
- The values of all the memory locations is erased to 0xFF when the part is shipped. The default values of the various registers can be found out from the datasheet.
- No. Registers need not be erased before writing. The WRAR command takes care of the erase process before programming the data. If you trying to write to a memory location then you need to erase the location before programming.
- Please clarify what commands you are using for write register operation when the error flag is getting set. Please provide the full sequence of commands.
- Please provide the logic analyzer waveforms for all the write and read operations that you are performing.