– Single Cycle Reprogram (Erase and Program)
– 1024 Pages (264 Bytes/Page) Main Memory
• Supports Page and Block Erase Operations
• Two 264-byte SRAM Data Buffers – Allows Receiving of Data
while Reprogramming of Nonvolatile Memory
• Continuous Read Capability through Entire Array
– Ideal for Code Shadowing Applications
• Low Power Dissipation
– 4 mA Active Read Current Typical
– 2 µA CMOS Standby Current Typical
• 20 MHz Max Clock Frequency
• Hardware Data Protection Feature
• 100% Compatible to AT45DB021 and AT45DB021A
• 5.0V-tolerant Inputs: SI, SCK, CS, RESET and WP Pins
• Commercial and Industrial Temperature Ranges
Description
The AT45DB021B is a 2.7-volt only, serial interface Flash memory ideally suited for
a wide variety of digital voice-, image-, program code- and data-storage applications.
Its 2,162,688 bits of memory are organized as 1024 pages of 264 bytes each. In addition to the main memory, the AT45DB021B also contains two SRAM data buffers
of 264 bytes each. The buffers allow receiving of data while a page in the main mem-
ory is being reprogrammed, as well as reading or writing a continuous data stream.
EEPROM emulation (bit or byte alterability) is easily handled with a self-contained three
step Read-Modify-Write operation. Unlike conventional Flash memories that are
accessed randomly with multiple address lines and a parallel interface, the DataFlash
uses a SPI serial interface to sequentially access its data. DataFlash supports SPI mode
0 and mode 3. The simple serial interface facilitates hardware layout, increases system
reliability, minimizes switching noise, and reduces package size and active pin count.
The device is optimized for use in many commercial and industrial applications where
high density, low pin count, low voltage, and low power are essential. The device operates at clock frequencies up to 20 MHz with a typical active read current consumption of
4mA.
To allow for simple in-system reprogrammability, the AT45DB021B does not require
high input voltages for programming. The device operates from a single power supply,
2.7V to 3.6V, for both the program and read operations. The AT45DB021B is enabled
through the chip select pin (CS
) and accessed via a three-wire interface consisting of
the Serial Input (SI), Serial Output (SO), and the Serial Clock (SCK).
All programming cycles are self-timed, and no separate erase cycle is required before
programming.
When the device is shipped from Atmel, the most significant page of the memory array
may not be erased. In other words, the contents of the last page may not be filled with
FFH.
Memory Array
WP
PAGE (264 BYTES)
SCK
CS
RESET
VCC
GND
RDY/BUSY
FLASH MEMORY ARRAY
BUFFER 2 (264 BYTES)BUFFER 1 (264 BYTES)
I/O INTERFACE
SOSI
To provide optimal flexibility, the memory array of the AT45DB021B is divided into three
levels of granularity comprised of sectors, blocks and pages. The Memory Architecture
Diagram illustrates the breakdown of each level and details the number of pages per
sector and block. All program operations to the DataFlash occur on a page-by-page
basis; however, the optional erase operations can be performed at the block or page
level.
The device operation is controlled by instructions from the host processor. The list of
instructions and their associated opcodes are contained in Tables 1 through 4 (pages 10
and 11). A valid instruction starts with the falling edge of CS
8-bit opcode and the desired buffer or main memory address location. While the CS
followed by the appropriate
pin
is low, toggling the SCK pin controls the loading of the opcode and the desired buffer or
main memory address location through the SI (serial input) pin. All instructions,
addresses, and data are transferred with the most significant bit (MSB) first.
Buffer addressing is referenced in the datasheet using the terminology BFA8 -BFA0 to
denote the nine address bits required to designate a byte address within a buffer. Main
memory addressing is referenced using the terminology PA9 - PA0 and BA8-BA0 where
PA9- PA0 denotes the 10 address bits required to designate a page address and BA8 BA0 denotes the nine address bits required to designate a byte address within the page.
Read CommandsBy specifying the appropriate opcode, data can be read from the main memory or from
either one of the two data buffers. The DataFlash supports two categories of read
modes in relation to the SCK signal. The differences between the modes are in respect
to the inactive state of the SCK signal as well as which clock cycle data will begin to be
output. The two categories, which are comprised of four modes total, are defined as
Inactive Clock Polarity Low or Inactive Clock Polarity High and SPI Mode 0 or SPI
Mode 3. A separate opcode (refer to Table 1 on page 10 for a complete list) is used to
select which category will be used for reading. Please refer to the “Detailed Bit-level
Read Timing” diagrams in this datasheet for details on the clock cycle sequences for
each mode.
CONTINUOUS ARRAY READ: By supplying an initial starting address for the main
memory array, the Continuous Array Read command can be utilized to sequentially
read a continuous stream of data from the device by simply providing a clock signal; no
additional addressing information or control signals need to be provided. The DataFlash
incorporates an internal address counter that will automatically increment on every clock
1937F–DFLSH–10/02
3
cycle, allowing one continuous read operation without the need of additional address
sequences. To perform a continuous read, an opcode of 68H or E8H must be clocked
intothedevicefollowedby24addressbitsand32don’t care bits. The first five bits of
the 24-bit address sequence are reserved for upward and downward compatibility to
larger and smaller density devices (see Notes under “Command Sequence for
Read/Write Operations” diagram). The next 10 address bits (PA9-PA0) specify which
page of the main memory array to read, and the last nine bits (BA8 -BA0) of the 24-bit
address sequence specify the starting byte address within the page. The 32 don’tcare
bits that follow the 24 address bits are needed to initialize the read operation. Following
the32don’t care bits, additional clock pulses on the SCK pin will result in serial data
being output on the SO (serial output) pin.
The CS
care bits, and the reading of data. When the end of a page in main memory is reached
during a Continuous Array Read, the device will continue reading at the beginning of the
next page with no delays incurred during the page boundary crossover (the crossover
from the end of one page to the beginning of the next page). When the last bit in the
main memory array has been read, the device will continue reading back at the beginning of the first page of memory. As with crossing over page boundaries, no delays will
be incurred when wrapping around from the end of the array to the beginning of the
array.
A low-to-high transition on the CS
SO pin. The maximum SCK frequency allowable for the Continuous Array Read is
defined by the f
ers and leaves the contents of the buffers unchanged.
MAIN MEMORY PAGE READ: A Main Memory Page Read allows the user to read data
directly from any one of the 1024 pages in the main memory, bypassing both of the data
buffers and leaving the contents of the buffers unchanged. To start a page read, an
opcode of 52H or D2H must be clocked into the device followed by 24 address bits and
32 don’t care bits. The first five bits of the 24-bit address sequence are reserved bits, the
next 10 address bits (PA9-PA0) specify the page address, and the next nine address
bits (BA8-BA0) specify the starting byte address within the page. The 32 don’tcarebits
which follow the 24 address bits are sent to initialize the read operation. Following the
32 don’t care bits, additional pulses on SCK result in serial data being output on the SO
(serial output) pin. The CS
address bits, the don’t care bits and the reading of data. When the end of a page in main
memory is reached during a Main Memory Page Read, the device will continue reading
at the beginning of the same page. A low-to-high transition on the CS
the read operation and tri-state the SO pin.
pin must remain low during the loading of the opcode, the address bits, the don’t
pin will terminate the read operation and tri-state the
specification. The Continuous Array Read bypasses both data buff-
CAR
pin must remain low during the loading of the opcode, the
pin will terminate
BUFFER READ: Data can be read from either one of the two buffers, using different
opcodes to specify which buffer to read from. An opcode of 54H or D4H is used to read
data from buffer 1, and an opcode of 56H or D6H is used to read data from buffer 2. To
perform a Buffer Read, the eight bits of the opcode must be followed by 15 don’tcare
bits, nine address bits, and eight don’t care bits. Since the buffer size is 264-bytes, nine
address bits (BFA8-BFA0) are required to specify the first byte of data to be read from
the buffer. The CS
bits, the don’t care bits and the reading of data. When the end of a buffer is reached, the
device will continue reading back at the beginning of the buffer. A low-to-high transition
on the CS
4
AT45DB021B
pin will terminate the read operation and tri-state the SO pin.
pin must remain low during the loading of the opcode, the address
1937F–DFLSH–10/02
AT45DB021B
STATUS REGISTER READ: The status register can be used to determine the device’s
ready/busy status, the result of a Main Memory Page to Buffer Compare operation, or
the device density. To read the status register, an opcode of 57H or D7H must be
loaded into the device. After the last bit of the opcode is shifted in, the eight bits of the
status register, starting with the MSB (bit 7), will be shifted out on the SO pin during the
next eight clock cycles. The five most-significant bits of the status register will contain
device information, while the remaining three least-significant bits are reserved for future
use and will have undefined values. After bit 0 of the status register has been shifted
out, the sequence will repeat itself (as long as CS
gled) starting again with bit 7. The data in the status register is constantly updated, so
each repeating sequence will output new data.
Status Register Format
Bit 7Bit 6Bit 5Bit 4Bit 3Bit 2Bit 1Bit 0
remains low and SCK is being tog-
Program and Erase
Commands
RDY/BUSY
Ready/Busy status is indicated using bit 7 of the status register. If bit 7 is a 1, then the
device is not busy and is ready to accept the next command. If bit 7 is a 0, then the
device is in a busy state. The user can continuously poll bit 7 of the status register by
stopping SCK at a low level once bit 7 has been output. The status of bit 7 will continue
to be output on the SO pin, and once the device is no longer busy, the state of SO will
change from 0 to 1. There are eight operations that can cause the device to be in a busy
state: Main Memory Page to Buffer Transfer, Main Memory Page to Buffer Compare,
Buffer to Main Memory Page Program with Built-in Erase, Buffer to Main Memory Page
Program without Built-in Erase, Page Erase, Block Erase, Main Memory Page Program,
and Auto Page Rewrite.
The result of the most recent Main Memory Page to Buffer Compare operation is indicated using bit 6 of the status register. If bit 6 is a 0, then the data in the main memory
page matches the data in the buffer. If bit 6 is a 1, then at least one bit of the data in the
main memory page does not match the data in the buffer.
The device density is indicated using bits 5, 4, 3 and 2 of the status register. For the
AT45DB021B, the four bits are 0, 1, 0 and 1. The decimal value of these four binary bits
does not equate to the device density; the four bits represent a combinational code
relating to differing densities of Serial DataFlash devices, allowing a total of sixteen different density configurations.
BUFFER WRITE: Data can be shifted in from the SI pin into either buffer 1 or buffer 2.
To load data into either buffer, an 8-bit opcode, 84H for buffer 1 or 87H for buffer 2, must
be followed by 15 don't care bits and nine address bits (BFA8-BFA0). The nine address
bits specify the first byte in the buffer to be written. The data is entered following the
address bits. If the end of the data buffer is reached, the device will wrap around back to
the beginning of the buffer. Data will continue to be loaded into the buffer until a low-tohigh transition is detected on the CS
COMP0101XX
pin.
1937F–DFLSH–10/02
BUFFER TO MAIN MEMORY PAGE PROGRAM WITH BUILT-IN ERASE: Data written
into either buffer 1 or buffer 2 can be programmed into the main memory. To start the
operation, an 8-bit opcode (83H for buffer 1 or 86H for buffer 2) must be followed by the
five reserved bits, 10 address bits (PA9-PA0) that specify the page in the main memory
to be written, and nine additional don’t care bits. When a low-to-high transition occurs on
the CS
program the data stored in the buffer into the specified page in the main memory. Both
the erase and the programming of the page are internally self-timed and should take
pin, the part will first erase the selected page in main memory to all 1s and then
5
place in a maximum time of tEP. During this time, the status register will indicate that the
part is busy.
BUFFER TO MAIN MEMORY PAGE PROGRAM WITHOUT BUILT-IN ERASE: Apreviously erased page within main memory can be programmed with the contents of either
buffer 1 or buffer 2. To start the operation, an 8-bit opcode (88H for buffer 1 or 89H for
buffer 2) must be followed by the five reserved bits, 10 address bits (PA9-PA0) that
specify the page in the main memory to be written, and nine additional don’tcarebits.
When a low-to-high transition occurs on the CS
pin, the part will program the data stored
in the buffer into the specified page in the main memory. It is necessary that the page in
main memory that is being programmed has been previously erased. The programming
of the page is internally self-timed and should take place in a maximum time of t
.Dur-
P
ing this time, the status register will indicate that the part is busy.
Successive page programming operations without doing a page erase are not recommended. In other words, changing bytes within a page from a “1” to a “0” during multiple
page programming operations without erasing that page is not recommended.
PAGE ERASE: The optional Page Erase command can be used to individually erase
any page in the main memory array allowing the Buffer to Main Memory Page Program
without Built-in Erase command to be utilized at a later time. To perform a Page Erase,
an opcode of 81H must be loaded into the device, followed by five reserved bits, ten
address bits (PA9- PA0), and nine don’t care bits. The ten address bits are used to specify which page of the memory array is to be erased. When a low-to-high transition occurs
on the CS
nally self-timed and should take place in a maximum time of t
pin, the part will erase the selected page to 1s. The erase operation is inter-
. During this time, the
PE
status register will indicate that the part is busy.
BLOCK ERASE: A block of eight pages can be erased at one time allowing the Buffer
to Main Memory Page Program without Built-in Erase command to be utilized to reduce
programming times when writing large amounts of data to the device. To perform a
Block Erase, an opcode of 50H must be loaded into the device, followed by five
reserved bits, seven address bits (PA9 -PA3), and 12 don’t care bits. The seven address
bits are used to specify which block of eight pages is to be erased. When a low-to-high
transition occurs on the CS
pin, the part will erase the selected block of eight pages to
1s. The erase operation is internally self-timed and should take place in a maximum
time of t
. During this time, the status register will indicate that the part is busy.
BE
Block Erase Addressing
PA9PA8PA7PA6PA5PA4PA3PA2PA1PA0Block
0000000XXX 0
0000001XXX 1
0000010XXX 2
0000011XXX 3
•
•
•
1111100XXX124
1111101XXX125
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
1111110XXX126
1111111XXX127
6
AT45DB021B
1937F–DFLSH–10/02
AT45DB021B
MAIN MEMORY PAGE PROGRAM THROUGH BUFFER: This operation is a combina-
tion of the Buffer Write and Buffer to Main Memory Page Program with Built-in Erase
operations. Data is first shifted into buffer 1 or buffer 2 from the SI pin and then programmed into a specified page in the main memory. To initiate the operation, an 8-bit
opcode (82H for buffer 1 or 85H for buffer 2) must be followed by the five reserved bits
and 20 address bits. The 10 most-significant address bits (PA9 - PA0) select the page in
the main memory where data is to be written, and the next nine address bits (BFA8BFA0) select the first byte in the buffer to be written. After all address bits are shifted in,
the part will take data from the SI pin and store it in one of the data buffers. If the end of
the buffer is reached, the device will wrap around back to the beginning of the buffer.
When there is a low-to-high transition on the CS
page in main memory to all 1s and then program the data stored in the buffer into the
specified page in the main memory. Both the erase and the programming of the page
are internally self-timed and should take place in a maximum of time t
time, the status register will indicate that the part is busy.
Additional CommandsMAIN MEMORY PAGE TO BUFFER TRANSFER: A page of data can be transferred
from the main memory to either buffer 1 or buffer 2. To start the operation, an 8-bit
opcode, 53H for buffer 1 and 55H for buffer 2, must be followed by the five reserved bits,
10 address bits (PA9-PA0) which specify the page in main memory that is to be transferred, and nine don’tcarebits.TheCS
load the opcode, the address bits, and the don’t care bits from the SI pin. The transfer of
the page of data from the main memory to the buffer will begin when the CS
tions from a low to a high state. During the transfer of a page of data (t
register can be read to determine whether the transfer has been completed or not.
pin must be low while toggling the SCK pin to
pin, the part will first erase the selected
.Duringthis
EP
pin transi-
), the status
XFR
MAIN MEMORY PAGE TO BUFFER COMPARE: A page of data in main memory can
be compared to the data in buffer 1 or buffer 2. To initiate the operation, an 8-bit opcode
(60H for buffer 1 and 61H for buffer 2) must be followed by 24 address bits consisting of
the five reserved bits, 10 address bits (PA9-PA0) which specify the page in the main
memory that is to be compared to the buffer, and nine don’tcarebits.TheCS
pin must
be low while toggling the SCK pin to load the opcode, the address bits and the don’t
care bits from the SI pin. On the low-to-high transition of the CS
pin, the 264 bytes in the
selected main memory page will be compared with the 264 bytes in buffer 1 or buffer 2.
During this time (t
), the status register will indicate that the part is busy. On comple-
XFR
tion of the compare operation, bit 6 of the status register is updated with the result of the
compare.
AUTO PAGE REWRITE: This mode is needed only if multiple bytes within a page or
multiple pages of data are modified in a random fashion. This mode is a combination of
two operations: Main Memory Page to Buffer Transfer and Buffer to Main Memory Page
Program with Built-in Erase. A page of data is first transferred from the main memory to
buffer 1 or buffer 2, and then the same data (from buffer 1 or buffer 2) is programmed
back into its original page of main memory. To start the rewrite operation, an 8-bit
opcode (58H for buffer 1 or 59H for buffer 2) must be followed by the five reserved bits,
10 address bits (PA9-PA0) that specify the page in main memory to be rewritten, and
nine additional don’t care bits. When a low-to-high transition occurs on the CS
pin, the
part will first transfer data from the page in main memory to a buffer and then program
the data from the buffer back into same page of main memory. The operation is internally self-timed and should take place in a maximum time of t
. During this time, the
EP
status register will indicate that the part is busy.
1937F–DFLSH–10/02
7
If a sector is programmed or reprogrammed sequentially page-by-page, then the programming algorithm shown in Figure 1 on page 26 is recommended. Otherwise, if
multiple bytes in a page or several pages are programmed randomly in a sector, then
the programming algorithm shown in Figure 2 on page 27 is recommended. Each page
within a sector must be updated/rewritten at least once within every 10,000 cumulative
page erase/program operations in that sector.
Operation Mode
Summary
The modes described can be separated into two groups – modes which make use of the
Flash memory array (Group A) and modes which do not make use of the Flash memory
array (Group B).
Group A modes consist of:
1. Main Memory Page Read
2. Main Memory Page to Buffer 1 (or 2) Transfer
3. Main Memory Page to Buffer 1 (or 2) Compare
4. Buffer 1 (or 2) to Main Memory Page Program with Built-in Erase
5. Buffer 1 (or 2) to Main Memory Page Program without Built-in Erase
6. Page Erase
7. Block Erase
8. Main Memory Page Program through Buffer
9. Auto Page Rewrite
Group B modes consist of:
1. Buffer1(or2)Read
2. Buffer1(or2)Write
3. Status Register Read
If a Group A mode is in progress (not fully completed), then another mode in Group A
should not be started. However, during this time in which a Group A mode is in
progress, modes in Group B can be started.
This gives the Serial DataFlash the ability to virtually accommodate a continuous data
stream. While data is being programmed into main memory from buffer 1, data can be
loaded into buffer 2 (or vice versa). See application note AN-4 (“Using Atmel’sSerial
DataFlash”) for more details.
device. The SI pin is used for all data input, including opcodes and address sequences.
SERIAL OUTPUT (SO): The SO pin is an output-only pin and is used to shift data out
from the device.
SERIAL CLOCK (SCK): The SCK pin is an input-only pin and is used to control the flow
of data to and from the DataFlash. Data is always clocked into the device on the rising
edge of SCK and clocked out of the device on the falling edge of SCK.
CHIP SELECT (CS
device is not selected, data will not be accepted on the SI pin, and the SO pin will
remain in a high-impedance state. A high-to-low transition on the CS
start an operation, and a low-to-high transition on the CS
operation.
8
AT45DB021B
): The DataFlash is selected when the CS pin is low. When the
pin is required to
pin is required to end an
1937F–DFLSH–10/02
AT45DB021B
WRITE PROTECT: If the WP pin is held low, the first 256 pages of the main memory
cannot be reprogrammed. The only way to reprogram the first 256 pages is to first drive
the protect pin high and then use the program commands previously mentioned. The
WP
pin is internally pulled high; therefore, connection of the WP pin is not necessary if
this pin and feature will not be utilized. However, it is recommended that the WP
driven high externally whenever possible.
pin be
RESET
and reset the internal state machine to an idle state. The device will remain in the reset
condition as long as a low level is present on the RESET
resume once the RESET
The device incorporates an internal power-on reset circuit, so there are no restrictions
on the RESET
high; therefore, connection of the RESET
not be utilized. However, it is recommended that the RESET
nally whenever possible.
READY/BUSY
an internally self-timed operation. This pin, which is normally in a high state (through
a1kΩ external pull-up resistor), will be pulled low during programming operations, com-
pare operations, and during page-to-buffer transfers.
The busy status indicates that the Flash memory array and one of the buffers cannot be
accessed; read and write operations to the other buffer can still be performed.
: A low state on the reset pin (RESET) will terminate the operation in progress
pin. Normal operation can
pin is brought back to a high level.
pin during power-on sequences. The RESET pin is also internally pulled
pin is not necessary if this pin and feature will
pinbedrivenhighexter-
: This open-drain output pin will be driven low when the device is busy in
Power-on/Reset StateWhen power is first applied to the device, or when recovering from a reset condition, the
device will default to SPI Mode 3. In addition, the SO pin will be in a high-impedance
state, and a high-to-low transition on the CS
tion. The SPI mode will be automatically selected on every falling edge of CS
sampling the inactive clock state.
pin will be required to start a valid instruc-
by
1937F–DFLSH–10/02
9
Table 1 . Read Commands
CommandSCK ModeOpcode
Continuous Array Read
Inactive Clock Polarity Low or High68H
SPI Mode 0 or 3E8H
Main Memory Page Read
Buffer 1 Read
Buffer 2 Read
Status Register Read
Inactive Clock Polarity Low or High52H
SPI Mode 0 or 3D2H
Inactive Clock Polarity Low or High54H
SPI Mode 0 or 3D4H
Inactive Clock Polarity Low or High56H
SPI Mode 0 or 3D6H
Inactive Clock Polarity Low or High57H
SPI Mode 0 or 3D7H
Table 2 . Program and Erase Commands
CommandSCK ModeOpcode
Buffer 1 WriteAny84H
Buffer 2 WriteAny87H
Buffer 1 to Main Memory Page Program with Built-in EraseAny83H
Buffer 2 to Main Memory Page Program with Built-in EraseAny86H
Buffer 1 to Main Memory Page Program without Built-in EraseAny88H
Buffer 2 to Main Memory Page Program without Built-in EraseAny89H
Page EraseAny81H
Block EraseAny50H
Main Memory Page Program through Buffer 1Any82H
Main Memory Page Program through Buffer 2Any85H
Table 3 . Additional Commands
CommandSCK ModeOpcode
Main Memory Page to Buffer 1 TransferAny53H
Main Memory Page to Buffer 2 TransferAny55H
Main Memory Page to Buffer 1 CompareAny60H
Main Memory Page to Buffer 2 CompareAny61H
Auto Page Rewrite through Buffer 1Any58H
Auto Page Rewrite through Buffer 2Any59H
Note:In Tables 2 and 3, an SCK mode designation of “Any” denotes any one of the four modes of operation (Inactive Clock Polarity