issues with S29GL032N

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

cross mob
prasanna_balan
Level 1
Level 1
5 sign-ins First reply posted First question asked

I am facing 2 issues with the flash

1) As per my understanding of CFI Query addresses 21h and 25h (page 37 of datasheet), time needed to clear 1 block is 2^(10+4) ms. Is my understanding correct ? If not, what is the correct max timeout for block erase ? I am confused as this is a lot of time for erasing 64KB.

2) When I do sector erase,  checking the status reveals DQ6 toggle but no DQ2 toggle but DQ3 set. As per my understanding, whenever DQ6 stops toggling,DQ2 should also stop toggling as DQ6 indicates suspend or complete. What can my current observation mean ?

0 Likes
1 Solution
BushraH_91
Moderator
Moderator
Moderator
750 replies posted 50 likes received 250 solutions authored

Hello Prasanna,

Thank you for contacting Cypress Technical Support, an Infineon Technologies Company. Please see below.

 

1) As per my understanding of CFI Query addresses 21h and 25h (page 37 of datasheet), time needed to clear 1 block is 2^(10+4) ms. Is my understanding correct ? If not, what is the correct max timeout for block erase ? I am confused as this is a lot of time for erasing 64KB.

Answer 1: The calculated max erase timeout is the possible max time for a sector erase. However, it rarely reaches this max time for an sector erase operation. Most (almost all) the sector erase time is much less than the maximum erase time. It is suggested to use Data polling to check erase (and program) completion. The max erase (or program) time can be used to set the timeout timer to avoid software dead-loop in case erase (or program) error happening. For example, Data polling to check erase/program completion, if erase/program time reach the timeout timer while Data polling still shows erase/program in progress, then exits the polling loop and report error.

 

2) When I do sector erase,  checking the status reveals DQ6 toggle but no DQ2 toggle but DQ3 set. As per my understanding, whenever DQ6 stops toggling,DQ2 should also stop toggling as DQ6 indicates suspend or complete. What can my current observation mean ?

Answer 2: “DQ6 toggle but no DQ2 toggle but DQ3 set” seems like program in progress (DQ6 toggle, DQ2 not toggle, DQ3 don’t care) (see below table). Are you actually polling an erase operation?

 

BushraH_91_0-1615847574068.jpeg

Thank you

Regards,

Bushra

View solution in original post

0 Likes
6 Replies
BushraH_91
Moderator
Moderator
Moderator
750 replies posted 50 likes received 250 solutions authored

Hello Prasanna,

Thank you for contacting Cypress Technical Support, an Infineon Technologies Company. Please see below.

 

1) As per my understanding of CFI Query addresses 21h and 25h (page 37 of datasheet), time needed to clear 1 block is 2^(10+4) ms. Is my understanding correct ? If not, what is the correct max timeout for block erase ? I am confused as this is a lot of time for erasing 64KB.

Answer 1: The calculated max erase timeout is the possible max time for a sector erase. However, it rarely reaches this max time for an sector erase operation. Most (almost all) the sector erase time is much less than the maximum erase time. It is suggested to use Data polling to check erase (and program) completion. The max erase (or program) time can be used to set the timeout timer to avoid software dead-loop in case erase (or program) error happening. For example, Data polling to check erase/program completion, if erase/program time reach the timeout timer while Data polling still shows erase/program in progress, then exits the polling loop and report error.

 

2) When I do sector erase,  checking the status reveals DQ6 toggle but no DQ2 toggle but DQ3 set. As per my understanding, whenever DQ6 stops toggling,DQ2 should also stop toggling as DQ6 indicates suspend or complete. What can my current observation mean ?

Answer 2: “DQ6 toggle but no DQ2 toggle but DQ3 set” seems like program in progress (DQ6 toggle, DQ2 not toggle, DQ3 don’t care) (see below table). Are you actually polling an erase operation?

 

BushraH_91_0-1615847574068.jpeg

Thank you

Regards,

Bushra

0 Likes
prasanna_balan
Level 1
Level 1
5 sign-ins First reply posted First question asked

Thanks Bushra for the reply.

Regarding Q1, so is the max time 16.384 s ? I understand that it will never reach that value, but is it the theoretical max ?

Regarding Q2, yes, as mentioned in Q1 as well, we are doing a sector erase. In the mentioned scenario of "DQ6 toggle but no DQ2 toggle but DQ3 set", shouldn't D2 also toggle if erase is in progress ?  If D2 not toggling is an error, what can it be ?

0 Likes

Hello Prasanna,

Q1: Yes, the max time is 16.384s according to the calculation from CFI data. It is the “theoretical max”. So DATA polling is the best (most efficient) method to detect erase/program completeness.

Q2: For an active erase (erase in progress), DQ6 toggles while reading at any place of the flash; DQ2 toggles only when reading in the sector selected for erasure. Are you polling within the sector selected for erasure?

Thank you

Regards,

Bushra

0 Likes
prasanna_balan
Level 1
Level 1
5 sign-ins First reply posted First question asked

Thanks Bushra for the reply.

Regarding Q2, polling is within the sector selected for erasure. 

 

0 Likes

Hello Prasanna,

Can you please answer to these questions below?

  1. Was the sector erase able to complete successfully, i.e., polling until DQ6 stops toggling and verified the entire sector contains stable data 0xFF?
  2. Was this happening to a specific sector or all the sectors in the flash memory?
  3. If do a hardware reset, i.e., keeping Vcc at working voltage, pull RESET signal low, then pull up (refer to datasheet Hardware Reset timing requirement), does this error still exist?
  4. Can you share with us the piece of code for sector erase and polling? And also the log of the polling data.
  5. Please capture the POR timing waveform with time measurements of tVCS and tRH (see below diagram)?

BushraH_91_0-1616099429972.jpeg

 

Thank you

Regards,

Bushra

0 Likes

Hello Prasanna,

Can you please answer to these questions below?

  1. Was the sector erase able to complete successfully, i.e., polling until DQ6 stops toggling and verified the entire sector contains stable data 0xFF?
  2. Was this happening to a specific sector or all the sectors in the flash memory?
  3. If do a hardware reset, i.e., keeping Vcc at working voltage, pull RESET signal low, then pull up (refer to datasheet Hardware Reset timing requirement), does this error still exist?
  4. Can you share with us the piece of code for sector erase and polling? And also the log of the polling data.
  5. Please capture the POR timing waveform with time measurements of tVCS and tRH (see below diagram)?

BushraH_91_0-1616541677460.jpeg

 

 

Thank you

Regards,

Bushra

0 Likes