![]() |
|
If you can't view the Datasheet, Please click here to try to view without PDF Reader . |
|
Datasheet File OCR Text: |
features ? single 2.7v - 3.6v supply ? serial peripheral interface (spi) compatible ? supports spi modes 0 and 3 ? supports rapids operation ? supports dual- and quad-input program ? supports dual- and quad-output read ? very high operating frequencies ? 100 mhz for rapids ? 85 mhz for spi ? clock-to-output (t v ) of 5 ns maximum ? 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 ? individual sector protection with global protect/unprotect feature ? 64 sectors of 64-kbytes each ? hardware controlled locking of protected sectors via wp pin ? sector lockdown ? make any combination of 64-kbyte sectors permanently read-only ? 128-byte programmable otp security register ? flexible programming ? byte/page program (1 to 256 bytes) ? fast program and erase times ? 1.5 ms typical page program (256 bytes) time ? 50 ms typical 4-kbyte block erase time ? 250 ms typical 32-kbyte block erase time ? 400 ms typical 64-kbyte block erase time ? program and erase suspend/resume ? automatic checking and reporting of erase/program failures ? software controlled reset ? jedec standard manufacturer and device id read methodology ? low power dissipation ? 7 ma active read current (typical at 20 mhz) ? 5 a deep power-down 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 wide) ? 16-lead soic (300-mil wide) ? 8-pad very thin dfn ( 5x6x0.6mm) 32-megabit 2.7-volt minimum spi serial flash memory with dual-i/o and quad-i/o support at25dq321a preliminary 8718a?dflash?04/10
2 8718a?dflash?04/10 at25dq321a [preliminary] 1. description the at25dq321a 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 at25dq321a, with its erase granularity as small as 4- kbytes, makes it ideal for data storage as well, eliminating the need for additional data storage eeprom devices. the physical sectoring and the erase block sizes of the at25dq321a have been optimized to meet the needs of today's code and data storage applications. by optimizing the size of the physical sectors and 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 protected sectors, the wasted and unused memory space that occurs with large sectored and 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 at25dq321a also offers a sophisticated method for protecting individual sectors against erroneous or malicious program and erase operations. by providing the ability to individually protect and unprotect sectors, a system can unprotect a specific sector to modify its contents while keeping the remaining sectors of the memory array securely protected. this is useful in applications where program code is patched or updated on a subroutine or module basis, or in applications where data storage segments need to be modified without running the risk of errant modifications to the program code segments. in addition to individual sector protection capabilities, the at25dq321a incorporates global protect and global unprotect features that allow the entire memory array to be either protected or unprotected all at once. this reduces overhead during the manufacturing process since sectors do not have to be unprotected one-by-one prior to initial programming. to take code and data protection to the next level, the at25dq321a incorporates a sector lockdown mechanism that allows any combination of individual 64-kbyte sectors to be locked down and become permanently read-only. this addresses the need of certain secure applications that require portions of the flash memory array to be permanently protected against malicious attempts at altering program code, data modules, security information, or encryption/decryption algorithms, keys, and routines. the device also contains a specialized otp (one-time programmable) security register that can be used for purposes such as unique device serialization, system-level electronic serial number (esn) storage, locked key storage, etc. specifically designed for use in 3-volt systems, the at25dq321a supports read, program, and erase operations with a supply voltage range of 2.7v to 3.6v. no separate voltage is required for programming and erasing. 3 8718a?dflash?04/10 at25dq321a [preliminary] 2. pin descriptions and pinouts table 2-1. pin descriptions symbol name and function asserted state type cs 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. low input sck 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 or i/o pins is always latched in on the rising edge of sck, while output data on the so pin or i/o pins is always clocked out on the falling edge of sck. - input si (i/o 0 ) serial input (i/o 0 ): 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. with the dual-input and quad-input byte/page program commands, the si pin is used as an input pin (i/o 0 ) in conjunction with other pins to allow two bits (on i/o 1-0 ) or four bits (on i/o 3-0 ) of data to be clocked in on every rising edge of sck. with the dual-output and quad-output read array commands, the si pin becomes an output pin (i/o 0 ) and, along with other pins, allows two bits (on i/o 1- 0 ) or four bits (on i/o 3-0 ) of data to be clocked out on every falling edge of sck. to maintain consistency with spi nomenclature, the si (i/o 0 ) pin will be referenced as si throughout the document with exception to sections dealing with the dual-input and quad-input byte/page program commands as well as the dual-output and quad-output read array commands in which it will be referenced as i/o 0 . data present on the si pin will be ignored whenever the device is deselected ( cs is deasserted). - input/output so (i/o 1 ) serial output (i/o 1 ): 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. with the dual-input and quad-input byte/page program commands, the so pin becomes an input pin (i/o 1 ) and, along with other pins, allows two bits (on i/o 1-0 ) or four bits (on i/o 3-0 ) of data to be clocked in on every rising edge of sck. with the dual-output and quad-output read array commands, the so pin is used as an output pin (i/o 1 ) in conjunction with other pins to allow two bits (on i/o 1-0 ) or four bits (on i/o 3-0 ) of data to be clocked out on every falling edge of sck. to maintain consistency with spi nomenclature, the so (i/o 1 ) pin will be referenced as so throughout the document with exception to sections dealing with the dual-input and quad-input byte/page program commands as well as the dual-output and quad-output read array commands in which it will be referenced as i/o 1 . the so pin will be in a high-impedance state whenever the device is deselected ( cs is deasserted). - input/output 4 8718a?dflash?04/10 at25dq321a [preliminary] figure 2-1. pin configurations wp (i/o 2 ) write protect (i/o 2 ): the wp# pin controls the hardware locking feature of the device. see ?protection commands and features? on page 23. for more details on protection features and the wp pin. with the quad-input byte/page program command, the wp pin becomes an input pin (i/o 2 ) and, along with other pins, allows four bits (on i/o 3-0 ) of data to be clocked in on every rising edge of sck. with the quad-output read array command, the wp pin becomes an output pin (i/o 2 ) and, when used with other pins, allows four bits (on i/o 3-0 ) of data to be clocked out on every falling edge of sck. the qe bit in the configuration register must be set in order for the wp pin to be used as an i/o data pin. the wp pin must be driven at all times or pulled-high using an external pull-up resistor. low input/output hold (i/o 3 ) hold (i/o 3 ): 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. 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 affect on internally self-timed operations such as a program or erase cycle. see ?hold? on page 49. for additional details on the hold operation. with the quad-input byte/page program command, the hold pin becomes an input pin (i/o 3 ) and, along with other pins, allows four bits (on i/o 3-0 ) of data to be clocked in on every rising edge of sck. with the quad-output read array command, the hold pin becomes an output pin (i/o 3 ) and, when used with other pins, allows four bits (on i/o 3-0 ) of data to be clocked out on every falling edge of sck. the qe bit in the configuration register must be set in order for the hold pin to be used as an i/o data pin. the hold pin must be driven at all times or pulled-high using an external pull- up resistor. low input/output v cc device power supply: the v cc pin is used to supply the source voltage to the device. operations at invalid v cc voltages may produce spurious results and should not be attempted. -power gnd ground: the ground reference for the power supply. gnd should be connected to the system ground. -power table 2-1. pin descriptions (continued) symbol name and function asserted state type 4 3 2 1 5 6 7 8 8-udfn 1 2 3 4 8 7 6 5 8-soic cs so (i/o 1 ) wp (i/o 2 ) gnd cs so (i/o 1 ) wp (i/o 2 ) gnd v cc hold (i/o 3 ) sck si (i/o 0 ) 16-soic v cc hold (i/o 3 ) sck si (i/o 0 ) 1 2 3 4 5 6 7 8 16 15 14 13 12 11 10 9 nc v cc nc nc nc nc cs so sck si nc nc nc nc gnd wp 5 8718a?dflash?04/10 at25dq321a [preliminary] 3. block diagram figure 3-1. block diagram 4. memory array to provide the greatest flexibility, the memory array of the at25dq321a can be erased in four levels of granularity including a full chip erase. in addition, the array has been divided into physical sectors of uniform size, of which each sector can be individually protected from program and erase operations. the size of the physical sectors is optimized for both code and data storage applications, allowing both code and data segments to reside in their own isolated regions. the memory architecture diagram illustrates the breakdown of each erase level as well as the breakdown of each physical sector. flash memory array y-gating cs sck note: i/o 3-0 pin naming convention is used for dual-i/o and quad-i/o commands so (i/o 1 ) si (i/o 0 ) y-decoder address latch x-decoder i/o buffers and latches control and protection logic sram data buffer wp (i/o 2 ) interface control and logic hold (i/o 3 ) 6 8718a?dflash?04/10 at25dq321a [preliminary] figure 4-1. memory architecture diagram 4kb 3fffffh ? 3ff000h 256 bytes 3fffffh ? 3fff00h 4kb 3fefffh ? 3fe000h 256 bytes 3ffeffh ? 3ffe00h 4kb 3fdfffh ? 3fd000h 256 bytes 3ffdffh ? 3ffd00h 4kb 3fcfffh ? 3fc000h 256 bytes 3ffcffh ? 3ffc00h 4kb 3fbfffh ? 3fb000h 256 bytes 3ffbffh ? 3ffb00h 4kb 3fafffh ? 3fa000h 256 bytes 3ffaffh ? 3ffa00h 4kb 3f9fffh ? 3f9000h 256 bytes 3ff9ffh ? 3ff900h 4kb 3f8fffh ? 3f8000h 256 bytes 3ff8ffh ? 3ff800h 4kb 3f7fffh ? 3f7000h 256 bytes 3ff7ffh ? 3ff700h 4kb 3f6fffh ? 3f6000h 256 bytes 3ff6ffh ? 3ff600h 4kb 3f5fffh ? 3f5000h 256 bytes 3ff5ffh ? 3ff500h 4kb 3f4fffh ? 3f4000h 256 bytes 3ff4ffh ? 3ff400h 4kb 3f3fffh ? 3f3000h 256 bytes 3ff3ffh ? 3ff300h 4kb 3f2fffh ? 3f2000h 256 bytes 3ff2ffh ? 3ff200h 4kb 3f1fffh ? 3f1000h 256 bytes 3ff1ffh ? 3ff100h 4kb 3f0fffh ? 3f0000h 256 bytes 3ff0ffh ? 3ff000h 4kb 3effffh ? 3ef000h 256 bytes 3fefffh ? 3fef00h 4kb 3eefffh ? 3ee000h 256 bytes 3feeffh ? 3fee00h 4kb 3edfffh ? 3ed000h 256 bytes 3fedffh ? 3fed00h 4kb 3ecfffh ? 3ec000h 256 bytes 3fecffh ? 3fec00h 4kb 3ebfffh ? 3eb000h 256 bytes 3febffh ? 3feb00h 4kb 3eafffh ? 3ea000h 256 bytes 3feaffh ? 3fea00h 4kb 3e9fffh ? 3e9000h 256 bytes 3fe9ffh ? 3fe900h 4kb 3e8fffh ? 3e8000h 256 bytes 3fe8ffh ? 3fe800h 4kb 3e7fffh ? 3e7000h 4kb 3e6fffh ? 3e6000h 4kb 3e5fffh ? 3e5000h 4kb 3e4fffh ? 3e4000h 256 bytes 0017ffh ? 001700h 4kb 3e3fffh ? 3e3000h 256 bytes 0016ffh ? 001600h 4kb 3e2fffh ? 3e2000h 256 bytes 0015ffh ? 001500h 4kb 3e1fffh ? 3e1000h 256 bytes 0014ffh ? 001400h 4kb 3e0fffh ? 3e0000h 256 bytes 0013ffh ? 001300h 256 bytes 0012ffh ? 001200h 256 bytes 0011ffh ? 001100h 256 bytes 0010ffh ? 001000h 4kb 00ffffh ? 00f000h 256 bytes 000fffh ? 000f00h 4kb 00efffh ? 00e000h 256 bytes 000effh ? 000e00h 4kb 00dfffh ? 00d000h 256 bytes 000dffh ? 000d00h 4kb 00cfffh ? 00c000h 256 bytes 000cffh ? 000c00h 4kb 00bfffh ? 00b000h 256 bytes 000bffh ? 000b00h 4kb 00afffh ? 00a000h 256 bytes 000affh ? 000a00h 4kb 009fffh ? 009000h 256 bytes 0009ffh ? 000900h 4kb 008fffh ? 008000h 256 bytes 0008ffh ? 000800h 4kb 007fffh ? 007000h 256 bytes 0007ffh ? 000700h 4kb 006fffh ? 006000h 256 bytes 0006ffh ? 000600h 4kb 005fffh ? 005000h 256 bytes 0005ffh ? 000500h 4kb 004fffh ? 004000h 256 bytes 0004ffh ? 000400h 4kb 003fffh ? 003000h 256 bytes 0003ffh ? 000300h 4kb 002fffh ? 002000h 256 bytes 0002ffh ? 000200h 4kb 001fffh ? 001000h 256 bytes 0001ffh ? 000100h 4kb 000fffh ? 000000h 256 bytes 0000ffh ? 000000h 64kb (sector 62) 64kb ? ? ? 64kb 32kb 32kb ? ? ? ? ? ? ? ? ? 64kb 64kb (sector 63) 32kb 32kb 64kb (sector 0) 32kb 32kb ? ? ? internal sectoring for 64kb 32kb 4kb 1-256 byte sector protection block erase block erase block erase page program function (d8h command) (52h command) (20h command) (02h command) block erase detail page program detail page address block address range range 7 8718a?dflash?04/10 at25dq321a [preliminary] 5. device operation the at25dq321a 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 at25dq321a 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 at25dq321a 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 5-1. spi mode 0 and 3 5.1 dual-i/o and quad-i/o operation the at25dq321a features a dual-input program mode and a dual-output read mode that allows two bits of data to be clocked into or out of the device every clock cycle to improve throughputs. to accomplish this, both the si and so pins are utilized as inputs/outputs for the transfer of data bytes. with the dual-input byte/page program command, the the so pin becomes an input along with the si pin. alternatively, with the dual-output read array command, the si pin becomes an output along with the so pin. for both dual-i/o commands, the so pin will be referred to as i/o 1 and the si pin will be referred to as i/o 0 . the device also supports a quad-input program mode and a quad-output read mode in which the w pand h o l d pins become data pins for even higher throughputs. for the quad-input byte/page program command and for the quad-output read array command, the h o l d, w p, so, and si pins are referred to as i/o 3-0 where h o l d becomes i/o 3 , w p becomes i/o 2 , so becomes i/o 1 , and si becomes i/o 0 . the qe bit in the configuration register must be set in order for both quad-i/o commands to be enabled and for the h o l d and w p pins to be converted to i/o data pins. so si sck cs 0 6 % / 6 % 0 6 % / 6 % 8 8718a?dflash?04/10 at25dq321a [preliminary] 6. commands and addressing a valid instruction or operation must always be started by first asserting the c s pin. after the c s 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 at25dq321a 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 ( c s pin being deasserted and then reasserted). in addition, if the c s 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 at25dq321a memory array is 3fffffh, address bits a23-a22 are always ignored by the device. table 6-1. command listing command opcode clock frequency address bytes dummy bytes data bytes read commands read array 1bh 0001 1011 up to 100 mhz 3 2 1+ 0bh 0000 1011 up to 85 mhz 3 1 1+ 03h 0000 0011 up to 33 mhz 3 0 1+ dual-output read array 3bh 0011 1011 up to 70 mhz 3 1 1+ quad-output read array 6bh 0110 1011 up to 70 mhz 3 1 1+ program and erase commands block erase (4 kbytes) 20h 0010 0000 up to 100 mhz 3 0 0 block erase (32 kbytes) 52h 0101 0010 up to 100 mhz 3 0 0 block erase (64 kbytes) d8h 1101 1000 up to 100 mhz 3 0 0 chip erase 60h 0110 0000 up to 100 mhz 0 0 0 c7h 1100 0111 up to 100 mhz 0 0 0 byte/page program (1 to 256 bytes) 02h 0000 0010 up to 100 mhz 3 0 1+ dual-input byte/page program (1 to 256 bytes) a2h 1010 0010 up to 100 mhz 3 0 1+ quad-input byte/page program (1 to 256 bytes) 32h 0011 0010 up to 100 mhz 3 0 1+ program/erase suspend b0h 1011 0000 up to 100 mhz 0 0 0 program/erase resume d0h 1101 0000 up to 100 mhz 0 0 0 protection commands write enable 06h 0000 0110 up to 100 mhz 0 0 0 write disable 04h 0000 0100 up to 100 mhz 0 0 0 protect sector 36h 0011 0110 up to 100 mhz 3 0 0 unprotect sector 39h 0011 1001 up to 100 mhz 3 0 0 global protect/unprotect use write status register byte 1 command 9 8718a?dflash?04/10 at25dq321a [preliminary] 7. read commands 7.1 read array 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 has been specified. the device incorporates an internal address counter that automatically increments on every clock cycle. three opcodes (1bh, 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 f clk , and the 03h opcode can be used for lower frequency read operations up to the maximum specified by f rdlf . the 1bh opcode allows the highest read performance possible and can be used at any clock frequency up to the maximum specified by f max ; however, use of the 1bh opcode at clock frequencies above f clk should be reserved to systems employing the rapids protocol. to perform the read array operation, the cs pin must first be asserted and the appropriate opcode (1bh, 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, additional dummy bytes may need to be clocked into the device depending on which opcode is used for the read array operation. if the 1bh opcode is used, then two dummy bytes must be clocked into the device after the three address bytes. if the 0bh opcode is used, then a single dummy byte must be clocked in after the address bytes. read sector protection registers 3ch 0011 1100 up to 100 mhz 3 0 1+ security commands sector lockdown 33h 0011 0011 up to 100 mhz 3 0 1 freeze sector lockdown state 34h 0011 0100 up to 100 mhz 3 0 1 read sector lockdown registers 35h 0011 0101 up to 100 mhz 3 0 1+ program otp security register 9bh 1001 1011 up to 100 mhz 3 0 1+ read otp security register 77h 0111 0111 up to 100 mhz 3 2 1+ status and configuration register commands read status register 05h 0000 0101 up to 100 mhz 0 0 1+ write status register byte 1 01h 0000 0001 up to 100 mhz 0 0 1 write status register byte 2 31h 0011 0001 up to 100 mhz 0 0 1 read configuration register 3fh 0011 1111 up to 100 mhz 0 0 1+ write configuration register 3eh 0011 1110 up to 100 mhz 0 0 1 miscellaneous commands reset f0h 1111 0000 up to 100 mhz 0 0 1 read manufacturer and device id 9fh 1001 1111 up to 85 mhz 0 0 1 to 4 deep power-down b9h 1011 1001 up to 100 mhz 0 0 0 resume from deep power-down abh 1010 1011 up to 100 mhz 0 0 0 table 6-1. command listing (continued) command opcode clock frequency address bytes dummy bytes data bytes 10 8718a?dflash?04/10 at25dq321a [preliminary] after the three address bytes (and the dummy bytes or byte if using opcodes 1bh or 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 (3fffffh) 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 a high-impedance state. the cs pin can be deasserted at any time and does not require that a full byte of data be read. figure 7-1. read array ? 1bh opcode figure 7-2. read array ? 0bh opcode figure 7-3. read array ? 03h opcode so si sck 0 6 % 0 6 % 2 3 & |