S29GL01GP
S29GL512P
S29GL256P
S29GL128P
7.7.5
Erase Suspend/Erase Resume Commands
The Erase Suspend command allows the system to interrupt a sector erase operation and then read data from, or program data to,
any sector not selected for erasure. The sector addresses are “don't-cares” when writing this command. This command is valid only
during the sector erase operation, including the tSEA time-out period during the sector erase command sequence. The Erase
Suspend command is ignored if written during the chip erase operation.
When the Erase Suspend command is written during the sector erase operation, the device requires a maximum of 20µs (5µs
typical) to suspend the erase operation. However, when the Erase Suspend command is written during the sector erase time-out,
the device immediately terminates the time-out period and suspends the erase operation.
After the erase operation has been suspended, the device enters the erase-suspend-read mode. The system can read data from or
program data to any sector not selected for erasure. (The device “erase suspends” all sectors selected for erasure.) Reading at any
address within erase-suspended sectors produces status information on DQ7-DQ0. The system can use DQ7, or DQ6, and DQ2
together, to determine if a sector is actively erasing or is erase-suspended. Refer to Table 7.35 for information on these status bits.
After an erase-suspended program operation is complete, the device returns to the erase-suspend-read mode. The system can
determine the status of the program operation using write operation status bits, just as in the standard program operation.
In the erase-suspend-read mode, the system can also issue the Autoselect command sequence. Refer to Write Buffer Programming
on page 23 and the Autoselect on page 17 for details.
To resume the sector erase operation, the system must write the Erase Resume command. The address of the erase-suspended
sector is a “don't-care” when writing this command. Further writes of the Resume command are ignored. Another Erase Suspend
command can be written after the chip has resumed erasing.
Software Functions and Sample Code
Erase Suspend
(LLD Function = lld_EraseSuspendCmd)
Cycle
Operation
Byte Address
Word Address
Data
1
Write
Base + XXXh
Base + XXXh
00B0h
The following is a C source code example of using the erase suspend function. Refer to the Cypress Low Level Driver User’s Guide
(available on www.cypress.com) for general information on Cypress Flash memory software development guidelines.
/* Example: Erase suspend command */
*( (UINT16 *)base_addr ) = 0x00B0;
/* write suspend command
*/
Erase Resume
(LLD Function = lld_EraseResumeCmd)
Cycle
Operation
Byte Address
Word Address
Data
1
Write
Sector Address
Sector Address
0030h
The following is a C source code example of using the erase resume function. Refer to the Cypress Low Level Driver User’s Guide
(available on www.cypress.com) for general information on Cypress Flash memory software development guidelines.
/* Example: Erase resume command */
*( (UINT16 *)sector_addr ) = 0x0030;
/* write resume command
*/
/* The flash needs adequate time in the resume state */
Document Number: 002-00886 Rev. *B
Page 28 of 83