S29GL01GP
S29GL512P
S29GL256P
S29GL128P
7.7.6
Program Suspend/Program Resume Commands
The Program Suspend command allows the system to interrupt an embedded programming operation or a “Write to Buffer”
programming operation so that data can read from any non-suspended sector. When the Program Suspend command is written
during a programming process, the device halts the programming operation within 15µs maximum (5µs typical) and updates the
status bits. Addresses are “don't-cares” when writing the Program Suspend command.
After the programming operation has been suspended, the system can read array data from any non-suspended sector. The
Program Suspend command may also be issued during a programming operation while an erase is suspended. In this case, data
may be read from any addresses not within a sector in Erase Suspend or Program Suspend. If a read is needed from the Secured
Silicon Sector area, then user must use the proper command sequences to enter and exit this region.
The system may also write the Autoselect Command Sequence when the device is in Program Suspend mode. The device allows
reading Autoselect codes in the suspended sectors, since the codes are not stored in the memory array. When the device exits the
Autoselect mode, the device reverts to Program Suspend mode, and is ready for another valid operation. See Autoselect
on page 17 for more information.
After the Program Resume command is written, the device reverts to programming. The system can determine the status of the
program operation using the write operation status bits, just as in the standard program operation. See Write Operation Status
on page 32 for more information.
The system must write the Program Resume command (address bits are “don't care”) to exit the Program Suspend mode and
continue the programming operation. Further writes of the Program Resume command are ignored. Another Program Suspend
command can be written after the device has resumed programming.
Software Functions and Sample Code
Program Suspend
(LLD Function = lld_ProgramSuspendCmd)
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 program 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: Program suspend command */
*( (UINT16 *)base_addr ) = 0x00B0;
/* write suspend command
*/
Program Resume
(LLD Function = lld_ProgramResumeCmd)
Cycle
Operation
Byte Address
Word Address
Data
1
Write
Base + XXXh
Base + XXXh
0030h
The following is a C source code example of using the program 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: Program resume command */
*( (UINT16 *)base_addr ) = 0x0030;
/* write resume command
*/
Document Number: 002-00886 Rev. *B
Page 29 of 83