Document Number: 002-00833 Rev. *L
Page 33 of 74
S29VS256R
S29VS128R
S29XS256R
S29XS128R
7.7.2
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 t
PSL
(program suspend latency) 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 and page.
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 in Erase Suspend or Program Suspend.
After the Program Resume command is written, the device reverts to programming and the status bits are updated. The system can
determine the status of the program operation by reading the Status Register, just as in the standard program operation. See
for more information.
The system must write the Program Resume command 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
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
) for general information on Cypress Flash memory software development guidelines.
/* Example: Program suspend command */
*( (UINT16 *)ban 0x000 ) = 0x0051; /* write suspend command */
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
) for general information on Cypress Flash memory software development guidelines.
/* Example: Program resume command */
*( (UINT16 *)sector_a 0x000 ) = 0x0050; /* write resume command */
Table 31. Program Suspend
Cycle
Operation
Byte Address
Word Address
Data
1
Write
Bank Address
Bank Address
0051h
Table 32. Program Resume
Cycle
Operation
Byte Address
Word Address
Data
1
Write
Sector A 000h
Sector A 000h
0050h