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,
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.
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?
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.
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,
Thank you very much for your careful explanations!
Feb 20, 2020