Following the acquisi�on of Adesto Technologies, Dialog Semiconductor offers memory products as part of its
product por�olio. The exis�ng content from datasheets, including part numbers and codes should be used. Terms of
Purchase are provided on the Dialog website
https://www.dialog-semiconductor.com/general-terms-and-conditions-purchase
View our Dialog memory products por�olio:
www.dialog-semiconductor.com/products/memory
Contacting Dialog Semiconductor
United Kingdom (Headquarters)
Dialog Semiconductor (UK) LTD
Phone: +44 1793 757700
North America
Dialog Semiconductor Inc.
Phone: +1 408 845 8500
Hong Kong
Dialog Semiconductor Hong Kong
Phone: +852 2607 4271
China (Shenzhen)
Dialog Semiconductor China
Phone: +86 755 2981 3669
Germany
Dialog Semiconductor GmbH
Phone: +49 7021 805-0
Japan
Dialog Semiconductor K. K.
Phone: +81 3 5769 5100
Korea
Dialog Semiconductor Korea
Phone: +82 2 3469 8200
China (Shanghai)
Dialog Semiconductor China
Phone: +86 21 5424 9058
The Netherlands
Dialog Semiconductor B.V.
Phone: +31 73 640 8822
Taiwan
Dialog Semiconductor Taiwan
Phone: +886 281 786 222
Email:
enquiry@diasemi.com
Web site:
www.dialog-semiconductor.com
#
AT25SF041
4-Mbit, 2.5V Minimum
SPI Serial Flash Memory with Dual-I/O and Quad-I/O Support
Not recommended for
new designs. Use
AT25SF041B.
Features
Single 2.5V - 3.6V Supply
Serial Peripheral Interface (SPI) Compatible
Supports SPI Modes 0 and 3
Supports Dual and Quad Output Read
104MHz Maximum Operating Frequency
Clock-to-Output (tV) of 6 ns
Flexible, Optimized Erase Architecture for Code + Data Storage Applications
Uniform 4-Kbyte Block Erase
Uniform 32-Kbyte Block Erase
Uniform 64-Kbyte Block Erase
Full Chip Erase
Hardware Controlled Locking of Protected Blocks via WP Pin
3 Protected Programmable Security Register Pages
Flexible Programming
Byte/Page Program (1 to 256 Bytes)
Fast Program and Erase Times
0.7ms Typical Page Program (256 Bytes) Time
70ms Typical 4-Kbyte Block Erase Time
300ms Typical 32-Kbyte Block Erase Time
600ms Typical 64-Kbyte Block Erase Time
JEDEC Standard Manufacturer and Device ID Read Methodology
Low Power Dissipation
2µA Deep Power-Down Current (Typical)
10µA Standby current (Typical)
4mA Active Read Current (Typical)
Endurance: 100,000 Program/Erase Cycles
Data Retention: 20 Years
Complies with Full Industrial Temperature Range
Industry Standard Green (Pb/Halide-free/RoHS Compliant) Package Options
8-lead SOIC (150-mil and 208-mil)
8-pad Ultra Thin DFN (5 x 6 x 0.6 mm and 2 x 3 x 0.6 mm)
8-lead TSSOP (4 x 4 mm)
Die in Wafer Form
DS-25SF041–044I–8/2020
Description
The Adesto® AT25SF041 is a serial interface Flash memory device designed for use in a wide variety of high-volume
consumer based applications in which program code is shadowed from Flash memory into embedded or external RAM
for execution. The flexible erase architecture of the AT25SF041 is ideal for data storage as well, eliminating the need for
additional data storage devices.
The erase block sizes of the AT25SF041 have been optimized to meet the needs of today's code and data storage
applications. By optimizing the size of the erase blocks, the memory space can be used much more efficiently. Because
certain code modules and data storage segments must reside by themselves in their own erase regions, the wasted and
unused memory space that occurs with large block erase Flash memory devices can be greatly reduced. This increased
memory space efficiency allows additional code routines and data storage segments to be added while still maintaining
the same overall device density.
The device also contains three pages of Security Register that can be used for purposes such as unique device
serialization, system-level Electronic Serial Number (ESN) storage, locked key storage, etc. These Security Register
pages can be individually locked.
1.
Pin Descriptions and Pinouts
Table 1-1.
Symbol
CS
SCK
Pin Descriptions
Name and Function
CHIP SELECT: Asserting the CS pin selects the device. When the CS pin is deasserted, the
device will be deselected and normally be placed in standby mode (not Deep Power-Down
mode), and the SO pin will be in a high-impedance state. When the device is deselected,
data will not be accepted on the SI pin.
A high-to-low transition on the CS pin is required to start an operation, and a low-to-high
transition is required to end an operation. When ending an internally self-timed operation
such as a program or erase cycle, the device will not enter the standby mode until the
completion of the operation.
SERIAL CLOCK: This pin is used to provide a clock to the device and is used to control the
flow of data to and from the device. Command, address, and input data present on the SI pin
is always latched in on the rising edge of SCK, while output data on the SO pin is always
clocked out on the falling edge of SCK.
Asserted
State
Type
Low
Input
-
Input
-
Input/Output
SERIAL INPUT: The SI pin is used to shift data into the device. The SI pin is used for all data
input including command and address sequences. Data on the SI pin is always latched in on
the rising edge of SCK.
SI (I/O0)
With the Dual-Output and Quad-Output Read commands, the SI Pin becomes an output pin
(I/O0) in conjunction with other pins to allow two or four bits of data on (I/O3-0) to be clocked
in on every falling edge of SCK
To maintain consistency with the SPI nomenclature, the SI (I/O0) pin will be referenced as
the SI pin unless specifically addressing the Dual-I/O and Quad-I/O modes in which case it
will be referenced as I/O0
Data present on the SI pin will be ignored whenever the device is deselected (CS is
deasserted).
AT25SF041
DS-25SF041–044I–8/2020
2
Table 1-1.
Symbol
Pin Descriptions (Continued)
Name and Function
Asserted
State
Type
-
Input/Output
-
Input/Output
-
Input/Output
-
Power
-
Power
SERIAL OUTPUT: The SO pin is used to shift data out from the device. Data on the SO pin
is always clocked out on the falling edge of SCK.
SO (I/O1)
With the Dual-Output Read commands, the SO Pin remains an output pin (I/O0) in
conjunction with other pins to allow two bits of data on (I/O1-0) to be clocked in on every
falling edge of SCK
To maintain consistency with the SPI nomenclature, the SO (I/O1) pin will be referenced as
the SO pin unless specifically addressing the Dual-I/O modes in which case it will be
referenced as I/O1
The SO pin will be in a high-impedance state whenever the device is deselected (CS is
deasserted).
WRITE PROTECT: The WP pin controls the hardware locking feature of the device. With the
Quad-Output Read commands, the WP Pin becomes an output pin (I/O2) in conjunction with
other pins to allow four bits of data on (I/O33-0) to be clocked in on every falling edge of SCK.
WP
(I/O2)
To maintain consistency with the SPI nomenclature, the WP (I/O2) pin will be referenced as
the WP pin unless specifically addressing the Quad-I/O modes in which case it will be
referenced as I/O2
The WP pin is internally pulled-high and may be left floating if hardware controlled protection
will not be used. However, it is recommended that the WP pin also be externally connected
to VCC whenever possible.
HOLD: The HOLD pin is used to temporarily pause serial communication without
deselecting or resetting the device. While the HOLD pin is asserted, transitions on the SCK
pin and data on the SI pin will be ignored, and the SO pin will be in a high-impedance state.
HOLD
(I/O3)
The CS pin must be asserted, and the SCK pin must be in the low state in order for a Hold
condition to start. A Hold condition pauses serial communication only and does not have an
effect on internally self-timed operations such as a program or erase cycle. Please refer to
“Hold Function” on page 31 for additional details on the Hold operation.
With the Quad-Output Read commands, the HOLD Pin becomes an output pin (I/O3) in
conjunction with other pins to allow four bits of data on (I/O33-0) to be clocked in on every
falling edge of SCK.
To maintain consistency with the SPI nomenclature, the HOLD (I/O3) pin will be referenced
as the HOLD pin unless specifically addressing the Quad-I/O modes in which case it will be
referenced as I/O3
The HOLD pin is internally pulled-high and may be left floating if the Hold function will not be
used. However, it is recommended that the HOLD pin also be externally connected to VCC
whenever possible.
DEVICE POWER SUPPLY: The VCC pin is used to supply the source voltage to the device.
VCC
GND
Operations at invalid VCC voltages may produce spurious results and should not be
attempted.
GROUND: The ground reference for the power supply. GND should be connected to the
system ground.
AT25SF041
DS-25SF041–044I–8/2020
3
Figure 1-1. 8-SOIC, 8-TSSOP (Top View)
CS
SO
WP
GND
2.
1
2
3
4
8
7
6
5
Figure 1-2. 8-UDFN (Top View)
CS
SO
WP
GND
VCC
HOLD
SCK
SI
1
8
2
7
3
6
4
5
VCC
HOLD
SCK
SI
Block Diagram
Figure 2-1. Block Diagram
Control and
Protection Logic
CS
I/O Buffers
and Latches
SRAM
Data Buffer
SI (I/O0)
SO (I/O1)
Interface
Control
And
Logic
WP (I/O2)
Address Latch
SCK
Y-Decoder
Y-Gating
X-Decoder
Flash
Memory
Array
HOLD (I/O3)
Note: I/O3-0 pin naming convention is used for Dual-I/O and Quad-I/O commands.
3.
Memory Array
To provide the greatest flexibility, the memory array of the AT25SF041 can be erased in four levels of granularity
including a full chip erase. The size of the erase blocks is optimized for both code and data storage applications, allowing
both code and data segments to reside in their own erase regions. The Memory Architecture Diagram illustrates the
breakdown of each erase level.
AT25SF041
DS-25SF041–044I–8/2020
4
Figure 3-1. Memory Architecture Diagram
32KB
64KB
Sector 7
32KB
32KB
64KB
Sector 6
•••
•••
32KB
32KB
64KB
Sector 0
32KB
4KB
Block Erase
(20h Command)
4KB
4KB
4KB
4KB
4KB
4KB
4KB
4KB
4KB
4KB
4KB
4KB
4KB
4KB
4KB
4KB
4KB
4KB
4KB
4KB
4KB
4KB
4KB
4KB
4KB
4KB
4KB
4KB
4KB
4KB
4KB
4KB
Block Address
Range
07F F F F h
07E F F F h
07DF F F h
07CF F F h
07BF F F h
07AF F F h
079F F F h
078F F F h
077F F F h
076F F F h
075F F F h
074F F F h
073F F F h
072F F F h
071F F F h
070F F F h
06F F F F h
06E F F F h
06DF F F h
06CF F F h
06BF F F h
06AF F F h
069F F F h
068F F F h
067F F F h
066F F F h
065F F F h
064F F F h
063F F F h
062F F F h
061F F F h
060F F F h
–
–
–
–
–
–
–
–
–
–
–
–
–
–
–
–
–
–
–
–
–
–
–
–
–
–
–
–
–
–
–
–
07F 000h
07E 000h
07D000h
07C000h
07B000h
07A000h
079000h
078000h
077000h
076000h
075000h
074000h
073000h
072000h
071000h
070000h
06F 000h
06E 000h
06D000h
06C000h
06B000h
06A000h
069000h
068000h
067000h
066000h
065000h
064000h
063000h
062000h
061000h
060000h
00F F F F h
00E F F F h
00DF F F h
00CF F F h
00BF F F h
00AF F F h
009F F F h
008F F F h
007F F F h
006F F F h
005F F F h
004F F F h
003F F F h
002F F F h
001F F F h
000F F F h
–
–
–
–
–
–
–
–
–
–
–
–
–
–
–
–
00F 000h
00E 000h
00D000h
00C000h
00B000h
00A000h
009000h
008000h
007000h
006000h
005000h
004000h
003000h
002000h
001000h
000000h
•••
64KB
32KB
Block Erase
Block Erase
(D8h Command) (52h Command)
Page Program Detail
4KB
4KB
4KB
4KB
4KB
4KB
4KB
4KB
4KB
4KB
4KB
4KB
4KB
4KB
4KB
4KB
1-256 Byte
Page Program
(02h Command)
256 Bytes
256 Bytes
256 Bytes
256 Bytes
256 Bytes
256 Bytes
256 Bytes
256 Bytes
256 Bytes
256 Bytes
256 Bytes
256 Bytes
256 Bytes
256 Bytes
256 Bytes
256 Bytes
256 Bytes
256 Bytes
256 Bytes
256 Bytes
256 Bytes
256 Bytes
256 Bytes
256 Bytes
Page Address
Range
07F F F F h
07F E F F h
07F DF F h
07F CF F h
07F BF F h
07F AF F h
07F 9F F h
07F 8F F h
07F 7F F h
07F 6F F h
07F 5F F h
07F 4F F h
07F 3F F h
07F 2F F h
07F 1F F h
07F 0F F h
07E F F F h
07E E F F h
07E DF F h
07E CF F h
07E BF F h
07E AF F h
07E 9F F h
07E 8F F h
–
–
–
–
–
–
–
–
–
–
–
–
–
–
–
–
–
–
–
–
–
–
–
–
07F F 00h
07F E 00h
07F D00h
07F C00h
07F B00h
07F A00h
07F 900h
07F 800h
07F 700h
07F 600h
07F 500h
07F 400h
07F 300h
07F 200h
07F 100h
07F 000h
07E F 00h
07E E 00h
07E D00h
07E C00h
07E B00h
07E A00h
07E 900h
07E 800h
0017F F h
0016F F h
0015F F h
0014F F h
0013F F h
0012F F h
0011F F h
0010F F h
000F F F h
000E F F h
000DF F h
000CF F h
000BF F h
000AF F h
0009F F h
0008F F h
0007F F h
0006F F h
0005F F h
0004F F h
0003F F h
0002F F h
0001F F h
0000F F h
–
–
–
–
–
–
–
–
–
–
–
–
–
–
–
–
–
–
–
–
–
–
–
–
001700h
001600h
001500h
001400h
001300h
001200h
001100h
001000h
000F 00h
000E 00h
000D00h
000C00h
000B00h
000A00h
000900h
000800h
000700h
000600h
000500h
000400h
000300h
000200h
000100h
000000h
•••
Block Erase Detail
256 Bytes
256 Bytes
256 Bytes
256 Bytes
256 Bytes
256 Bytes
256 Bytes
256 Bytes
256 Bytes
256 Bytes
256 Bytes
256 Bytes
256 Bytes
256 Bytes
256 Bytes
256 Bytes
256 Bytes
256 Bytes
256 Bytes
256 Bytes
256 Bytes
256 Bytes
256 Bytes
256 Bytes
AT25SF041
DS-25SF041–044I–8/2020
5
4.
Device Operation
The AT25SF041 is controlled by a set of instructions that are sent from a host controller, commonly referred to as the SPI
Master. The SPI Master communicates with the AT25SF041 via the SPI bus which is comprised of four signal lines: Chip
Select (CS), Serial Clock (SCK), Serial Input (SI), and Serial Output (SO).
The SPI protocol defines a total of four modes of operation (mode 0, 1, 2, or 3) with each mode differing in respect to the
SCK polarity and phase and how the polarity and phase control the flow of data on the SPI bus. The AT25SF041
supports the two most common modes, SPI Modes 0 and 3. The only difference between SPI Modes 0 and 3 is the
polarity of the SCK signal when in the inactive state (when the SPI Master is in standby mode and not transferring any
data). With SPI Modes 0 and 3, data is always latched in on the rising edge of SCK and always output on the falling edge
of SCK.
Figure 4-1. SPI Mode 0 and 3
CS
SCK
SI
MSB
SO
4.1
LSB
MSB
LSB
Dual Output Read
The AT25SF041 features a Dual-Output Read mode that allow two bits of data to be clocked out of the device every
clock cycle to improve throughput. To accomplish this, both the SI and SO pins are utilized as outputs for the transfer of
data bytes. With the Dual-Output Read Array command, the SI pin becomes an output along with the SO pin.
4.2
Quad Output Read
The AT25SF041 features a Quad-Output Read mode that allow four bits of data to be clocked out of the device every
clock cycle to improve throughput. To accomplish this, the SI, SO, WP, HOLD pins are utilized as outputs for the transfer
of data bytes. With the Quad-Output Read Array command, the SI, WP, HOLD pins become outputs along with the SO
pin.
5.
Commands and Addressing
A valid instruction or operation must always be started by first asserting the CS pin. After the CS pin has been asserted,
the host controller must then clock out a valid 8-bit opcode on the SPI bus. Following the opcode, instruction dependent
information such as address and data bytes would then be clocked out by the host controller. All opcode, address, and
data bytes are transferred with the most-significant bit (MSB) first. An operation is ended by deasserting the CS pin.
Opcodes not supported by the AT25SF041 will be ignored by the device and no operation will be started. The device will
continue to ignore any data presented on the SI pin until the start of the next operation (CS pin being deasserted and
then reasserted). In addition, if the CS pin is deasserted before complete opcode and address information is sent to the
device, then no operation will be performed and the device will simply return to the idle state and wait for the next
operation.
Addressing of the device requires a total of three bytes of information to be sent, representing address bits A23-A0.
Since the upper address limit of the AT25SF041 memory array is 07FFFFh, address bits A23-A19 are always ignored by
the device.
AT25SF041
DS-25SF041–044I–8/2020
6
Table 5-1.
Command Listing
Command
Opcode
Clock
Frequency
Address
Bytes
Dummy
Bytes
Data
Bytes
Section
Link
Read Commands
0Bh
0000 1011
Up to 85 MHz
3
1
1+
03h
0000 0011
Up to 50 MHz
3
0
1+
Dual Output Read
3Bh
0011 1011
Up to 85 MHz
3
1
1+
6.2
Dual I/O Read
BBh
1011 1011
Up to 85 MHz
3
0
1+
6.3
Quad Output Read
6Bh
0110 1011
Up to 85 MHz
3
1
1+
6.4
Quad I/O Read
EBh
1110 1011
Up to 85 MHz
3
1
1+
6.5
Continuous Read Mode Reset - Dual
FFFFh
1111 1111
1111 1111
Up to 104 MHz
0
0
0
6.6
Continuous Read Mode Reset - Quad
FFh
1111 1111
Up to 104 MHz
0
0
0
6.6
Block Erase (4 Kbytes)
20h
0010 0000
Up to 104 MHz
3
0
0
Block Erase (32 Kbytes)
52h
0101 0010
Up to 104 MHz
3
0
0
Block Erase (64 Kbytes)
D8h
1101 1000
Up to 104MHz
3
0
0
60h
0110 0000
Up to 104 MHz
0
0
0
C7h
1100 0111
Up to 104 MHz
0
0
0
02h
0000 0010
Up to 104 MHz
3
0
1+
7.1
Write Enable
06h
0000 0110
Up to 104 MHz
0
0
0
8.1
Write Disable
04h
0000 0100
Up to 104 MHz
0
0
0
8.2
Erase Security Register Page
44h
0100 0100
Up to 104 MHz
3
0
0
9.1
Program Security Register Page
42h
0100 0010
Up to 104 MHz
3
0
1+
9.2
Read Security Register Page
48h
0100 1000
Up to 85MHz
3
1
1+
9.3
Read Status Register Byte 1
05h
0000 0101
Up to 104 MHz
0
0
1
Read Status Register Byte 2
35h
0011 0101
Up to 104 MHz
0
0
1
Write Status Register
01h
0000 0001
Up to 104 MHz
0
0
1 or 2
10.2
Write Enable for Volatile Status
Register
50h
0101 0000
Up to 104MHz
0
0
0
10.3
9Fh
1001 1111
Up to 104MHz
0
0
3
11.1
Read Array
6.1
Program and Erase Commands
Chip Erase
Byte/Page Program (1 to 256 Bytes)
7.2
7.3
Protection Commands
Security Commands
Status Register Commands
10.1
Miscellaneous Commands
Read Manufacturer and Device ID
AT25SF041
DS-25SF041–044I–8/2020
7
Table 5-1.
Command Listing
Command
Opcode
Clock
Frequency
Address
Bytes
Dummy
Bytes
Data
Bytes
Section
Link
Read ID
90h
1001 0000
Up to 104 MHz
0
3
2
11.2
Deep Power-Down
B9h
1011 1001
Up to 104 MHz
0
0
0
11.3
Resume from Deep Power-Down
ABh
1010 1011
Up to 104 MHz
0
0
0
11.4
Resume from Deep Power-Down and
Read ID
ABh
1010 1011
Up to 104 MHz
0
3
1
11.4
6.
Read Commands
6.1
Read Array (0Bh and 03h)
The Read Array command can be used to sequentially read a continuous stream of data from the device by simply
providing the clock signal once the initial starting address is specified. The device incorporates an internal address
counter that automatically increments every clock cycle.
Two opcodes (0Bh and 03h) can be used for the Read Array command. The use of each opcode depends on the
maximum clock frequency that will be used to read data from the device. The 0Bh opcode can be used at any clock
frequency up to the maximum specified by fRDHF, and the 03h opcode can be used for lower frequency read operations
up to the maximum specified by fRDLF.
To perform the Read Array operation, the CS pin must first be asserted and the appropriate opcode (0Bh or 03h) must be
clocked into the device. After the opcode has been clocked in, the three address bytes must be clocked in to specify the
starting address location of the first byte to read within the memory array. Following the three address bytes, an
additional dummy byte needs to be clocked into the device if the 0Bh opcode is used for the Read Array operation.
After the three address bytes (and the dummy byte if using opcode 0Bh) have been clocked in, additional clock cycles
will result in data being output on the SO pin. The data is always output with the MSB of a byte first. When the last byte
(07FFFFh) of the memory array has been read, the device will continue reading back at the beginning of the array
(000000h). No delays will be incurred when wrapping around from the end of the array to the beginning of the array.
Deasserting the CS pin will terminate the read operation and put the SO pin into high-impedance state. The CS pin can
be deasserted at any time and does not require a full byte of data be read.
Figure 6-1. Read Array - 03h Opcode
&6
6&.
23&2'(
6,
$''5(66%,76$$
06%
$
$
$
$
$
$
$
$
$
06%
'$7$%