Features • Single 4.5V - 5.5V Supply • Serial Interface Architecture • Page Program Operation • • • • • • • • • • • – Single Cycle Reprogram (Erase and Program) – 4096 Pages (528 Bytes/Page) Main Memory Optional Page and Block Erase Operations Two 528-Byte SRAM Data Buffers – Allows Receiving of Data while Reprogramming of Nonvolatile Memory Internal Program and Control Timer Fast Page Program Time – 7 ms Typical 120 µs Typical Page to Buffer Transfer Time Low Power Dissipation – 15 mA Active Read Current Typical – 10 µA CMOS Standby Current Typical 15 MHz Max Clock Frequency Hardware Data Protection Feature Serial Peripheral Interface (SPI) Compatible – Modes 0 and 3 CMOS and TTL Compatible Inputs and Outputs Commercial and Industrial Temperature Ranges Description The AT45D161 is a 5-volt only, serial interface Flash memory suitable for in-system reprogramming. Its 17,301,504 bits of memory are organized as 4096 pages of 528 bytes each. In addition to the main memory, the AT45D161 also contains two SRAM data buffers of 528 bytes each. The buffers allow receiving of data while a page in the main memory is being reprogrammed. Unlike conventional Flash memories that are (continued) Pin Configurations Function CS Chip Select SCK Serial Clock SI Serial Input SO Serial Output WP Hardware Page Write Protect Pin RESET Chip Reset RDY/BUSY Ready/Busy GND NC NC CS SCK SI SO NC NC NC NC NC NC NC 1 2 3 4 5 6 7 8 9 10 11 12 13 14 PLCC 28 27 26 25 24 23 22 21 20 19 18 17 16 15 VCC NC NC WP RESET RDY/BUSY NC NC NC NC NC NC NC NC TSOP Top View Type 1 CS NC NC GND VCC NC NC 4 3 2 1 32 31 30 29 28 27 26 25 24 23 22 21 WP RESET RDY/BUSY NC NC NC NC NC NC NC NC DC DC NC NC NC 14 15 16 17 18 19 20 5 6 7 8 9 10 11 12 13 AT45D161 Preliminary SOIC Pin Name SCK SI SO NC NC NC NC NC NC 16-Megabit 5-volt Only Serial DataFlash™ RDY/BUSY RESET WP NC NC VCC GND NC NC NC CS SCK SI SO 1 2 3 4 5 6 7 8 9 10 11 12 13 14 28 27 26 25 24 23 22 21 20 19 18 17 16 15 NC NC NC NC NC NC NC NC NC NC NC NC NC NC AT45DB161 Preliminary 16Megabit 2.7-volt Only Serial DataFlash Rev. 1081A–06/98 Note: PLCC package pins 16 and 17 are DON’T CONNECT 1 accessed randomly with multiple address lines and a parallel interface, the DataFlash uses a serial interface to sequentially access its data. 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. Typical applications for the DataFlash are digital voice storage, image storage, and data storage. The device operates at clock frequencies up to 15 MHz with a typical active read current consumption of 15 mA. To allow for simple in-system reprogrammability, the AT45D161 does not require high input voltages for programming. The device operates from a single power supp ly , 4. 5V to 5. 5V , f o r b o th t he pr o g r am an d r e a d operations. The AT45D161 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. Block Diagram FLASH MEMORY ARRAY WP PAGE (528 BYTES) BUFFER 1 (528 BYTES) SCK CS RESET VCC GND RDY/BUSY BUFFER 2 (528 BYTES) I/O INTERFACE SI SO Memory Array To provide optimal flexibility, the memory array of the AT45D161 is divided into three levels of granularity comprising of sectors, blocks, and pages. The Memory Architecture Diagram illustrates the breakdown of each level and 2 AT45D161 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. AT45D161 Memory Architecture Diagram SECTOR 1 SECTOR 2 SECTOR 3 32 Blocks (256 Pages) BLOCK 0 SECTOR 0 SECTOR 0 BLOCK ARCHITECTURE SECTOR 4 BLOCK 1 BLOCK 30 PAGE ARCHITECTURE PAGE 0 8 Pages BLOCK 0 SECTOR ARCHITECTURE PAGE 1 PAGE 6 BLOCK 31 PAGE 7 BLOCK 32 PAGE 8 BLOCK 33 PAGE 9 SECTOR 7 SECTOR 8 BLOCK 62 BLOCK 1 SECTOR 6 SECTOR 1 SECTOR 5 PAGE 14 BLOCK 63 PAGE 15 BLOCK 64 PAGE 16 SECTOR 10 BLOCK 65 PAGE 17 SECTOR 11 BLOCK 66 PAGE 18 SECTOR 9 SECTOR 12 SECTOR 13 BLOCK 509 PAGE 4093 BLOCK 510 PAGE 4094 SECTOR 14 SECTOR 15 Sector = 135,168 bytes (128K + 4K) BLOCK 511 Block = 4224 bytes (4K + 128) PAGE 4095 Page = 528 bytes (512 + 16) Device Operation The device operation is controlled by instructions from the host processor. The list of instructions and their associated opcodes are contained in Table 1 and Table 2. A valid instruction starts with the falling edge of CS followed by the appropriate 8-bit opcode and the desired buffer or main memory address location. While the CS 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. Read By specifying the appropriate opcode, data can be read from the main memory or from either one of the two data buffers. MAIN MEMORY PAGE READ: A main memory read allows the user to read data directly from any one of the 4096 pages in the main memory, bypassing both of the data buffers and leaving the contents of the buffers unchanged. To start a page read, the 8-bit opcode, 52H, is followed by 24 address bits and 32 don’t care bits. In the AT45D161, the first two address bits are reserved for larger density devices (see Notes on page 10), the next 12 address bits (PA11-PA0) specify the page address, and the next 10 address bits (BA9-BA0) specify the starting byte address within the page. The 32 don’t care bits 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 pin must remain low during the loading of the opcode, the address 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 pin will terminate the read operation and tri-state the SO pin. 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 is used to read data from buffer 1, and an opcode of 56H is used to read data from buffer 2. To perform a buffer read, the eight bits of the opcode must be followed by 14 don’t care bits, 10 address bits, and eight don't care bits. Since the buffer size is 528bytes, 10 address bits (BFA9-BFA0) are required to specify the first byte of data to be read from the buffer. The CS pin must remain low during the loading of the opcode, the address 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 3 high transition on the CS pin will terminate the read operation and tri-state the SO pin. MAIN MEMORY PAGE TO BUFFER TRANSFER: A page of data can be transferred from the main memory to either buffer 1 or buffer 2. An 8-bit opcode, 53H for buffer 1 and 55H for buffer 2, is followed by the two reserved bits, 12 address bits (PA11-PA0) which specify the page in main memory that is to be transferred, and 10 don’t care bits. The CS 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. The transfer of the page of data from the main memory to the buffer will begin when the CS pin transitions from a low to a high state. During the transfer of a page of data (tXFR ), the status register can be read to determine whether the transfer has been completed or not. 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. An 8-bit opcode, 60H for buffer 1 and 61H for buffer 2, is followed by 24 address bits consisting of the two reserved bits, 12 address bits (PA11-PA0) which specify the page in the main memory that is to be compared to the buffer, and 10 don't care bits. The loading of the opcode and the address bits is the same as described previously. The CS 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 528 bytes in the selected main memory page will be compared with the 528 bytes in buffer 1 or buffer 2. During this time (tXFR), the status register will indicate that the part is busy. On completion of the compare operation, bit 6 of the status register is updated with the result of the compare. Program 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, is followed by 14 don't care bits and 10 address bits (BFA9BFA0). The 10 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 to high transition is detected on the CS pin. 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. An 8-bit opcode, 83H for buffer 1 or 86H for buffer 2, is followed by the two reserved bits, 12 address bits (PA11-PA0) that specify the page in the main memory to be written, and 10 additional don't care bits. When a low to high transition occurs on the CS pin, the part will first erase the selected 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 4 AT45D161 are internally self timed and should take 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: A previously erased page within main memory can be programmed with the contents of either buffer 1 or buffer 2. An 8-bit opcode, 88H for buffer 1 or 89H for buffer 2, is followed by the two reserved bits, 12 address bits (PA11-PA0) that specify the page in the main memory to be written, and 10 additional don’t care bits. 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 tP. During this time, the status register will indicate that the part is busy. 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 two reserved bits, 12 address bits (PA11-PA0), and 10 don’t care bits. The 12 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 pin, the part will erase the selected page to 1s. The erase operation is internally self-timed and should take place in a maximum time of tPE. During this time, the 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 two reserved bits, nine address bits (PA11-PA3), and 13 don’t care bits. The nine 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 tBE. During this time, the status register will indicate that the part is busy. AT45D161 Block Erase Addressing PA11 PA10 PA9 PA8 PA7 PA6 PA5 PA4 PA3 PA2 PA1 PA0 Block 0 0 0 0 0 0 0 0 0 X X X 0 0 0 0 0 0 0 0 0 1 X X X 1 0 0 0 0 0 0 0 1 0 X X X 2 0 0 0 0 0 0 0 1 1 X X X 3 • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • 1 1 1 1 1 1 1 0 0 X X X 508 1 1 1 1 1 1 1 0 1 X X X 509 1 1 1 1 1 1 1 1 0 X X X 510 1 1 1 1 1 1 1 1 1 X X X 511 MAIN MEMORY PAGE PROGRAM: This operation is a combination 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. An 8bit opcode, 82H for buffer 1 or 85H for buffer 2, is followed by the two reserved bits and 22 address bits. The 12 most significant address bits (PA11-PA0) select the page in the main memory where data is to be written, and the next 10 address bits (BFA9-BFA0) 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 pin, the part will first erase the selected 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 tEP. During this time, the status register will indicate that the part is busy. AUTO PAGE REWRITE: This mode is only needed 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. An 8-bit opcode, 58H for buffer 1 or 59H for buffer 2, is followed by the two reserved bits, 12 address bits (PA11-PA0) that specify the page in main memory to be rewritten, and 10 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 EP. During this time, the status register will indicate that the part is busy. If a sector is programmed or reprogrammed sequentially page by page, then the programming algorithm shown in Figure 1 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 is recommended. STATUS REGISTER: 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 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 remains low and SCK is being toggled) starting again with bit 7. The data in the status register is constantly updated, so each repeating sequence will output new data. 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 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 which can 5 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, and 3 of the status register. For the AT45D161, the three bits are 1, 0, and 1. The decimal value of these three binary bits does not equate to the device density; the three bits represent a combinational code relating to differing densities of Serial DataFlash devices, allowing a total of eight different density configurations. Read/Program Mode Summary The modes listed above 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 9. Auto Page Rewrite Group B modes consist of: 1. Buffer 1 (or 2) Read 2. Buffer 1 (or 2) 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’s Serial DataFlash”) for more details. HARDWARE PAGE 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 pin be driven high externally whenever possible. RESET: A low state on the reset pin (RESET) will terminate the operation in progress 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 pin. Normal operation can resume once the RESET pin is brought back to a high level. The device incorporates an internal power-on reset circuit, so there are no restrictions on the RESET pin during power-on sequences. The RESET pin is also internally pulled high; therefore, connection of the RESET pin is not necessary if this pin and feature will not be utilized. However, it is recommended that the RESET pin be driven high externally whenever possible. READY/BUSY: This open drain output pin will be driven low when the device is busy in an internally self-timed operation. This pin, which is normally in a high state (through an external pull-up resistor), will be pulled low during programming operations, compare operations, and during page-tobuffer 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. Power On/Reset State When 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 pin will be required to start a valid instruction. The SPI mode will be automatically selected on every falling edge of CS by sampling the inactive clock state. Status Register Format 6 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 RDY/BUSY COMP 1 0 1 X X X AT45D161 AT45D161 Absolute Maximum Ratings* Temperature Under Bias ................................ -55°C to +125°C *NOTICE: Storage Temperature ..................................... -65°C to +150°C All Input Voltages (including NC Pins) with Respect to Ground ...................................-0.6V to +6.25V All Output Voltages with Respect to Ground .............................-0.6V to VCC + 0.6V Stresses beyond those listed under “Absolute Maximum Ratings” may cause permanent damage to the device. This is a stress rating only and functional operation of the device at these or any other conditions beyond those indicated in the operational sections of this specification is not implied. Exposure to absolute maximum rating conditions for extended periods may affect device reliability. DC and AC Operating Range AT45D161 Com. 0°C to 70°C Operating Temperature (Case) Ind. VCC Power Supply(1) Notes: -40°C to 85°C 4.5V to 5.5V 1. After power is applied and VCC is at the minimum specified data sheet value, the system should wait 20 ms before an operational mode is started. 7 DC Characteristics Symbol Parameter Condition ISB Standby Current ICC1 Min Typ Max Units CS, RESET, WP = VIH, all inputs at CMOS levels 10 20 µA Active Current, Read Operation f = 15 MHz; IOUT = 0 mA; VCC = 5.5V 15 25 mA ICC2 Active Current, Program/Erase Operation VCC = 5.5V 25 50 mA ILI Input Load Current VIN = CMOS levels 10 µA ILO Output Leakage Current VI/O = CMOS levels 10 µA VIL Input Low Voltage 0.8 V VIH Input High Voltage VOL Output Low Voltage IOL = 2.1 mA VOH1 Output High Voltage IOH = -400 µA 2.4 V VOH2 Output High Voltage IOH = -100 µA; VCC = 4.5V 4.2 V 2.0 V 0.45 V AC Characteristics Symbol Parameter Min fSCK SCK Frequency tWH SCK High Time 30 ns tWL SCK Low Time 30 ns tCS Minimum CS High Time 250 ns tCSS CS Setup Time 250 ns tCSH CS Hold Time 250 ns tCSB CS High to RDY/BUSY Low tSU Data In Setup Time 10 ns tH Data In Hold Time 15 ns tHO Output Hold Time 0 ns tDIS Output Disable Time 20 ns tV Output Valid 25 ns tXFR Page to Buffer Transfer/Compare Time 120 200 µs tEP Page Erase and Programming Time 10 20 ms tP Page Programming Time 7 15 ms tPE Page Erase Time 6 10 ms tBE Block Erase Time 7 15 ms tRST RESET Pulse Width tREC RESET Recovery Time AC DRIVING LEVELS 0.45V Units 15 MHz ns µs 10 µs 1 2.0 0.8 AC MEASUREMENT LEVEL tR, tF < 5 ns (10% to 90%) 8 Max 200 Input Test Waveforms and Measurement Levels 2.4V Typ AT45D161 Output Test Load DEVICE UNDER TEST 30 pF AT45D161 AC Waveforms Two different timing diagrams are shown below. Waveform 1 shows the SCK signal being low when CS makes a highto-low transition, and Waveform 2 shows the SCK signal being high when CS makes a high-to-low transition. Both waveforms show valid timing diagrams. The setup and hold times for the SI signal are referenced to the low-to-high transition on the SCK signal. Waveform 1 shows timing that is also compatible with SPI Mode 0, and Waveform 2 shows timing that is compatible with SPI Mode 3. Waveform 1 – Inactive Clock Polarity Low tCS CS tWH tCSS tWL tCSH SCK tHO tV SO HIGH IMPEDANCE VALID OUT tSU tDIS HIGH IMPEDANCE tH VALID IN SI Waveform 2 – Inactive Clock Polarity High tCS CS tCSS tWL tWH tCSH SCK tV SO HIGH Z tHO VALID OUT tSU SI tDIS HIGH IMPEDANCE tH VALID IN 9 Reset Timing (Inactive Clock Polarity Low Shown) CS tREC tCSS SCK tRST RESET HIGH IMPEDANCE HIGH IMPEDANCE SO SI Command Sequence for Read/Write Operations (Except Status Register Read) SI MSB r r X X XXXX Reserved for larger densities Notes: 10 CMD 8 bits 8 bits XXXX XXXX Page Address (PA11-PA0) 8 bits XXXX XXXX LSB Byte/Buffer Address (BA9-BA0/BFA9-BFA0) 1. “r” designates bits reserved for larger densities. 2. It is recommended that “r” be a logical “0” for densities of 16M bit or smaller. 3. For densities larger than 16M bit, the “r” bits become the most significant Page Address bit for the appropriate density. AT45D161 AT45D161 Write Operations The following block diagram and waveforms illustrate the various write sequences available. FLASH MEMORY ARRAY PAGE (528 BYTES) BUFFER 1 TO MAIN MEMORY PAGE PROGRAM MAIN MEMORY PAGE PROGRAM THROUGH BUFFER 2 BUFFER 1 (528 BYTES) BUFFER 2 TO MAIN MEMORY PAGE PROGRAM BUFFER 2 (528 BYTES) MAIN MEMORY PAGE PROGRAM THROUGH BUFFER 1 BUFFER 1 WRITE BUFFER 2 WRITE I/O INTERFACE SI Main Memory Page Program through Buffers · Completes writing into selected buffer · Starts self-timed erase/program operation CS SI r r , PA11-6 CMD PA5-0, BFA9-8 BFA7-0 n n+1 Last Byte Buffer Write · Completes writing into selected buffer CS SI CMD X X···X, BFA9-8 BFA7-0 n Last Byte n+1 Buffer to Main Memory Page Program (Data from Buffer Programmed into Flash Page) Starts self-timed erase/program operation CS SI Each transition represents 8 bits and 8 clock cycles CMD r r , PA11-6 PA5-0, XX X n = 1st byte read n+1 = 2nd byte read 11 Read Operations The following block diagram and waveforms illustrate the various read sequences available. FLASH MEMORY ARRAY PAGE (528 BYTES) MAIN MEMORY PAGE TO BUFFER 2 MAIN MEMORY PAGE TO BUFFER 1 BUFFER 1 (528 BYTES) BUFFER 2 (528 BYTES) BUFFER 1 READ MAIN MEMORY PAGE READ BUFFER 2 READ I/O INTERFACE SO Main Memory Page Read CS SI r r , PA11-6 CMD BA7-0 PA5-0, BA9-8 X X X X SO n n+1 Main Memory Page to Buffer Transfer (Data from Flash Page Read into Buffer) Starts reading page data into buffer CS SI CMD r r , PA11-6 PA5-0, XX X SO Buffer Read CS SI CMD SO X X···X, BFA9-8 BFA7-0 X n n+1 . Each transition represents 8 bits and 8 clock cycles 12 AT45D161 n = 1st byte written n+1 = 2nd byte written AT45D161 Detailed Bit-Level Read Timing – Inactive Clock Polarity Low Main Memory Page Read CS SCK 1 2 3 4 5 60 61 62 63 64 0 X X X X X 65 66 67 tSU COMMAND OPCODE SI 1 0 1 0 tV DATA OUT HIGH-IMPEDANCE SO D7 MSB D6 42 43 D5 Buffer Read CS SCK 1 2 3 4 5 36 37 38 39 40 0 X X X X X 41 tSU COMMAND OPCODE SI 1 0 1 0 tV HIGH-IMPEDANCE SO DATA OUT D7 MSB D6 D5 Status Register Read CS SCK 1 2 0 1 3 4 5 6 7 8 1 1 9 10 11 12 16 17 tSU COMMAND OPCODE SI 0 1 0 1 tV SO HIGH-IMPEDANCE STATUS REGISTER OUTPUT D7 MSB D6 D5 D1 D0 LSB D7 MSB 13 Detailed Bit-Level Read Timing – Inactive Clock Polarity High Main Memory Page Read CS SCK 1 2 3 4 5 61 62 63 64 65 66 67 68 tSU COMMAND OPCODE SI 1 0 1 0 0 X X X X X tV DATA OUT HIGH-IMPEDANCE SO D7 MSB D6 D5 D4 Buffer Read CS SCK 1 2 3 4 5 37 38 39 40 41 42 43 44 tSU COMMAND OPCODE SI 1 0 1 0 0 X X X X X tV DATA OUT HIGH-IMPEDANCE SO D7 MSB D6 D5 D4 Status Register Read CS SCK 1 2 3 4 5 6 7 8 9 10 11 12 17 18 tSU COMMAND OPCODE SI 0 1 0 1 0 1 1 1 tV SO 14 HIGH-IMPEDANCE AT45D161 STATUS REGISTER OUTPUT D7 MSB D6 D5 D4 D0 LSB D7 MSB D6 AT45D161 Table 1. Main Memory Page Read Buffer 1 Read Buffer 2 Read Main Memory Page to Buffer 1 Transfer Main Memory Page to Buffer 2 Transfer Main Memory Page to Buffer 1 Compare Main Memory Page to Buffer 2 Compare Buffer 1 Write Buffer 2 Write Opcode 52H 54H 56H 53H 55H 60H 61H 84H 87H 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 1 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 1 0 0 1 1 1 0 1 1 0 0 0 0 1 0 0 0 1 1 0 1 0 1 r X X r r r r X X r X X r r r r X X PA11 X X PA11 PA11 PA11 PA11 X X PA10 X X PA10 PA10 PA10 PA10 X X PA9 X X PA9 PA9 PA9 PA9 X X PA8 X X PA8 PA8 PA8 PA8 X X PA7 X X PA7 PA7 PA7 PA7 X X PA6 X X PA6 PA6 PA6 PA6 X X PA5 X X PA5 PA5 PA5 PA5 X X PA4 X X PA4 PA4 PA4 PA4 X X PA3 X X PA3 PA3 PA3 PA3 X X PA2 X X PA2 PA2 PA2 PA2 X X PA1 X X PA1 PA1 PA1 PA1 X X PA0 X X PA0 PA0 PA0 PA0 X X BA9 BFA9 BFA9 X X X X BFA9 BFA9 BA8 BFA8 BFA8 X X X X BFA8 BFA8 BA7 BFA7 BFA7 X X X X BFA7 BFA7 BA6 BFA6 BFA6 X X X X BFA6 BFA6 BA5 BFA5 BFA5 X X X X BFA5 BFA5 BA4 BFA4 BFA4 X X X X BFA4 BFA4 BA3 BFA3 BFA3 X X X X BFA3 BFA3 BA2 BFA2 BFA2 X X X X BFA2 BFA2 BA1 BFA1 BFA1 X X X X BFA1 BFA1 BA0 BFA0 BFA0 X X X X BFA0 BFA0 X X X X X X X X X X X X X X X X X X X X X X X X X (Don’t Care) r (reserved bits) • • • X (64th bit) 15 Table 2. Buffer 1 to Main Memory Page Program with Built In Erase Buffer 2 to Main Memory Page Program with BuiltIn Erase Buffer 1 to Main Memory Page Program without Built-In Erase Buffer 2 to Main Memory Page Program without Built-In Erase Page Erase Block Erase Main Memory Page Program Through Buffer 1 Main Memory Page Program Through Buffer 2 Auto Page Rewrite Through Buffer 1 Auto Page Rewrite Through Buffer 2 Status Register Opcode 83H 86H 88H 89H 81H 50H 82H 85H 58H 59H 57H 1 1 1 1 1 0 1 1 0 0 0 0 0 0 0 0 1 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 1 0 0 1 1 0 0 0 0 1 1 0 0 1 0 0 0 0 0 1 0 0 1 1 1 0 0 0 0 1 0 0 0 1 1 0 0 1 1 0 0 1 0 1 1 r r r r r r r r r r r r r r r r r r r r PA11 PA11 PA11 PA11 PA11 PA11 PA11 PA11 PA11 PA11 PA10 PA10 PA10 PA10 PA10 PA10 PA10 PA10 PA10 PA10 PA9 PA9 PA9 PA9 PA9 PA9 PA9 PA9 PA9 PA9 PA8 PA8 PA8 PA8 PA8 PA8 PA8 PA8 PA8 PA8 PA7 PA7 PA7 PA7 PA7 PA7 PA7 PA7 PA7 PA7 PA6 PA6 PA6 PA6 PA6 PA6 PA6 PA6 PA6 PA6 PA5 PA5 PA5 PA5 PA5 PA5 PA5 PA5 PA5 PA5 PA4 PA4 PA4 PA4 PA4 PA4 PA4 PA4 PA4 PA4 PA3 PA3 PA3 PA3 PA3 PA3 PA3 PA3 PA3 PA3 PA2 PA2 PA2 PA2 PA2 X PA2 PA2 PA2 PA2 PA1 PA1 PA1 PA1 PA1 X PA1 PA1 PA1 PA1 PA0 PA0 PA0 PA0 PA0 X PA0 PA0 PA0 PA0 X X X X X X BFA9 BFA9 X X X X X X X X BFA8 BFA8 X X X X X X X X BFA7 BFA7 X X X X X X X X BFA6 BFA6 X X X X X X X X BFA5 BFA5 X X X X X X X X BFA4 BFA4 X X X X X X X X BFA3 BFA3 X X X X X X X X BFA2 BFA2 X X X X X X X X BFA1 BFA1 X X X X X X X X BFA0 BFA0 X X X (Don’t Care) r (reserved bits) 16 AT45D161 AT45D161 Figure 1. Algorithm for Programming or Reprogramming of an Entire Sector Sequentially START provide address and data BUFFER WRITE (84H, 87H) MAIN MEMORY PAGE PROGRAM (82H, 85H) BUFFER to MAIN MEMORY PAGE PROGRAM (83H, 86H) END Notes: 1. This type of algorithm is used for applications in which an entire sector is programmed sequentially, filling the sector page-by-page. 2. A page can be written using either a Main Memory Page Program operation or a Buffer Write operation followed by a Buffer to Main Memory Page Program operation. 3. The algorithm above shows the programming of a single page. The algorithm will be repeated sequentially for each page within the entire sector. 17 Figure 2. Algorithm for Randomly Modifying Data START provide address of page to modify MAIN MEMORY PAGE to BUFFER TRANSFER (53H, 55H) If planning to modify multiple bytes currently stored within a page of the Flash array BUFFER WRITE (84H, 87H) MAIN MEMORY PAGE PROGRAM (82H, 85H) BUFFER to MAIN MEMORY PAGE PROGRAM (83H, 86H) Auto Page Rewrite (58H, 59H) (2) INCREMENT PAGE (2) ADDRESS POINTER END Notes: 1. 2. 3. 18 To preserve data integrity, each page of a DataFlash sector (256 pages per sector) must be updated/rewritten at least once within every 10,000 cumulative page erase/program operations within that sector. A Page Address Pointer must be maintained to indicate which page is to be rewritten. The Auto Page Rewrite command must use the address specified by the Page Address Pointer. Other algorithms can be used to rewrite portions of the Flash array. Low power applications may choose to wait until 10,000 cumulative page erase/program operations have accumulated before rewriting all 256 pages of the sector. See application note AN-4 (“Using Atmel’s Serial DataFlash”) for more details. AT45D161 Sector Addressing PA11 PA10 PA9 PA8 Sector 0 0 0 0 0 0 0 0 1 1 0 0 1 0 2 • • • • • • • • • • • • • • • 1 1 0 1 13 1 1 1 0 14 1 1 1 1 15 AT45D161 Ordering Information ICC (mA) fSCK (MHz) Active Standby Ordering Code Package 15 25 0.02 AT45D161-JC AT45D161-RC AT45D161-TC 32J 28R 28T Commercial (0°C to 70°C) 15 25 0.02 AT45D161-JI AT45D161-RI AT45D161-TI 32J 28R 28T Industrial (-40°C to 85°C) Operation Range Package Type 32J 32-Lead, Plastic J-Leaded Chip Carrier (PLCC) 28R 28-Lead, 0.330” Wide, Plastic Gull Wing Small Outline (SOIC) 28T 28-Lead, Plastic Thin Small Outline Package (TSOP) 19 Packaging Information 32J, 32-Lead, Plastic J-Leaded Chip Carrier (PLCC) Dimensions in Inches and (Millimeters) JEDEC STANDARD MS-016 AE .045(1.14) X 45° PIN NO. 1 IDENTIFY .025(.635) X 30° - 45° .012(.305) .008(.203) .553(14.0) .547(13.9) .595(15.1) .585(14.9) .032(.813) .026(.660) .050(1.27) TYP .300(7.62) REF .430(10.9) .390(9.90) AT CONTACT POINTS .530(13.5) .490(12.4) .021(.533) .013(.330) .030(.762) .015(3.81) .095(2.41) .060(1.52) .140(3.56) .120(3.05) .022(.559) X 45° MAX (3X) .453(11.5) .447(11.4) .495(12.6) .485(12.3) 28T, 28-Lead, Plastic Thin Small Outline Package (TSOP) Dimensions in Millimeters and (Inches)* *Controlling dimension: millimeters 20 AT45D161 28R, 28-Lead, 0.330” Wide, Plastic Gull Wing Small Outline (SOIC) Dimensions in Inches and (Millimeters)