S29GL064N NOR Flash some times going into ERASE_SUSPEND state after ERASE_CONFORM(0x30) command

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

cross mob
Anilsp31
Level 2
Level 2
25 sign-ins 5 replies posted 10 questions asked

Hi,

We are using S29GL064N NOR Flash chip in our new product.
We are facing one issue, in which after Erase_Confirm command some times randomly we are getting FLASH_DEVICE_SUSPEND state.
Normally it should go in FLASJ_DEV_BUSY state.
This happens when toggling of Toggle_Bit I(DQ6) stops, but Toggle_Bit II(DQ2) still toggles causing the device go in FLASH_DEVICE_SUSPEND state as per the code.

Is this kind of error which is known for this device or needs to handle differently?
We see this happens randomly after few erase cycles and not always.
Please help us for solution you have for this.

Thanks and Regards,
Anil Patil

 

0 Likes
9 Replies
AlbertB_56
Moderator
Moderator
Moderator
500 replies posted 50 likes received 250 replies posted

Hello Anil,

Thank you for contacting Infineon Technologies.

The 30h command is for Sector Erase. It important to note that after the (Sector Erase command 30h) command sequence is written, a sector erase time-out of 50 µs occurs.  During the time-out period, additional sector
addresses and sector erase commands may be written.  Loading the sector erase buffer may be done in any sequence, and the number of sectors may be from one sector to all sectors. The time between these additional cycles must be less than 50 µs, otherwise the Sector Erasure operation may begin.

Questions for you: 

1).  Does this issue occur on the same sector?

2).  How many (S29GL064N) devices does this issue occur?

3).  Are you initiating back-to-back erasure on the same sector? 

Thank you in advance...

 

Best regards,

Albert

Cypress Semiconductor Corp.

An Infineon Technologies Company

0 Likes

We are issuing only one Erase sector for each Erase request. We have 50uS delay before checking the status of the Erase request after the command.

PFB answers to your queries:

1).  Does this issue occur on the same sector?

Ans: It is not related to particular sector. It happens on random sectors.

2).  How many (S29GL064N) devices does this issue occur?

Ans: It is reproducible on any of our boards. Not specific to one board.

3).  Are you initiating back-to-back erasure on the same sector? 

Ans: No only one request of one sector at a time. Using about 10 seconds of timeout to complete the erase request.

Hope this information will be useful to find the cause.

 

Regards,

Anil Patil

0 Likes

Hi,

We are using S29GL064N NOR Flash chip in our product.

We are facing some issues as described below.

Test Method:

We are doing Unlock, Erase, Write, Read, CRC verify and Lock the block tests, in sequence on 8x 8K blocks and a 64K block of this Chip.

We have 5 seconds of sleep time after each cycle.

Issue Description:

We are facing one issue, in which after Erase_Confirm(0x30) command sometimes we are getting FLASH_DEVICE_SUSPEND state.
Normally it should go in FLASH_DEV_BUSY state after the ERASE_CONFIRM(0x30) command.

This is happening sometimes randomly after few cycles of test.

Observation:
This happens when toggling of Toggle_Bit I(DQ6) stops, but Toggle_Bit II(DQ2) still toggles causing the device go in FLASH_DEVICE_SUSPEND state as per the code.

Is this kind of error which is known for this device or needs to handle differently?

Number of occurrences of this state:

We observed that approximately 2 times in 232 cycles of the above test this had happened.

There are observations of this happening for sure at lease once in 100 tests.

Query:

As par the datasheet and SUSPEND_STATE should not happen after ERASE_CONFIRM(0x30) command. It is expected to get the DEV_BUSY state.

Support required:

Can you please help us to know why this can happen? Whether we are not handling it correctly?

Are there known issues with the Flash commands, which needs special handling?

Regards,

Anil Patil

0 Likes
AlbertB_56
Moderator
Moderator
Moderator
500 replies posted 50 likes received 250 replies posted

Hello Anil,

Please verify and confirm the BYTE# pin connection.  The BYTE# pin should be connected to ViL (or GND) for x8 (BYTE#) mode;  or connected to ViH (or VCC) for x16 (WORD) mode.  

As well, please provide waveforms of the last two data cycles (5th and 6th cycles) when initiating the Sector Erase command

Sector Erase - 5th and 6th data cycles :  adr: 555, data: 55 | SA 30

There may be a timing issue which may be initiating the Sector Erase command (B0h)

Thank you in advance...

 

Best regards,

Albert

Cypress Semiconductor Corp.

An Infineon Technologies Company

0 Likes

Hello Albert,

We are using x16 Word mode, BYTE# pin connected to VCC. 

Between all 6 cycles, there is no delay required right?

Each cycles are at least 100nS apart.

Best Regards,

Anil

0 Likes
npatil15
Level 2
Level 2
5 questions asked 10 sign-ins 5 replies posted

Hello Albert,

I'll be replying on behalf of Anil.

I want to correct the 5th cycle --> add(2AA) - data(55) (sector erase --> ref.: Table 17. Command Definitions (x16 Mode, BYTE# = VIH)).

I have some question on your reply,

1. We don't have any delays between 5th and 6th cycle, but we have added delay after 6th cycle more than 50us (almost 200us), can you please confirm does this delay allowing flash to start erasure and creating suspend signal ? (or having possibility)

2. After erase we are checking erasure is completed (BUSY) or not (NOT_BUSY) in while loop. And inside while loop we are running suspend and resume command. Can you also confirm does calling those suspend and resume in loop until status bit DQ7-DQ0 is NOT_BUSY is appropriate ? Or else please suggest, how suspend and resume command should be used ? As per communication on this discussion, it is clear that, it's not needed to use suspend and resume command after erase.

Thanks,

Nitin

 

0 Likes
AlbertB_56
Moderator
Moderator
Moderator
500 replies posted 50 likes received 250 replies posted

Hello Nitin,

Ans. for Q1:  there may be the possibility the 200uS may be creating a false suspend.  Please remove the 200uS delay.

Ans. for Q2:  The erase suspend and resume commands are valid and accepted during the erase operation.  After the erase operation has been completed there is no need to initiate an erase suspend, since no erase operation is current active.  Therefore an erase suspend is futile.

 

Best regards,

Albert

Cypress Semiconductor Corp.

An Infineon Technologies Company

0 Likes

Continuing to above discussion, What will happen if by the time we give SUSPEND command ERASE has Finished. Will the device go in some unknown state or just ignore the SUSPEND command?

This case is possible in our application as we have few milliseconds delay before checking Erase status again and during this we put ERASE in SUSPEND.

This is one case we do not have any information in datasheet.

Regards.

Anil Patil

0 Likes
AlbertB_56
Moderator
Moderator
Moderator
500 replies posted 50 likes received 250 replies posted

Hello Anil,

Theoretically, the SUSPEND command is not valid and is ignored, if the SUSPEND command is initiated after the ERASE embedded operation has successfully completed.   However, I will confirm and respond.

 

Best regards,

Albert

 

0 Likes