2 Megabit Flash + 1 Megabit SRAM ComboMemory
SST31LH021
Advance Information
Flash Byte-Program Operation
Figure 10 for timing diagram, and Figure 19 for the
The flash memory bank of the SST31LH021 device is
programmed on a byte-by-byte basis. The Program
operation consists of three steps. The first step is the
three-byte-load sequence for Software Data Protection.
The second step is to load byte address and byte data.
During the Byte-Program operation, the addresses are
latched on the falling edge of either BEF# or WE#,
whichever occurs last. The data is latched on the rising
edge of either BEF# or WE#, whichever occurs first. The
third step is the internal Program operation which is
initiated after the rising edge of the fourth WE# or BEF#,
whichever occurs first. The Program operation, once
initiated, will be completed, within 20 µs. See Figures 5
and 6 for WE# and BEF# controlled Program operation
timingdiagramsandFigure16forflowcharts. Duringthe
Programoperation,theonlyvalidFlashReadoperations
are Data# Polling and Toggle Bit. During the internal
Program operation, the host is free to perform additional
tasks. Any SDP commands loaded during the internal
Program operation will be ignored.
flowchart. Any SDP commands loaded during the Bank-
Erase operation will be ignored.
1
Flash Write Operation Status Detection
The SST31LH021 flash memory bank provides two
software means to detect the completion of a flash
memorybankWrite(ProgramorErase)cycle,inorderto
optimize the system Write cycle time. The software
detection includes two status bits: Data# Polling (DQ7)
and Toggle Bit (DQ6). The end of write detection mode
is enabled after the rising edge of WE#, which initiates
the internal Program or Erase operation. The actual
completion of the nonvolatile write is asynchronous with
thesystem;therefore,eitheraData#PollingorToggleBit
Read may be simultaneous with the completion of the
Write cycle. If this occurs, the system may possibly get
anerroneousresult,i.e.,validdatamayappeartoconflict
with either DQ7 or DQ6. In order to prevent spurious
rejection, if an erroneous result occurs, the software
routine should include a loop to read the accessed
location an additional two (2) times. If both reads are
valid, then the device has completed the Write cycle,
otherwise the rejection is valid.
2
3
4
5
6
7
Flash Sector-Erase Operation
The Sector-Erase operation allows the system to erase
the flash memory bank on a sector by sector basis. The
sector architecture is based on uniform sector size of 4
KBytes. The Sector-Erase operation is initiated by ex-
ecutingasix-byte-commandloadsequenceforsoftware
data protection with Sector-Erase command (30H) and
sector address (SA) in the last bus cycle. The address
lines A12-A17 will be used to determine the sector
address. The sector address is latched on the falling
edge of the sixth WE# pulse, while the command (30H)
is latched on the rising edge of the sixth WE# pulse. The
internal Erase operation begins after the sixth WE#
pulse. The end of Erase can be determined using either
Data# Polling or Toggle Bit methods. See Figure 9 for
timing waveforms. Any SDP commands loaded during
the Sector-Erase operation will be ignored.
8
Flash Data# Polling (DQ7)
When the SST31LH021 flash memory bank is in the
internalProgramoperation,anyattempttoreadDQ7will
produce the complement of the true data. Once the
Program operation is completed, DQ7 will produce true
data. The flash memory bank is then ready for the next
operation. During internal Erase operation, any attempt
to read DQ7 will produce a ‘0’. Once the internal Erase
operation is completed, DQ7 will produce a ‘1’. The
Data# Polling is valid after the rising edge of the fourth
WE# (or BEF#) pulse for Program operation. For Sector
or Bank-Erase, the Data# Polling is valid after the rising
edge of the sixth WE# (or BEF#) pulse. See Figure 7 for
Data# Polling timing diagram and Figure 17 for a flow-
chart.
9
10
11
12
13
14
15
16
Flash Bank-Erase Operation
The SST31LH021 flash memory bank provides a Bank-
Eraseoperation,whichallowstheusertoerasetheentire
flash memory bank array to the “1’s” state. This is useful
when the entire bank must be quickly erased. The Bank-
Erase operation is initiated by executing a six-byte soft-
ware data protection command sequence with Bank-
Erase command (10H) with address 5555H in the last
bytesequence.TheinternalEraseoperationbeginswith
the rising edge of the sixth WE# or BEF# pulse, which-
everoccursfirst.DuringtheinternalEraseoperation,the
only valid Flash Read operations are Toggle Bit and
Data# Polling. See Table 4 for the command sequence,
Flash Toggle Bit (DQ6)
During the internal Program or Erase operation, any
consecutive attempts to read DQ6 will produce alternat-
ing 0’s and 1’s, i.e., toggling between 0 and 1. When the
internal Program or Erase operation is completed, the
toggling will stop. The flash memory bank is then ready
for the next operation. The Toggle Bit is valid after the
risingedgeofthefourthWE#(orBE#)pulseforProgram
operation. For Sector or Bank-Erase, the Toggle Bit is
valid after the rising edge of the sixth WE# (or BEF#)
pulse. See Figure 8 for Toggle Bit timing diagram and
Figure 17 for a flowchart.
© 1999 Silicon Storage Technology, Inc.
353-11 11/99
3