
30
S29GL-P MirrorBit Flash Family
S29GL-P_00_A12 November 20, 2009
Da ta
Sh e e t
7.7.3
Sector Erase
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 (50s) 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.
diagrams.
Software Functions and Sample Code
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;
/* write unlock cycle 1
*/
*( (UINT16 *)base_addr + 0x2AA ) = 0x0055;
/* write unlock cycle 2
*/
*( (UINT16 *)base_addr + 0x555 ) = 0x0080;
/* write setup command
*/
*( (UINT16 *)base_addr + 0x555 ) = 0x00AA;
/* write additional unlock cycle 1 */
*( (UINT16 *)base_addr + 0x2AA ) = 0x0055;
/* write additional unlock cycle 2 */
*( (UINT16 *)sector_address )
= 0x0030;
/* write sector erase command
*/
Table 7.8 Sector Erase
(LLD Function = lld_SectorEraseCmd)
Cycle
Description
Operation
Byte Address
Word Address
Data
1
Unlock
Write
Base + AAAh
Base + 555h
00AAh
2
Unlock
Write
Base + 555h
Base + 2AAh
0055h
3
Setup Command
Write
Base + AAAh
Base + 555h
0080h
4
Unlock
Write
Base + AAAh
Base + 555h
00AAh
5
Unlock
Write
Base + 555h
Base + 2AAh
0055h
6
Sector Erase Command
Write
Sector Address
0030h
Unlimited additional sectors may be selected for erase; command(s) must be written within 50 s.