D a t a S h e e t ( P r e l i m i n a r y )
7.7.3
Sector Erase
The sector erase function erases one or more sectors in the memory array. (See Table 12.1 on page 68 and
Figure 7.3.) The device does not require the system to preprogram a sector prior to erase. The Embedded
Erase algorithm automatically programs and verifies the entire memory to an all zero data pattern prior to
electrical erase. After a successful sector erase, all locations within the erased sector contain FFFFh. The
system is not required to provide any controls or timings during these operations.
After the command sequence is written, a sector erase time-out of no less than tSEA occurs. During the time-
out period, additional sector addresses 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. Any sector erase address and command following the exceeded
time-out (50µs) may or may not be accepted. Any command other than Sector Erase or Erase Suspend
during the time-out period resets that sector to the read mode. The system can monitor DQ3 to determine if
the sector erase timer has timed out (See Section 7.8.6.) The time-out begins from the rising edge of the final
WE# pulse in the command sequence.
When the Embedded Erase algorithm is complete, the sector returns to reading array data and addresses are
no longer latched. The system can determine the status of the erase operation by reading DQ7 or DQ6/DQ2
in the erasing sector. Refer to Section 7.8 for information on these status bits.
Once the sector erase operation has begun, only the Erase Suspend command is valid. All other commands
are ignored. However, note that a hardware reset immediately terminates the erase operation. If that occurs,
the sector erase command sequence should be reinitiated once that sector has returned to reading array
data, to ensure the sector is properly erased.
The Unlock Bypass feature allows the host system to send program commands to the Flash device without
first writing unlock cycles within the command sequence. See Section 7.7.8 for details on the Unlock Bypass
function.
Figure 7.3 illustrates the algorithm for the erase operation. Refer to Section 11.7.5 for parameters and timing
diagrams.
Software Functions and Sample Code
Table 7.8 Sector Erase
(LLD Function = lld_SectorEraseCmd)
Cycle
Description
Unlock
Operation
Write
Byte Address
Base + AAAh
Base + 555h
Base + AAAh
Base + AAAh
Base + 555h
Sector Address
Word Address
Base + 555h
Base + 2AAh
Base + 555h
Base + 555h
Base + 2AAh
Sector Address
Data
00AAh
0055h
0080h
00AAh
0055h
0030h
1
2
3
4
5
6
Unlock
Write
Setup Command
Unlock
Write
Write
Unlock
Write
Sector Erase Command
Write
Unlimited additional sectors may be selected for erase; command(s) must be written within 50 µs.
The following is a C source code example of using the sector erase function. Refer to the Spansion Low Level
Driver User’s Guide (available on www.spansion.com) for general information on Spansion Flash memory
software development guidelines.
/* Example: Sector Erase Command */
*( (UINT16 *)base_addr + 0x555 ) = 0x00AA;
*( (UINT16 *)base_addr + 0x2AA ) = 0x0055;
*( (UINT16 *)base_addr + 0x555 ) = 0x0080;
*( (UINT16 *)base_addr + 0x555 ) = 0x00AA;
*( (UINT16 *)base_addr + 0x2AA ) = 0x0055;
/* write unlock cycle 1
/* write unlock cycle 2
/* write setup command
*/
*/
*/
/* write additional unlock cycle 1 */
/* write additional unlock cycle 2 */
*( (UINT16 *)sector_address )
= 0x0030;
/* write sector erase command
*/
30
S29GL-P MirrorBit® Flash Family
S29GL-P_00_A7 November 8, 2007