NOR Flash Sector Erase command sequence and Polling DQ3

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

cross mob
yuxi_3250341
Level 3
Level 3
First like received

Hi there,

About the DQ3 (Sector Erase Timer) bit, I have a few questions:

1, Based on my understanding of Cypress datasheets, DQ3 is used when we need to erase TWO OR MORE sectors in a single Sector Erase Command Sequence: after a "Sector Address + sector erase command 30h" has been input, we monitor DQ3; if DQ3=0, then it is OK to input additional "Sector Address+30h" to erase; if DQ3=1, then the erase op has begun and we should NOT input additional "Sector Address+30h".

Am I correct in this?

2, If in a Sector Erase Command Sequence we erase ONLY ONE sector, then we do NOT need to monitor DQ3.

If in a Sector Erase cmd sequence we erase TWO OR MORE sectors, but the timing between successive "Sector Address + sector erase command 30h"s are less than 50us (S29JL064H ds page 35) or less than tSEA (S29GL256P ds page 26), then we do NOT need to monitor DQ3.

Am I correct here?

3, In the following "Sector Erase Operation" flowchart (S29GL256P ds page 26), can I skip over or get rid of the "Poll DQ3, DQ3 = 1?" step ?

DQ7 and DQ5 can provide sufficient information about the progress & status (finished or not, success or failure) about Sector Erase; why bother polling DQ3 ?

pastedImage_0.png

4, In the above "Sector Erase Operation" flow chart, for its "Perform Write Operation Status Algorithm" step, can I use the following "Data# Polling Algorithm" flow chart in this step?

As far as I know, this "Data# Polling Algorithm" flow chart is applicable for all Cypress parallel NOR Flash devices, so I want to use it for compatibility across many device types I'm currently using (S29JL064H, S29JL064J, S29GL256P, S29GL01GT).

pastedImage_5.png

5, Chip Erase command sequence does NOT need to monitor DQ3, is this right?

Thanks for your attention, and Best Regards ! 🙂

xieyl

Feb 19, 2020.

1 Solution

Hello,

Please find my comments below.

2. Sorry for the confusion. If you are erasing only one sector, you can start data polling immediately after sending the sector erase commands. It is not required to wait for tSEA time.

3. Yes, it is correct. It is mentioned in the datasheet that "If the time between additional sector erase commands from the system can be assumed to be less than tSEA, then the system need not monitor DQ3."

4. As mentioned in the datasheet "The system can use DQ6 and DQ2 together to determine whether a sector is actively erasing or is erase-suspended". If you are not using erase suspend and program suspend operations in your applications, then you can skip polling DQ6 and DQ2.

Thanks and Regards,

Sudheesh

View solution in original post

4 Replies
SudheeshK
Moderator
Moderator
Moderator
250 sign-ins First question asked 750 replies posted

Hello,

Please find the answers for your queries below.

1. Yes, your understanding is correct. Flash will accept additional sector erase commands and address as long as DQ3 = 0 after sending first sector erase command and address. DQ3 = 1 mean the internal erase operation has started and device will not accept any additional sector erase operations.

2. Yes, you are correct. It is mentioned in the S29GL256P datashee that, "If the time between additional sector erase commands from the system can be assumed to be less than tSEA, then the system need not monitor DQ3." (page 34, https://www.cypress.com/file/219926/download )

3. Yes, it is OK to skip polling DQ3 bit after sending erase command. But, you may need to wait tSEA time before polling other data bits. Please see the note given near the flow chart "The host system may monitor DQ3 or wait tSEA to ensure acceptance of erase commands"

4. Yes, you can follow the same flowchart. Please perform read operation at least 3 times to check the status of toggling status (toggling or not toggling) bits (DQ6 and DQ2) in the steps "Read DQ7 - DQ0".

5. Yes, you are correct. The sector erase timer does not apply to the chip erase command.

Thanks and Regards,

Sudheesh

Thanks Sudheesh,

2. As for erase op of ONLY ONE sector, you explained: "If the time between additional sector erase commands from the system can be assumed to be less than tSEA, then the system need not monitor DQ3".

I need some more clarifications here: since I'm erasing ONLY ONE sector, so in my opinion, there should be NO ADDITIONAL sector erase commands; so, consequently, we DO NOT need to monitor DQ3 or wait for tSEA. We can simply do Data# Polling Algorithm, as is shown in the flow chart below.

pastedImage_0.png

Can you confirm that?

3. As for your statement "need to wait tSEA time before polling other data bits", I am a little confused here:

In my understanding, within tSEA it's acceptable to input additional sector addresses (to erase); that is, tSEA is used only during successive input of sector addresses. After the last sector address is input, we do NOT have any more additional sector addresses, so I think now we can directly go to the Data# Polling Algorithm (flow chart shown above), in which DQ7 tells us whether the erse op is in progress or completed, and DQ5 indicates whether the erase op is FAIL or SUCCESS.

That is to say, in my view, after all sector addresses have been input during a Sector Erase command sequence, it seems Polling DQ3 is not a must-do, and Data# Polling Algorithm (DQ7 + DQ5) can give me sufficient information on the result of the erase op.

Is my understanding correct?

And, if I'm wrong, then in the following chart, if I ensure that all additional address cycles are within tSEA, and after the Last Sector address I just remove or skip over the "Poll DQ3" step, and directly go to "Data# Polling Algorithm" after the last sector address, what will happen?

pastedImage_2.png

4. I do not use any erase-suspend or program-suspend in my design; so, in my case I think the meanings DQ6 and DQ2 are also covered in DQ7, and the Data# Polling Algorithm (DQ7 and DQ5) should be sufficient for my case, and I do NOT need to check DQ6 and DQ2's toggling status.

Am I right?

Thanks & Best Regards, my friend.

xieyl

2020.02.20

Hello,

Please find my comments below.

2. Sorry for the confusion. If you are erasing only one sector, you can start data polling immediately after sending the sector erase commands. It is not required to wait for tSEA time.

3. Yes, it is correct. It is mentioned in the datasheet that "If the time between additional sector erase commands from the system can be assumed to be less than tSEA, then the system need not monitor DQ3."

4. As mentioned in the datasheet "The system can use DQ6 and DQ2 together to determine whether a sector is actively erasing or is erase-suspended". If you are not using erase suspend and program suspend operations in your applications, then you can skip polling DQ6 and DQ2.

Thanks and Regards,

Sudheesh

Hi Sudheesh,

Thank you very much for your careful explanations!

xieyl

Feb 20, 2020