M58MR016C M58MR016D 16 Mbit (1Mb x16, Mux I/O, Dual Bank, Burst) 1.8V Supply Flash Memory PRELIMINARY DATA ■ SUPPLY VOLTAGE – VDD = VDDQ = 1.7V to 2.0V for Program, Erase and Read ■ – VPP = 12V for fast Program (optional) MULTIPLEXED ADDRESS/DATA ■ SYNCHRONOUS / ASYNCHRONOUS READ FBGA – Burst mode Read: 40MHz TFBGA48 (ZC) 10 x 4 ball array – Page mode Read (4 Words Page) – Random Access: 100ns ■ PROGRAMMING TIME – 10µs by Word typical – Two or four words programming option ■ MEMORY BLOCKS – Dual Bank Memory Array: 4/12 Mbit Figure 1. Logic Diagram – Parameter Blocks (Top or Bottom location) ■ VDD VDDQ VPP DUAL OPERATIONS – Read within one Bank while Program or Erase within the other – No delay between Read and Write operations ■ PROTECTION/SECURITY – All Blocks protected at Power-up 4 A16-A19 ADQ0-ADQ15 W RP – One parameter block permanently lockable WP COMMON FLASH INTERFACE (CFI) ■ 100,000 PROGRAM/ERASE CYCLES per BLOCK ■ G – 64 bit user programmable OTP cells ■ WAIT E – Any combination of Blocks can be protected – 64 bit unique device identifier 16 M58MR016C M58MR016D BINV L K ELECTRONIC SIGNATURE – Manufacturer Code: 20h VSS – Top Device Code, M58MR016C: 88DEh AI05228 – Bottom Device Code, M58MR016D: 88E0h August 2002 This is preliminary information on a new product now in development or undergoing evaluation. Details are subject to change without notice. 1/51 M58MR016C, M58MR016D Figure 2. TFBGA Connections (Top view through package) 1 A 2 3 4 5 6 7 8 9 10 11 12 DU DU C WAIT NC VSS K VDD W VPP A19 A17 NC D VDDQ A16 NC L BINV RP WP A18 E VSS E VSS ADQ7 ADQ6 ADQ13 ADQ12 ADQ3 ADQ2 ADQ9 ADQ8 G F ADQ15 ADQ14 VSS ADQ5 ADQ4 ADQ11 ADQ10 VDDQ ADQ1 ADQ0 DU G 14 DU DU B H 13 DU DU DU AI05229 DESCRIPTION The M58MR016 is a 16 Mbit non-volatile Flash memory that may be erased electrically at block level and programmed in-system on a Word-byWord basis using a 1.7V to 2.0V V DD supply for the circuitry. For Program and Erase operations the necessary high voltages are generated internally. The device supports synchronous burst read and asynchronous read from all the blocks of the memory array; at power-up the device is configured for page mode read. In synchronous burst mode, a new data is output at each clock cycle for frequencies up to 40MHz. The array matrix organization allows each block to be erased and reprogrammed without affecting other blocks. All blocks are protected against programming and erase at Power-up. Blocks can be unprotected to make changes in the application and then re-protected. A parameter block "Security block" can be permanently protected against programming and erasing 2/51 in order to increase the data security. An optional 12V V PP power supply is provided to speed up the program phase at costumer production. An internal command interface (C.I.) decodes the instructions to access/modify the memory content. The program/erase controller (P/E.C.) automatically executes the algorithms taking care of the timings necessary for program and erase operations. Two status registers indicate the state of each bank. Instructions for Read Array, Read Electronic Signature, Read Status Register, Clear Status Register, Write Read Configuration Register, Program, Block Erase, Bank Erase, Program Suspend, Program Resume, Erase Suspend, Erase Resume, Block Protect, Block Unprotect, Block Locking, Protection Program, CFI Query, are written to the memory through a Command Interface (C.I.) using standard micro-processor write timings. The memory is offered in TFBGA48, 0.5 mm ball pitch packages and it is supplied with all the bits erased (set to ’1’). M58MR016C, M58MR016D Table 1. Signal Names A16-A19 Address Inputs ADQ0-ADQ15 Data Input/Outputs or Address Inputs, Command Inputs E Chip Enable G Output Enable W Write Enable RP Reset/Power-down WP Write Protect K Burst Clock L Latch Enable WAIT Wait Data in Burst Mode BINV Bus Invert VDD Supply Voltage VDDQ Supply Voltage for Input/Output Buffers VPP Optional Supply Voltage for Fast Program & Erase VSS Ground DU Don’t Use as Internally Connected NC Not Connected Internally Organization The M58MR016 is organized as 1Mb by 16 bits. The first sixteen address lines are multiplexed with the Data Input/Output signals on the multiplexed address/data bus ADQ0-ADQ15. The remaining address lines A16-A19 are the MSB addresses. Chip Enable E, Output Enable G and Write Enable W inputs provide memory control. The clock K input synchronizes the memory to the microprocessor during burst read. Reset RP is used to reset all the memory circuitry and to set the chip in power-down mode if a proper setting of the Read Configuration Register enables this function. WAIT output indicates to the microprocessor the status of the memory during the burst mode operations. Memory Blocks The device features asymmetrically blocked architecture. M58MR016 has an array of 71 blocks and is divided into two banks A and B, providing Dual Bank operations. While programming or erasing in Bank A, read operations are possible into Bank B or vice versa. Only one bank at the time is allowed to be in program or erase mode. It is possible to perform burst reads that cross bank boundaries. The memory features an erase suspend allowing reading or programming in another block. Once suspended the erase can be resumed. Program can be suspended to read data in another block and then resumed. The Bank Size and sectorization are summarized in Table 3. Parameter Blocks are located at the top of the memory address space for the M58MR016C, and at the bottom for the M58MR016D. The memory maps are shown in Figure 3. Table 2. Absolute Maximum Ratings (1) Symbol Value Unit Ambient Operating Temperature (2) –40 to 85 °C TBIAS Temperature Under Bias –40 to 125 °C TSTG Storage Temperature –55 to 155 °C VIO (3) Input or Output Voltage –0.5 to VDDQ+0.5 V Supply Voltage –0.5 to 2.7 V Program Voltage –0.5 to 13 V TA VDD, VDDQ VPP Parameter Note: 1. Except for the rating "Operating Temperature Range", stresses above those listed in the Table "Absolute Maximum Ratings" may cause permanent damage to the device. These are stress ratings only and operation of the device at these or any other conditions above those indicated in the Operating sections of this specification is not implied. Exposure to Absolute Maximum Rating conditions for extended periods may affect device reliability. Refer also to the STMicroelectronics SURE Program and other relevant quality documents. 2. Depends on range. 3. Minimum Voltage may undershoot to –2V during transition and for less than 20ns. 3/51 M58MR016C, M58MR016D The architecture includes a 128 bit Protection register that is divided into two 64 bit segments. In the first one is written a unique device number, while the second one is programmable by the user. The user programmable segment can be permanently protected programming the bit 1 of the Protection Lock Register (see protection register and Security Block). The parameter block (# 0) is a security block. It can be permanently protected by the user programming the bit 2 of the Protection Lock Register. Block protection against Program or Erase provides additional data security. All blocks are protected and unlocked at Power-up. Instructions are provided to protect or un-protect any block in the application. A second register locks the protection status while WP is low (see Block Locking description). Table 3. Bank Size and Sectorization Bank Size Parameter Blocks Main Blocks Bank A 4 Mbit 8 blocks of 4 KWord 7 blocks of 32 KWord Bank B 12 Mbit - 24 blocks of 32 KWord Figure 3. Memory Map Top Boot Block Address lines A19-A0 000000h 007FFFh Bottom Boot Block Address lines A19-A0 000000h 512 Kbit or 32 KWord 000FFFh 64 Kbit or 4 KWord Total of 24 Main Blocks Bank B 0B8000h 0BFFFFh 0C0000h 0C7FFFh Total of 8 Parameter Blocks 007000h 512 Kbit or 32 KWord Bank A 512 Kbit or 32 KWord 007FFFh 008000h 00FFFFh 64 Kbit or 4 KWord 512 Kbit or 32 KWord Total of 7 Main Blocks 0F0000h Bank A 0F7FFFh 0F8000h 0F8FFFh 038000h 512 Kbit or 32 KWord 03FFFFh 040000h 64 Kbit or 4 KWord 047FFFh Total of 8 Parameter Blocks 0FF000h 0FFFFFh Total of 7 Main Blocks 64 Kbit or 4 KWord 512 Kbit or 32 KWord 512 Kbit or 32 KWord Total of 24 Main Blocks Bank B 0F8000h 0FFFFFh 512 Kbit or 32 KWord AI05230 4/51 M58MR016C, M58MR016D SIGNAL DESCRIPTIONS See Figure 1 and Table 1. Address Inputs or Data Input/Output (ADQ0ADQ15). When Chip Enable E is at VIL and Output Enable G is at VIH the multiplexed address/ data bus is used to input addresses for the memory array, data to be programmed in the memory array or commands to be written to the C.I. The address inputs for the memory array are latched on the rising edge of Latch Enable L. The address latch is transparent when L is at VIL. In synchronous operations the address is also latched on the first rising/falling edge of K (depending on clock configuration) when L is low. Both input data and commands are latched on the rising edge of Write Enable W. When Chip Enable E and Output Enable G are at V IL the address/data bus outputs data from the Memory Array, the Electronic Signature Manufacturer or Device codes, the Block Protection status the Read Configuration Register status, the protection register or the Status Register. The address/data bus is high impedance when the chip is deselected, Output Enable G is at V IH, or RP is at VIL. Address Inputs (A16-A19). The five MSB addresses of the memory array are latched on the rising edge of Latch Enable L. In synchronous operation these inputs are also latched on the first rising/falling edge of K (depending on clock configuration) when L is low. Chip Enable (E). The Chip Enable input activates the memory control logic, input buffers, decoders and sense amplifiers. E at VIH deselects the memory and reduces the power consumption to the standby level. E can also be used to control writing to the command register and to the memory array, while W remains at V IL. Output Enable (G). The Output Enable gates the outputs through the data buffers during a read operation. When G is at VIH the outputs are High impedance. Write Enable (W). This input controls writing to the Command Register and Data latches. Data are latched on the rising edge of W. Write Protect (WP). This input gives an additional hardware protection level against program or erase when pulled at VIL, as described in the Block Lock instruction description. Reset/Power-down Input (RP). The RP input provides hardware reset of the memory, and/or Power-down functions, depending on the Read Configuration Register status. Reset/Power-down of the memory is achieved by pulling RP to V IL for at least tPLPH. When the reset pulse is given, the memory will recover from Power-down (when enabled) in a minimum of t PHEL, tPHLL or tPHWL (see Table 31 and Figure 15) after the rising edge of RP. Exit from Reset/Power-down changes the contents of the Read Configuration Register bits 14 and 15, setting the memory in asynchronous page mode read and power save function disabled. All blocks are protected and unlocked after a Reset/Power-down. Latch Enable (L). L latches the address bits ADQ0-ADQ15 and A16-A19 on its rising edge. The address latch is transparent when L is at VIL and it is inhibited when L is at V IH. Clock (K). The clock input synchronizes the memory to the micro controller during burst mode read operation; the address is latched on a K edge (rising or falling, according to the configuration settings) when L is at VIL. K is don’t care during asynchronous page mode read and in write operations. Wait (WAIT). WAIT is an output signal used during burst mode read, indicating whether the data on the output bus are valid or a wait state must be inserted. This output is high impedance when E or G are high or RP is at VIL, and can be configured to be active during the wait cycle or one clock cycle in advance. Bus Invert (BINV). BINV is an input/output signal used to reduce the amount of power needed to switch the external address/data bus. The power saving is achieved by inverting the data output on ADQ0-ADQ15 every time this gives an advantage in terms of number of toggling bits. In burst mode read, each new data output from the memory is compared with the previous data. If the number of transitions required on the data bus is in excess of 8, the data is inverted and the BINV signal will be driven by the memory at VOH to inform the receiving system that data must be inverted before any further processing. By doing so, the actual transitions on the data bus will be less than 8. In a similar way, when a command is given, BINV may be driven by the system at VIH to inform the memory that the data input must be inverted. Like the other input/output pins, BINV is high impedance when the chip is deselected, output enable G is at VIH or RP is at VIL; when used as an input, BINV must follow the same set-up and hold timings of the data inputs. VDD and V DDQ Supply Voltage (1.7V to 2.0V). VDD is the main power supply for all operations (Read, Program and Erase). VDDQ is the supply voltage for Input and Output. 5/51 M58MR016C, M58MR016D VPP Program Supply Voltage (12V). VPP is both a control input and a power supply pin. The two functions are selected by the voltage range applied to the pin; if VPP is kept in a low voltage range (0 to 2V) V PP is seen as a control input, and the current absorption is limited to 5µA (0.2µA typical). In this case with VPP = VIL we obtain an absolute protection against program or erase; with V PP = VPP1 these functions are enabled (see Table 26). VPP value is only sampled during program or erase write cycles; a change in its value after the 6/51 operation has been started does not have any effect and program or erase are carried on regularly. If V PP is used in the 11.4V to 12.6V range (VPPH) then the pin acts as a power supply (see Table 26). This supply voltage must remain stable as long as program or erase are running. In read mode the current sunk is less then 0.5mA, while during program and erase operations the current may increase up to 10mA. VSS Ground. VSS is the reference for all the voltage measurements. M58MR016C, M58MR016D DEVICE OPERATIONS The following operations can be performed using the appropriate bus cycles: Address Latch, Read Array (Random, and Page Modes), Write command, Output Disable, Standby, reset/Powerdown and Block Locking. See Table 4. Address Latch. In asynchronous operation, the address is latched on the rising edge of L input. In burst mode the address is latched either on the rising edge of L or on the first rising/falling edge of K (depending on configuration settings) when L is low. Read. Read operations are used to output the contents of the Memory Array, the Electronic Sig- nature, the Status Register, the CFI, the Block Protection Status, the Read Configuration Register status and the Protection Register. Read operation of the Memory Array may be performed in asynchronous page mode or synchronous burst mode. In asynchronous page mode data is internally read and stored in a page buffer. The page has a size of 4 words and is addressed by ADQ0 and ADQ1 address inputs. According to the device configuration the following Read operations: Electronic Signature - Status Register - CFI - Block Protection Status - Read Configuration Register Status - Protection Register must be accessed as asynchronous read or as single synchronous read (see Figure 4). Table 4. User Bus Operations (1) Operation E G W L RP WP ADQ15-ADQ0 Address Latch VIL VIH VIH VIL (rising edge) VIH VIH Address Input Write VIL VIH VIL VIH VIH VIH Data Input Output Disable VIL VIH VIH VIH VIH VIH Hi-Z Standby VIH X X X VIH X Hi-Z X X X X VIL X Hi-Z VIL X X X VIH VIL X Reset / Power-down Block Locking Note: 1. X = Don’t care. Table 5. Read Electronic Signature (AS and Read CFI instructions) (1) E G W ADQ1 (3) ADQ0 (3) Other Address (2) ADQ15-0 VIL VIL VIH VIL VIL EA (2) 0020h M58MR016C VIL VIL VIH VIL VIH EA (2) 88DEh M58MR016D VIL VIL VIH VIL VIH EA (2) 88E0h Code Device Manufacturer Code Device Code Note: 1. Addresses are latched on the rising edge of L input. 2. EA means Electronic Signature Address (see Read Electronic Signature) 3. Value during address latch. Table 6. Read Block Protection (AS and Read CFI instructions) (1) E G W ADQ1 (3) ADQ0 (3) Other Address ADQ15-0 Protected and unlocked VIL VIL VIH VIH VIL BA (4) 0001 Unprotected and unlocked VIL VIL VIH VIH VIL BA (4) 0000 Protected and locked VIL VIL VIH VIH VIL BA (4) 0003 Unprotected and locked (2) VIL VIL VIH VIH VIL BA (4) 0002 Block Status Note: 1. 2. 3. 4. Addresses are latched on the rising edge of L input. A locked block can be unprotected only with WP at VIH. Value during address latch. BA means Block Address. First cycle command address should indicate the bank of the block address. 7/51 M58MR016C, M58MR016D Table 7. Read Protection Register (RSIG and RCFI Instruction) (1) Word E G W A19-17 ADQ15-8 ADQ7-0 ADQ15-8 ADQ7-3 ADQ2 ADQ1 ADQ0 Lock VIL VIL VIH X (2) X (2) 80h 00h 00000B Security prot.data OTP prot.data 0 Unique ID 0 VIL VIL VIH X (2) X (2) 81h ID data ID data ID data ID data ID data Unique ID 1 VIL VIL VIH X (2) X (2) 82h ID data ID data ID data ID data ID data Unique ID 2 VIL VIL VIH X (2) X (2) 83h ID data ID data ID data ID data ID data Unique ID 3 VIL VIL VIH X (2) X (2) 84h ID data ID data ID data ID data ID data OTP 0 VIL VIL VIH X (2) X (2) 85h OTP data OTP data OTP data OTP data OTP data OTP 1 VIL VIL VIH X (2) X (2) 86h OTP data OTP data OTP data OTP data OTP data OTP 2 VIL VIL VIH X (2) X (2) 87h OTP data OTP data OTP data OTP data OTP data OTP 3 VIL VIL VIH X (2) X (2) 88h OTP data OTP data OTP data OTP data OTP data Note: 1. Addresses are latched on the rising edge of L input. 2. X = Don’t care. Table 8. Dual Bank Operations (1, 2, 3) Commands allowed in the other bank Status of one bank Read Array Read Status Read ID/CFI Program Erase/ Erase Resume Program Suspend Erase Suspend Protect Unprotect Yes Yes Yes Yes Yes Yes Yes Yes – – – – – – – – Programming Yes Yes Yes – – – – Yes Erasing Yes Yes Yes – – – – Yes Program Suspended Yes Yes Yes – – – – Yes Erase Suspended Yes Yes Yes Yes – Yes – Yes Idle Reading Note: 1. For detailed description of command see Table 33 and 34. 2. There is a status register for each bank; status register indicates bank state, not P/E.C. status. 3. Command must be written to an address within the block targeted by that command. 8/51 M58MR016C, M58MR016D Figure 4. Single Synchronous Read Sequence (RSIG, RCFI, RSR instructions) K L A19-A16 VALID ADDRESS CONF. CODE 2 ADQ15-ADQ0 VALID ADDRESS VALID DATA NOT VALID NOT VALID NOT VALID VALID DATA NOT VALID NOT VALID CONFIGURATION CODE 3 ADQ15-ADQ0 VALID ADDRESS CONFIGURATION CODE 4 ADQ15-ADQ0 VALID ADDRESS VALID DATA NOT VALID AI05231 Both Chip Enable E and Output Enable G must be at VIL in order to read the output of the memory. Read array is the default state of the device when exiting power down or after power up. Burst Read. The device also supports a burst read. In this mode a burst sequence is started at the first clock edge (rising or falling according to configuration settings) after the falling edge of L. After a configurable delay of 2 to 5 clock cycles a new data is output at each clock cycle. The burst sequence may be configured for linear or interleaved order and for a length of 4, 8 words or for continuous burst mode. Wrap and no-wrap modes are also supported. A WAIT signal may be asserted to indicate to the system that an output delay will occur. This delay will depend on the starting address of the burst sequence; the worst case delay will occur when the sequence is crossing a 64 word boundary and the starting address was at the end of a four word boundary. See the Write Read Configuration Register (CR) Instruction for more details on all the possible settings for the synchronous burst read (see Table 14). It is possible to perform burst read across bank boundary (all banks in read array mode). Write. Write operations are used to give Instruction Commands to the memory or to latch Input Data to be programmed. A write operation is initiated when Chip Enable E and Write Enable W are at V IL with Output Enable G at VIH. Addresses are latched on the rising edge of L. Commands and Input Data are latched on the rising edge of W or E whichever occurs first. Noise pulses of less than 5ns typical on E, W and G signals do not start a write cycle. Write operations are asynchronous and clock is ignored during write. Dual Bank Operations. The Dual Bank allows to run different operations simultaneously in the two banks. It is possible to read array data from one bank while the other is programming, erasing or reading any data (CFI, status register or electronic signature). Read and write cycles can be initiated for simultaneous operations in different banks without any delay. Only one bank at a time is allowed to be in program or erase mode, while the other must be in one of the read modes (see Table 8). Commands must be written to an address within the block targeted by that command. Output Disable. The data outputs are high impedance when the Output Enable G is at V IH with Write Enable W at VIH. Standby. The memory is in standby when Chip Enable E is at VIH and the P/E.C. is idle. The power consumption is reduced to the standby level and the outputs are high impedance, independent of the Output Enable G or Write Enable W inputs. Automatic Standby. When in Read mode, after 150ns of bus inactivity and when CMOS levels are driving the addresses, the chip automatically enters a pseudo-standby mode where consumption is reduced to the CMOS standby value, while outputs still drive the bus. The automatic standby feature is not available when the device is configured for synchronous burst mode. 9/51 M58MR016C, M58MR016D Table 9. Identifier Codes Code Manufacturer Code Address (h) Data (h) Bank Address + 00 0020 Top Bank Address + 01 88DE Bottom Bank Address + 01 88E0 Device Code Protected and Unlocked 0001 Unprotected and Unlocked Block Protection 0000 Bank Address + 02 Protected and Locked 0003 Unprotected and Locked 0002 Die Revision Code Bank Address + 03 DRC (1) Read Configuration Register Bank Address + 05 CR (1) Lock Protection Register Bank Address + 80 LPR (1) Protection Register Bank Address + 81 Bank Address + 88 PR (1) Note: 1. DRC means Die Revision Code. CR means Read Configuration Register. LPR means Lock Protection Register. PR means Unique Device Number and User Programmable OTP. Reset/Power-down. The memory is in Powerdown when the Read Configuration Register is set for Power-down and RP is at V IL. The power consumption is reduced to the Power-down level, and Outputs are in high impedance, independent of the Chip Enable E, Output Enable G or Write Enable W inputs. The memory is in reset when the Read Configuration Register is set for Reset and RP is at VIL. The power consumption is the same of the standby and the outputs are in high impedance. After a Reset/Power down the device defaults to read array mode, the status register is set to 80h and the read configuration register defaults to asynchronous read. 10/51 Block Locking. Any combination of blocks can be temporarily protected against Program or Erase by setting the lock register and pulling WP to V IL. The following summarizes the locking operation. All blocks are protected on power-up. They can then be unprotected or protected with the Unprotect and Protect commands. The Lock command protects a block and prevents it from being unlocked when WP = 0. When WP = 1, Lock is overridden. Lock is cleared only when the device is reset or powered-down (see Protect instruction). M58MR016C, M58MR016D INSTRUCTIONS AND COMMANDS Eighteen instructions are available (see Tables 10 and 11) to perform Read Memory Array, Read Status Register, Read Electronic Signature, CFI Query, Block Erase, Bank Erase, Program, Tetra Word Program, Double Word Program, Clear Status Register, Program/Erase Suspend, Program/ Erase Resume, Block Protect, Block Unprotect, Block Lock, Protection Register Program, Read Configuration Register and Lock Protection Program. Status Register output may be read at any time, during programming or erase, to monitor the progress of the operation. An internal Command Interface (C.I.) decodes the instructions while an internal Program/Erase Controller (P/E.C.) handles all timing and verifies the correct execution of the Program and Erase instructions. P/E.C. provides a Status Register whose bits indicate operation and exit status of the internal algorithms. The Command Interface is reset to Read Array when power is first applied, when exiting from Reset or whenever VDD is lower than VLKO . Command sequence must be followed exactly. Any invalid combination of commands will reset the device to Read Array. Read (RD) The Read instruction consists of one write cycle (refer to Device Operations section) and places the addressed bank in Read Array mode. When a device reset occurs, the memory is in Read Array as default. A read array command will be ignored while a bank is programming or erasing. However in the other bank a read array command will be accepted. Read Status Register (RSR) A bank’s Status Register indicates when a program or erase operation is complete and the success or failure of operation itself. Issue a Read Status Register Instruction (70h) to read the Status Register content of the addressed bank. The status of the other bank is not affected by the command. The Read Status Register instruction may be issued at any time, also when a Program/Erase operation is ongoing. The following Read operations output the content of the Status Register of the addressed bank. The Status Register is latched on the falling edge of E or G signals, and can be read until E or G returns to VIH. Either E or G must be toggled to update the latched data. Read Electronic Signature (RSIG) The Read Electronic Signature instruction consists of one write cycle (refer to Device Operations section) giving the command 90h to an address Table 10. Commands Hex Code Command 00h Invalid Reset 01h Protect Confirm 03h Write Read Configuration Register Confirm 10h Alternative Program Set-up 20h Block Erase Set-up 2Fh Lock Confirm 30h Double Word Program Set-up 40h Program Set-up 50h Clear Status Register 55h Tetra Word Program Set-up 60h Protect Set-up and Write Read Configuration Register 70h Read Status Register 80h Bank Erase Set-up 90h Read Electronic Signature 98h CFI Query B0h Program/Erase Suspend C0h Protection Program and Lock Protection Program D0h Program/Erase Resume, Erase Confirm or Unprotect Confirm FFh Read Array within the bank A. A subsequent read in the address of bank A will output the Manufacturer Code, the Device Code, the protection Status of Blocks of bank A, the Die Revision Code, the Protection Register, or the Read Configuration Register (see Table 9). If the first write cycle of Read Electronic Signature instruction is issued to an address within the bank B, a subsequent read in an address of bank B will output the protection Status of Blocks of bank B. The status of the other bank is not affected by the command (see Table 8). See Tables 5, 6, 7 and 8 for the valid address. The Electronic Signature can be read from the memory allowing programming equipment or applications to automatically match their interface to the characteristics of M58MR016C and M58MR016D. 11/51 M58MR016C, M58MR016D Table 11. Instructions Instruction READ Address(1,2) Data (3) Write BKA FFh Read (1) Read Address Data RSR Read Status Register 1+ Write BKA 70h Read (1) BKA Status Register RSIG Read Electronic Signature 1+ Write EA 90h Read (1) EA ED RCFI Read CFI 1+ Write CFIA 98h Read (1) CFIA CFID 1 Write BKA 50h EE Block Erase 2 Write BA 20h Write BA D0h BE Bank Erase 2 Write BKA 80h Write BKA D0h PG Program 2 Write WA 40h or 10h Write WA WD Double Word Program 3 Write WA1 30h Write WA1 WD1 Write WA2 WD2 Write WA1 WD1 Write WA2 WD2 Write WA3 WD3 Write WA4 WD4 DPG PROGRAM/ERASE Operation 1+ Clear Status CLRS(5) Register PROTECT Data (3) Read Memory Array RD CONFIGURATION Cyc. Operation Address(1,2) TPG Tetra Word Program 5 Write WA1 55h PES Program Erase Suspend 1 Write BKA B0h PER Program Erase Resume 1 Write BKA D0h BP Block Protect 2 Write BA 60h Write BA 01h BU Block Unprotect 2 Write BA 60h Write BA D0h BL Block Lock 2 Write BA 60h Write BA 2Fh PRP Protection Register Program 2 Write PA C0h Write PA PD LPRP Lock Protection Register Program 2 Write LPA C0h Write LPA LPD CR Write Read Configuration Register 2 Write RCA 60h Write RCA 03h Note: 1. First cycle command address should be the same as the operation’s target address. The first cycle of the RD, RSR, RSIG or RCFI instruction is followed by read operations in the bank array or special register. Any number of read cycles can occur after one command cycle. 2. BKA = Address within the bank, BA = Block Address, EA = Electronic Signature Address, CFIA = Common Flash Interface Address; WA = Word Address, PA = Protection Register Address, LPA = Lock Protection Register Address, RCA = Read Configuration Register Address, PD = Protection Data, CFID = Common Flash Interface Data, ED = Electronic Signature Data, WD = Word Data, LPD = Lock protection Register Data 3. WA1, WA2, WA3 and WA4 must be consecutive address differing only for address bits A1-A0. 4. Read cycle after CLSR instruction will output the memory array. 12/51 M58MR016C, M58MR016D CFI Query (RCFI) The CFI Query Mode is associated to bank A. The address of the first write cycle must be within the bank A. The status of the other bank is not affected by the command (see Table 8). Writing 98h the device enters the Common Flash Interface Query mode. Next read operations in the bank A will read the CFI data. Write a read instruction to return to Read mode (refer to the Common Flash Interface section). Clear Status Register (CLSR) The Clear Status Register uses a single write operation, which resets bits b1, b3, b4 e b5 of the status register. The Clear Status Register is executed writing the command 50h independently of the applied VPP voltage. After executing this command the device returns to read array mode. The Clear Status Register command clears only the status register of the addressed bank. Block Erase (EE) Block erasure sets all the bits within the selected block to ’1’. One block at a time can be erased. It is not necessary to pre-program the block as the P/E.C. will do it automatically before erasing. This instruction use two writes cycles. The first command written is the Block Erase Set up command 20h. The second command is the Erase Confirm command D0h. An address within the block to be erased should be given to the memory during the two cycles command. If the second command given is not an erase confirm, the status register bits b4 and b5 are set and the instruction aborts. After writing the command, the device outputs status register data when any address within the bank is read. At the end of the operation the bank will remain in read status register until a read array command is written. Status Register bit b7 is ’0’ while the erasure is in progress and ’1’ when it has completed. After completion the Status Register bit b5 returns ’1’ if there has been an Erase Failure. Status register bit b1 returns ’1’ if the user is attempting to erase a protected block. Status Register bit b3 returns a ’1’ if VPP is below VPPLK. Erase aborts if RP turns to VIL. As data integrity cannot be guaranteed when the erase operation is aborted, the erase must be repeated (see Table 12). A Clear Status Register instruction must be issued to reset b1, b3, b4 and b5 of the Status Register. During the execution of the erase by the P/E.C., the bank with the block in erase accepts only the RSR (Read Status Register) and PES (Program/Erase Suspend) instructions. See figure 19 for Erase Flowchart and Pseudo Code. Bank Erase (BE) Bank erase sets all the bits within the selected bank to ’1’. It is not necessary to pre-program the block as the P/E.C. will do it automatically before erasing. This instruction uses two writes cycles. The first command written is the Bank Erase set-up command 80h. The second command is the Erase Confirm command D0h. An address within the bank to be erased should be given to the memory during the two cycles command. See the Block Erase command section for status register bit details. Program (PG) The Program instruction programs the array on a word-by-word basis. The first command must be given to the target block and only one partition can be programmed at a time; the other partition must be in one of the read modes or in the erase suspended mode (see Table 8). This instruction uses two write cycles. The first command written is the Program Set-up command 40h (or 10h). A second write operation latches the Address and the Data to be written and starts the P/E.C. Read operations in the targeted bank output the Status Register content after the programming has started. The Status Register bit b7 returns '0' while the programming is in progress and '1' when it has completed. After completion the Status register bit b4 returns '1' if there has been a Program Failure (see Table 12). Status register bit b1 returns '1' if the user is attempting to program a protected block. Status Register bit b3 returns a '1' if V PP is below VPPLK. Any attempt to write a ’1’ to an already programmed bit will result in a program fail (status register bit b4 set) if V PP = V PPH and will be ignored if V PP = VPP1. Programming aborts if RP goes to VIL. As data integrity cannot be guaranteed when the program operation is aborted, the block containing the memory location must be erased and reprogrammed. A Clear Status Register instruction 13/51 M58MR016C, M58MR016D Table 12. Status Register Bits Mnemonic P/ECS ESS ES PS VPPS PSS BPS Bit 7 6 5 4 3 2 1 Name P/ECS Status Logic Level 1 Ready 0 Busy Erase Suspend Status 1 Suspended 0 In Progress or Completed Erase Status 1 Erase Error 0 Erase Success 1 Program Error 0 Program Success 1 VPP Invalid, Abort 0 VPP OK 1 Suspended 0 In Progress or Completed 1 Program/Erase on protected Block, Abort Program Status VPP Status Program Suspend Status Block Protection Status 0 0 Definition Note Indicates the P/E.C. status, check during Program or Erase, and on completion before checking bits b4 or b5 for Program or Erase Success. On an Erase Suspend instruction P/ECS and ESS bits are set to ’1’. ESS bit remains ’1’ until an Erase Resume instruction is given. ES bit is set to ’1’ if P/E.C. has applied the maximum number of erase pulses to the block without achieving an erase verify. PS bit set to ’1’ if the P/E.C. has failed to program a word. VPPS bit is set if the VPP voltage is below VPPLK when a Program or Erase instruction is executed. VPP is sampled only at the beginning of the erase/program operation. On a program Suspend instruction P/ECS and PSS bits are set to ’1’. PSS remains ’1’ until a Program Resume Instruction is given. BPS bit is set to ’1’ if a Program or Erase operation has been attempted on a protected No operation to block. protected blocks Reserved Note: Logic level ’1’ is VIH and ’0’ is VIL. must be issued to reset b5, b4, b3 and b1 of the Status Register. During the execution of the program by the P/E.C., the bank in programming accepts only the RSR (Read Status Register) and PES (Program/Erase Suspend) instructions. See Figure 16 for Program Flowchart and Pseudo Code. Double Word Program (DPG) This feature is offered to improve the programming throughput, writing a page of two adjacent words in parallel. The first command must be given to the target block and only one partition can be programmed at a time; the other partition must be in one of the read modes or in the erase suspended mode (see Table 8). The two words must differ only for the address A0. Programming should not be attempted when VPP is not at V PPH. The operation can also be executed if V PP is below V PPH but result could be uncertain. 14/51 These instruction uses three write cycles. The first command written is the Double Word Program Set-Up command 30h. A second write operation latches the Address and the Data of the first word to be written, the third write operation latches the Address and the Data of the second word to be written and starts the P/E.C. (see Table 11). Read operations in the targeted bank output the Status Register content after the programming has started. The Status Register bit b7 returns ’0’ while the programming is in progress and ’1’ when it has completed. After completion the Status register bit b4 returns ’1’ if there has been a Program Failure. Status register bit b1 returns ’1’ if the user is attempting to program a protected block. Status Register bit b3 returns a ’1’ if VPP is below VPPLK. Any attempt to write a ’1’ to an already programmed bit will result in a program fail (status register bit b4 set). (See Table 12). M58MR016C, M58MR016D Figure 5. Security Block Memory Map 88h User Programmable OTP 85h 84h Parameter Block # 0 Unique device number 81h 80h Protection Register Lock 2 1 0 AI05232 Table 13. Protection States (1) Current State (2) (WP, DQ1, DQ0) Program/Erase Allowed 100 Next State After Event (3) Protect Unprotect Lock WP transition Yes 101 100 111 000 101 No 101 100 111 001 110 Yes 111 110 111 011 111 No 111 110 111 011 000 Yes 001 000 011 100 001 No 001 000 011 101 011 No 011 011 011 111 or 110 (4) Note: 1. All blocks are protected at power-up, so the default configuration is 001 or 101 according to WP status. 2. Current state and Next state gives the protection status of a block. The protection status is defined by the write protect in and by DQ1 (= 1 for a locked block) and DQ0 (= 1 for a protected block) as read in the Read Electronic Signature instruction with A1 = VIH and A0 = V IL. 3. Next state is the protection status of a block after a Protect or Unprotect or Lock command has been issued or after WP has changed its logic value. 4. A WP transition to VIH on a locked block will restore the previous DQ0 value, giving a 111 or 110. 15/51 M58MR016C, M58MR016D Programming aborts if RP goes to VIL. As data integrity cannot be guaranteed when the program operation is aborted, the memory location must be erased and reprogrammed. A Clear Status Register instruction must be issued to reset b5, b4, b3 and b1 of the Status Register. During the execution of the program by the P/E.C., the bank in programming accepts only the RSR (Read Status Register) instruction. See Figure 17 for Double Word Program Flowchart and Pseudo code. Tetra Word Program (TPG) This feature is offered to improve the programming throughput, writing a page of four adjacent words in parallel. The first command must be given to the target block and only one partition can be programmed at a time; the other partition must be in one of the read modes or in the erase suspended mode (see Table 8). The four words must differ only for the addresses A0 and A1. Programming should not be attempted when VPP is not at VPPH. The operation can also be executed if V PP is below VPPH but result could be uncertain. These instruction uses five write cycles. The first command written is the Tetra Word Program Set-Up command 55h. A second write operation latches the Address and the Data of the first word to be written, the third write operation latches the Address and the Data of the second word to be written, the fourth write operation latches the Address and the Data of the third word to be written, the fifth write operation latches the Address and the Data of the fourth word to be written and starts the P/E.C. (see Table 11). Read operations in the targeted bank output the Status Register content after the programming has started. The Status Register bit b7 returns ’0’ while the programming is in progress and ’1’ when it has completed. After completion the Status register bit b4 returns ’1’ if there has been a Program Failure. Status register bit b1 returns ’1’ if the user is attempting to program a protected block. Status Register bit b3 returns a ’1’ if VPP is below VPPLK. Any attempt to write a ’1’ to an already programmed bit will result in a program fail (status register bit b4 set). (See Table 12). Programming aborts if RP goes to VIL. As data integrity cannot be guaranteed when the program operation is aborted, the memory location must be erased and reprogrammed. A Clear Status Register instruction must be issued to reset b5, b4, b3 and b1 of the Status Register. During the execution of the program by the P/E.C., the bank in programming accepts only the RSR (Read Status Register) instruction. See Figure 17 for Tetra Word Program Flowchart and Pseudo code. Erase Suspend/Resume (PES/PER) The Erase Suspend freezes, after a certain latency period (within 25us), the erase operation and al16/51 lows read in another block within the targeted bank or program in the other block. This instruction uses one write cycle B0h and the address should be within the bank with the block in erase (see Table 11). The device continues to output status register data after the erase suspend is issued. The status register bit b7 and bit b6 are set to ’1’ then the erase operation has been suspended. Bit b6 is set to '0' in case the erase is completed or in progress (see Table 12). The valid commands while erase is suspended are: Program/Erase Resume, Program, Read Memory Array, Read Status Register, Read Electronic Signature, CFI Query, Block Protect, Block Unprotect and Block Lock. The user can protect the Block being erased issuing the Block Protect or Block Lock commands. During a block erase suspend, the device goes into standby mode by taking E to VIH, which reduces active current draw. Erase is aborted if RP turns to VIL. If an Erase Suspend instruction was previously executed, the erase operation may be resumed by issuing the command D0h using an address within the suspended bank. The status register bit b6 and bit b7 are cleared when erase resumes and read operations output the status register after the erase is resumed. Block erase cannot resume until program operations initiated during block erase suspend have completed. It is also possible to nest suspends as follows: suspend erase in the first partition, start programming in the second or in the same partition, suspend programming and then read from the second or the same partition. The suggested flowchart for erase suspend/resume features of the memory is shown from Figure 20. Program Suspend/Resume (PES/PER) Program suspend is accepted only during the Program instruction execution. When a Program Suspend command is written to the C.I., the P/E.C. freezes the Program operation. Program Resume (PER) continues the Program operation. Program Suspend (PES) consists of writing the command B0h and the address should be within the bank with the word in programming (see Table 11). The Status Register bit b2 is set to '1' (within 5µs) when the program has been suspended. Bit b2 is set to '0' in case the program is completed or in progress (see Table 12). The valid commands while program is suspended are: Program/Erase Resume, Read Array, Read Status Register, Read Electronic Signature, CFI Query. During program suspend mode, the device goes in standby mode by taking E to VIH. This re- M58MR016C, M58MR016D duces active current consumption. Program is aborted if RP turns to VIL. If a Program Suspend instruction was previously executed, the Program operation may be resumed by issuing the command D0h using an address within the suspended bank (see Table 11). The status register bit b2 and bit b7 are cleared when program resumes and read operations output the status register after the erase is resumed (see Table 12). The suggested flowchart for program suspend/resume features of the memory is shown from Figure 18. Block Protect (BP) The BP instruction use two write cycles. The first command written is the protection set-up 60h. The second command is block Protect command 01h, written to an address within the block to be protected (see Table 11). If the second command is not recognized by the C.I the bit 4 and bit 5 of the status register will be set to indicate a wrong sequence of commands (see Table 12). To read the status register write the RSR command. Block Unprotect (BU) The instruction use two write cycles. The first command written is the protection set-up 60h. The second command is block Unprotect command D0h, written to an address within the block to be protected (see Table 11). If the second command is not recognized by the C.I the bit 4 and bit 5 of the status register will be set to indicate a wrong sequence of commands (see Table 12). To read the status register write the RSR command. Block Lock (BL) The instruction use two write cycles. The first command written is the protection set-up 60h. The second command is block Lock command 2Fh, written to an address within the block to be protected (see Table 11). If the second command is not recognized by the C.I the bit 4 and bit 5 of the status register will be set to indicate a wrong sequence of commands. To read the status register write the RSR command (see Table 12). BLOCK PROTECTION The M58MR016C/M58MR016D provide a flexible protection of all the memory providing the protection, un-protection and locking of any blocks. All blocks are protected at power-up. Each block of the array has two levels of protection against programming or erasing operation. The first level is set by the Block Protect instruction; a protected block cannot be programmed or erased until a Block Unprotect instruction is given for that block. A second level of protection is set by the Block Lock instruction, and requires the use of the WP pin, according to the following scheme: – when WP is at V IH, the Lock status is overridden and all blocks can be protected or unprotected; – when WP is at V IL, Lock status is enabled; the locked blocks are protected, regardless of their previous protect state, and protection status cannot be changed. Blocks that are not locked can still change their protection status; – the lock status is cleared for all blocks at power up. The protection and lock status can be monitored for each block using the Read Electronic Signature (RSIG) instruction. Protected blocks will output a '1' on DQ0 and locked blocks will output a '1' in DQ1 (see Table 13). PROTECTION REGISTER PROGRAM (PRP) and LOCK PROTECTION REGISTER PROGRAM (LPRP) The M58MR016C/M58MR016D features a 128-bit protection register and a security Block in order to increase the protection of a system design. The Protection Register is divided in two 64-bit segments. The first segment (81h to 84h) is a unique device number, while the second one (85h to 88h) can be programmed by the user. When shipped the user programmable segment is read at '1'. It can be only programmed at '0'. The user programmable segment can be protected writing the bit 1 of the Protection Lock register (80h). The bit 1 protects also the bit 2 of the Protection Lock Register. The M58MR016C/M58MR016D feature a security Block. The security Block is located at 0FF0000FFFFF (M58MR016C) or at 000000-000FFF (M58MR016D) of the device. This block can be permanently protected by the user programming the bit 2 of the Protection Lock Register (see Figure 5). The protection Register and the Protection Lock Register can be read using the RSIG and RCFI instructions. A subsequent read in the address starting from 80h to 88h, the user will retrieve respectively the Protection Lock register, the unique device number segment and the OTP user programmable register segment (see Table 23). WRITE READ CONFIGURATION REGISTER (CR). This instruction uses two Coded Cycles, the first write cycle is the write Read Configuration Register set-up 60h, the second write cycle is write Read Configuration Register confirm 03h both to Read Configuration Register address (see Table 11). This instruction writes the contents of address bits ADQ15-ADQ0 to bits CR15-CR0 of the Read Con- 17/51 M58MR016C, M58MR016D figuration Register (A19-A16 are don’t care). At Power-up the Read Configuration Register is set to asynchronous Read mode, Power-down disabled and bus invert (power save function) disabled. A description of the effects of each configuration bit is given in Table 14. Read mode (CR15). The device supports an asynchronous page mode and a synchronous burst mode. In asynchronous page mode, the default at power-up, data is internally read and stored in a buffer of 4 words selected by ADQ0 and ADQ1 address inputs. In synchronous burst mode, the device latches the starting address and then outputs a sequence of data that depends on the Read Configuration Register settings (see Figures 10, 11 and 12). Synchronous burst mode is supported in both parameter and main blocks; it is also possible to perform burst mode read across the banks. Bus Invert configuration (CR14). This register bit is used to enable the BINV pin functionality. BINV functionality depends upon configuration bits CR14 and CR15 (see Table 14 for configuration bits definition) as shown in Table 15. As output pin BINV is active only when enabled (CR14 = 1) in Read Array burst mode (CR15 = 0). As input pin BINV is active only when enabled (CR14 = 1). BINV is ignored when ADQ0-ADQ15 lines are used as address inputs (addresses must not be inverted). X-Latency (CR13-CR11). These configuration bits define the number of clock cycles elapsing from L going low to valid data available in burst mode (see Figure 6). The correspondence between X-Latency settings and the maximum sustainable frequency must be calculated taking into account some system parameters. Two conditions must be satisfied: – (n + 2) tK ≥ tACC + tQVK_CPU + tAVK_CPU – tK > tKQV + tQVK_CPU where "n" is the chosen X-Latency configuration code, tK is the clock period, tAVK_CPU is the address setup time guaranteed by the system CPU, and tQVK_CPU is the data setup time required by the system CPU. Power-down configuration (CR10). The RP pin may be configured to give very low power consumption when driven low (power-down state). In power-down the ICC supply current is reduced to a typical figure of ICC2; if this function is disabled (default at power-up) the RP pin causes only a reset of the device and the supply current is the stand-by value. The recovery time after a RP pulse is significantly longer when power-down is enabled (see Table 31). Wait configuration (CR8). In burst mode WAIT indicates whether the data on the output bus are valid or a wait state must be inserted. The config18/51 uration bit determines if WAIT will be asserted one clock cycle before the wait state or during the wait state (see Figure 7). WAIT is asserted during a continuous burst and also during a 4 or 8 burst length if no-wrap configuration is selected. Burst order configuration (CR7) and Burst Wrap configuration (CR3). See Table 16 for burst order and length. Clock configuration (CR6). In burst mode determines if address is latched and data is output on the rising or falling edge of the clock. Burst length (CR2-CR0). In burst mode determines the number of words output by the memory. It is possible to have 4 words, 8 words or a continuous burst mode, in which all the words are read sequentially. In continuous burst mode the burst sequence can cross the end of each of the two banks (all banks in read array mode). In continuous burst mode or in 4, 8 words no-wrap it may happen that the memory will stop the data output flow for a few clock cycles; this event is signaled by WAIT going low until the output flow is resumed. The initial address determines if the output delay will occur as well as its duration. If the starting address is aligned to a four words boundary no wait states will be needed. If the starting address is shifted by 1,2 or 3 positions from the four word boundary, WAIT will be asserted for 1, 2 or 3 clock cycles when the burst sequence is crossing the first 64 word boundary. WAIT will be asserted only once during a continuous burst access. See also Table 16. M58MR016C, M58MR016D Table 14. Read Configuration Register (AS and Read CFI instructions) (1) Configuration Register Function Read mode 0 = Synchronous Burst mode read 1 = Asynchronous Page mode read (default) Bus Invert configuration (power save) 0 = disabled (default) 1 = enabled X-Latency 010 = 2 clock latency 011 = 3 clock latency 100 = 4 clock latency 101 = 5 clock latency 111 = reserved Other configurations reserved Power-down configuration 0 = power-down disabled (default) 1 = power-down enabled Reserved Wait configuration 0 = WAIT is active during wait state 1 = WAIT is active one data cycle before wait state (default) Burst order configuration 0 = Interleaved 1 = Linear (default) Clock configuration 0 = Address latched and data output on the falling clock edge 1 = Address latched and data output on the rising clock edge (default) Reserved Burst Wrap 0 = burst wrap within burst length set by CR2-CR0 1 = Don’t wrap accesses within burst length set by CR2-CR0 (default) Burst length 001 = 4 word burst length 010 = 8 word burst length 111 = Continuous burst mode (requires CR7 = 1) CR15 CR14 CR13-CR11 CR10 CR9 CR8 CR7 CR6 CR5-CR4 CR3 CR2-CR0 Note: 1. The RCR can be read via the RSIG command (90h). Bank A Address + 05h contains the RCR data. See Table 9. 2. All the bits in the RCR are set to default on device power-up or reset. Table 15. BINV Configuration Bits BINV CR15 CR14 IN OUT 0 0 X 0 0 1 Active Active 1 0 X 0 1 1 Active 0 19/51 M58MR016C, M58MR016D POWER CONSUMPTION Power-down The memory provides Reset/Power-down control input RP. The Power-down function can be activated only if the relevant Read Configuration Register bit is set to ’1’. In this case, when the RP signal is pulled at VSS the supply current drops to typically ICC2 (see Table 26), the memory is deselected and the outputs are in high impedance. If RP is pulled to VSS during a Program or Erase operation, this operation is aborted and the memory content is no longer valid (see Reset/Power-down input description). Power-up The memory Command Interface is reset on Power-up to Read Array. Either E or W must be tied to VIH during Power-up to allow maximum security and the possibility to write a command on the first rising edge of W. At Power-up the device is configured as: – Page mode: (CR15 = 1) – Power-down disabled: (CR10 = 0) – BINV disabled: (CR14 = 0). All blocks are protected and unlocked. VDD, V DDQ and VPP are independent power supplies and can be biased in any order. Supply Rails Normal precautions must be taken for supply voltage decoupling; each device in a system should have the V DD rails decoupled with a 0.1µF capacitor close to the VDD, VDDQ and VSS pins. The PCB trace widths should be sufficient to carry the required VDD program and erase currents. Figure 6. X-Latency Configuration Sequence K L A19-A16 VALID ADDRESS CONF. CODE 2 ADQ15-ADQ0 VALID ADDRESS VALID DATA VALID DATA VALID DATA VALID DATA CONFIGURATION CODE 3 ADQ15-ADQ0 VALID DATA VALID DATA VALID DATA VALID ADDRESS CONFIGURATION CODE 4 ADQ15-ADQ0 VALID ADDRESS VALID DATA VALID DATA AI05233 20/51 M58MR016C, M58MR016D Figure 7. Wait Configuration Sequence K L A19-A16 VALID ADDRESS ADQ15-ADQ0 VALID ADDRESS VALID DATA VALID DATA NOT VALID VALID DATA WAIT CR8 = '0' WAIT CR8 = '1' AI05234 21/51 Starting Mode Address 4 Words 8 Words Continuous Burst Linear Interleaved Linear Interleaved 0 0-1-2-3 0-1-2-3 0-1-2-3-4-5-6-7 0-1-2-3-4-5-6-7 0-1-2-3-4-5-6... 1 1-2-3-0 1-0-3-2 1-2-3-4-5-6-7-0 1-0-3-2-5-4-7-6 1-2-3-4-5-6-7... 2 2-3-0-1 2-3-0-1 2-3-4-5-6-7-0-1 2-3-0-1-6-7-4-5 2-3-4-5-6-7-8... 3 3-0-1-2 3-2-1-0 3-4-5-6-7-0-1-2 3-2-1-0-7-6-5-4 3-4-5-6-7-8-9... 7-4-5-6 7-6-5-4 7-0-1-2-3-4-5-6 7-6-5-4-3-2-1-0 7-8-9-10-11-12-13... Wrap ... 7 ... 60 60-61-62-63-64-65-66... 61 61-62-63-WAIT-64-65-66... 62 62-63-WAIT-WAIT-64-65-66... 63 63-WAIT-WAIT-WAIT-64-65-66... No-wrap Linear Interleaved Linear Interleaved 0 0-1-2-3 0-1-2-3-4-5-6-7 0-1-2-3-4-5-6... 1 1-2-3-4 1-2-3-4-5-6-7-8 1-2-3-4-5-6-7... 2 2-3-4-5 2-3-4-5-6-7-8-9... 2-3-4-5-6-7-8... 3 3-4-5-6 3-4-5-6-7-8-9-10 3-4-5-6-7-8-9... 7-8-9-10 7-8-9-10-11-12-13-14 7-8-9-10-11-12-13... 60 60-61-62-63 60-61-62-63-64-65-66-67 60-61-62-63-64-65-66... 61 61-62-63-WAIT-64 61-62-63-WAIT-64-65-66-67-68 61-62-63-WAIT-64-65-66... 62 62-63-WAIT-WAIT-64-65 62-63-WAIT-WAIT-64-65-66-67-68-69 62-63-WAIT-WAIT-64-65-66... 63 63-WAIT-WAIT-WAIT-64-65-66 63-WAIT-WAIT-WAIT-64-65-66-67-68-69-70 63-WAIT-WAIT-WAIT-64-65-66... ... 7 ... M58MR016C, M58MR016D 22/51 Table 16. Burst Order and Length Configuration M58MR016C, M58MR016D COMMON FLASH INTERFACE (CFI) The Common Flash Interface (CFI) specification is a JEDEC approved, standardized data structure that can be read from the Flash memory device. CFI allows a system software to query the flash device to determine various electrical and timing parameters, density information and functions supported by the device. CFI allows the system to easily interface to the Flash memory, to learn about its features and parameters, enabling the software to configure itself when necessary. Tables 17, 18, 19, 20, 21, 22 and 23 show the address used to retrieve each data. The CFI data structure gives information on the device, such as the sectorization, the command set and some electrical specifications. The CFI data structure contains also a security area; in this section, a 64 bit unique security number is written, starting at address 81h. This area can be accessed only in read mode and there are no ways of changing the code after it has been written by ST. Write a read instruction to return to Read mode (see Table 11). Refer to the CFI Query instruction to understand how the M58MR016 enters the CFI Query mode. Table 17. Query Structure Overview Offset Sub-section Name Description 00h Reserved Reserved for algorithm-specific information 10h CFI Query Identification String Command set ID and algorithm data offset 1Bh System Interface Information Device timing & voltage information 27h Device Geometry Definition Flash device layout P Primary Algorithm-specific Extended Query table Additional information specific to the Primary Algorithm (optional) A Alternate Algorithm-specific Extended Query table Additional information specific to the Alternate Algorithm (optional) Security Code Area Lock Protection Register, Unique device Number and User Programmable OTP 80h Note: The Flash memory display the CFI data structure when CFI Query command is issued. In this table are listed the main sub-sections detailed in Tables 18, 19, 20, 21, 22 and 23. Query data are always presented on the lowest order data outputs. Table 18. CFI Query Identification String Offset Sub-section Name Description 00h 0020h 01h 88DEh 88E0h Manufacturer Code 02h reserved Reserved 03h DRC (1) Die Revision Code 04h-0Fh reserved Reserved 10h 0051h 11h 0052h 12h 0059h 13h 0002h 14h 0000h 15h offset = P = 0039h 16h 0000h 17h 0000h 18h 0000h 19h value = A = 0000h 1Ah 0000h Device Code Value ST Top Bottom "Q" Query Unique ASCII String "QRY" "R" "Y" Primary Algorithm Command Set and Control Interface ID code 16 bit ID code defining a specific algorithm Address for Primary Algorithm extended Query table (see Table 20) p = 39h Alternate Vendor Command Set and Control Interface ID Code second vendor - specified algorithm supported ( 0000h means none exists) NA Address for Alternate Algorithm extended Query table (0000h means none exists) NA Note: Query data are always presented on the lowest - order data outputs (ADQ0-ADQ7) only. ADQ8-ADQ15 are ‘0’. 1. DRC means Die Revision Code. 23/51 M58MR016C, M58MR016D Table 19. CFI Query System Interface Information Offset Data 1Bh 0017h VDD Logic Supply Minimum Program/Erase or Write voltage bit 7 to 4 BCD value in volts bit 3 to 0 BCD value in 100 millivolts 1.7V 1Ch 0020h VDD Logic Supply Maximum Program/Erase or Write voltage bit 7 to 4 BCD value in volts bit 3 to 0 BCD value in 100 millivolts 2V 1Dh 0017h VPP [Programming] Supply Minimum Program/Erase voltage bit 7 to 4 HEX value in volts bit 3 to 0 BCD value in 100 millivolts 1.7V 1Eh 00C0h VPP [Programming] Supply Maximum Program/Erase voltage bit 7 to 4 HEX value in volts bit 3 to 0 BCD value in 100 millivolts 12V 1Fh 0004h Typical timeout per single byte/word program = 2n µs 16µs 20h 0004h Typical timeout for tetra word program = 2n µs 16µs 21h 000Ah Typical timeout per individual block erase = 2n ms 1s 22h 0000h Typical timeout for full chip erase = 2n ms NA 23h 0004h Maximum timeout for word program = 2n times typical 512µs 24h 0004h Maximum timeout for tetra word = 2n times typical 512µs 25h 0004h Maximum timeout per individual block erase = 2n times typical 16s 26h 0000h Maximum timeout for chip erase = 2n times typical NA 24/51 Description Value M58MR016C, M58MR016D Table 20. Device Geometry Definition Data 27h 0015h Device Size = 2n in number of bytes 28h 29h 0001h 0000h Flash Device Interface Code description x16 Async. 2Ah 2Bh 0003h 0000h Maximum number of bytes in multi-byte program or page = 2n 8 Byte 2Ch 0003h Number of Erase Block Regions within the device bit 7 to 0 = x = number of Erase Block Regions It specifies the number of regions within the device containing one or more contiguous Erase Blocks of the same size. 3 24 M58MR016D M58MR016C Offset Word Mode Description Value 2 MByte 2Dh 2Eh 0017h 0000h Region 1 Information (main block - Bank B) Number of identical-size erase block = 002Fh+1 2Fh 30h 0000h 0001h Region 1 Information (main block - Bank B) Block size in Region 1 = 0100h * 256 byte 31h 32h 0006h 0000h Region 2 Information (main block - Bank A) Number of identical-size erase block = 0006h+1 33h 34h 0000h 0001h Region 2 Information (main block - Bank A) Block size in Region 2 = 0100h * 256 byte 35h 36h 0007h 0000h Region 3 Information (parameter block - Bank A) Number of identical-size erase block = 0007h+1 8 37h 38h 0020h 0000h Region 3 Information (parameter block - Bank A) Block size in Region 3 = 0020h * 256 byte 8 KByte 2Dh 2Eh 0007h 0000h Region 1 Information (parameter block - Bank A) Number of identical-size erase block = 0007h+1 8 2Fh 30h 0020h 0000h Region 1 Information (parameter block - Bank A) Block size in Region 1 = 0020h * 256 byte 8 KByte 31h 32h 0006h 0000h Region 2 Information (main block - Bank A) Number of identical-size erase block = 0006h+1 7 33h 34h 0000h 0001h Region 2 Information (main block - Bank A) Block size in Region 2 = 0001h * 256 byte 35h 36h 0017h 0000h Region 3 Information (parameter block - Bank B) Number of identical-size erase block = 002Fh+1 24 37h 38h 0000h 0001h Region 3 Information (parameter block - Bank B) Block size in Region 3 = 0001h * 256 byte 64 KByte 64 KByte 7 64 KByte 64 KByte 25/51 M58MR016C, M58MR016D Table 21. Primary Algorithm-Specific Extended Query Table Offset Data (P)h = 39h 0050h 0052h Description Value "P" Primary Algorithm extended Query table unique ASCII string “PRI” 0049h "R" "I" (P+3)h = 3Ch 0031h Major version number, ASCII "1" (P+4)h = 3Dh 0030h Minor version number, ASCII "0" (P+5)h = 3Eh 00E6h Extended Query table contents for Primary Algorithm. Address (P+5)h contains less significant byte. 0003h (P+7)h 0000h (P+8)h 0000h (P+9)h = 42h 0001h bit bit bit bit bit bit bit bit bit bit bit 0 1 2 3 4 5 6 7 8 9 10 to 31 Chip Erase supported (1 = Yes, 0 = No) Erase Suspend supported (1 = Yes, 0 = No) Program Suspend supported (1 = Yes, 0 = No) Legacy Lock/Unlock supported (1 = Yes, 0 = No) Queued Erase supported (1 = Yes, 0 = No) Instant individual block locking supported (1 = Yes, 0 = No) Protection bits supported (1 = Yes, 0 = No) Page mode read supported (1 = Yes, 0 = No) Synchronous read supported (1 = Yes, 0 = No) Simultaneous operation supported (1 = Yes, 0 = No) Reserved; undefined bits are ‘0’. If bit 31 is ’1’ then another 31 bit field of optional features follows at the end of the bit-30 field. No Yes Yes No No Yes Yes Yes Yes Yes Supported Functions after Suspend Read Array, Read Status Register and CFI Query Yes bit 0 bit 7 to 1 (P+A)h = 43h 0003h (P+B)h 0000h Program supported after Erase Suspend (1 = Yes, 0 = No) Reserved; undefined bits are ‘0’ Block Protect Status Defines which bits in the Block Status Register section of the Query are implemented. bit 0 Block protect Status Register Protect/Unprotect bit active (1 = Yes, 0 = No) bit 1 Block Lock Status Register Lock-Down bit active (1 = Yes, 0 = No) bit 15 to 2 Reserved for future use; undefined bits are ‘0’ (P+C)h = 45h 0018h VDD Logic Supply Optimum Program/Erase voltage (highest performance) bit 7 to 4 bit 3 to 0 (P+D)h = 46h 00C0h (P+E)h = 47h (P+F)h (P+10)h (P+11)h (P+12)h 26/51 0000h Reserved 1.8V HEX value in volts BCD value in 100 mV VPP Supply Optimum Program/Erase voltage bit 7 to 4 bit 3 to 0 Yes Yes HEX value in volts BCD value in 100 mV 12V M58MR016C, M58MR016D Table 22. Burst Read Information Offset Data (P)+13h = 48h 0003h Description Value Page-mode read capability bits 0-7 8 Byte ’n’ such that 2n HEX value represents the number of readpage bytes. See offset 28h for device word width to determine page-mode data output width. 00h indicates no read page buffer. (P+14)h = 49h 0003h Number of synchronous mode read configuration fields that follow. 00h indicates no burst capability. 3 (P+15)h = 4Ah 0001h Synchronous mode read capability configuration 1 4 bit 3-7 bit 0-2 Reserved ’n’ such that 2n+1 HEX value represents the maximum number of continuous synchronous reads when the device is configured for its maximum word width. A value of 07h indicates that the device is capable of continuous linear bursts that will output data until the internal burst counter reaches the end of the device’s burstable address space. This field’s 3-bit value can be written directly to the read configuration register bit 0-2 if the device is configured for its maximum word width. See offset 28h for word width to determine the burst data output width. (P+16)h = 4Bh 0002h Synchronous mode read capability configuration 2 8 (P+17)h = 4Ch 0007h Synchronous mode read capability configuration 3 Cont. (P+18)h = 4Dh 0028h Max operating clock frequency (MHz) (P+19)h = 4Eh 0001h Supported handshaking signal (WAIT pin) bit 0 bit 1 during synchronous read during asynchronous read 40 MHz (1 = Yes, 0 = No) (1 = Yes, 0 = No) Yes No Table 23. Security Code Area Offset Data 80h 0000-0000-0000-0XX0 81h XXXX 82h XXXX 83h XXXX 84h XXXX 85h XXXX 86h XXXX 87h XXXX 88h XXXX Description Lock Protection Register 64 bits: unique device number 64 bits: User Programmable OTP 27/51 M58MR016C, M58MR016D Table 24. AC Measurement Conditions Input Rise and Fall Times Figure 9. AC Testing Load Circuit ≤ 4ns VDDQ / 2 0 to VDDQ Input Pulse Voltages Input and Output Timing Ref. Voltages VDDQ/2 1N914 3.3kΩ Figure 8. Testing Input/Output Waveforms DEVICE UNDER TEST VDDQ OUT CL = 30pF VDDQ/2 0V CL includes JIG capacitance AI05235 AI05236 Table 25. Capacitance (1) (TA = 25 °C, f = 1 MHz) Symbol CIN COUT Parameter Input Capacitance Output Capacitance Note: 1. Sampled only, not 100% tested. 28/51 Test Condition Min Max Unit VIN = 0V 6 pF VOUT = 0V 12 pF M58MR016C, M58MR016D Table 26. DC Characteristics (TA = –40 to 85°C; VDD = VDDQ = 1.7V to 2.0V) Symbol Parameter ILI Input Leakage Current ILO Output Leakage Current Supply Current (Asynchronous Read Mode) IDD1 Supply Current (Synchronous Read Mode Continuous Burst) IDD2 Supply Current (Power-down) IDD3 Supply Current (Standby) IDD4 (1) IDD5 (1) Supply Current (Program or Erase) Supply Current (Dual Bank) IPP1 VPP Supply Current (Program or Erase) IPP2 VPP Supply Current (Standby or Read) Test Condition Min Typ Max Unit 0V ≤ VIN ≤ VDDQ ±1 µA 0V ≤ VOUT ≤ VDDQ ±5 µA E = VIL, G = VIH, f = 6MHz 10 20 mA E = VIL, G = VIH, f = 40MHz 20 30 mA RP = VSS ± 0.2V 2 10 µA E = VDD ± 0.2V 15 50 µA Word Program, Block Erase in progress 10 20 mA Program/Erase in progress in one Bank, Asynchronous Read in the other Bank 20 40 mA Program/Erase in progress in one Bank, Synchronous Read in the other Bank 30 50 mA VPP = 12V ± 0.6V 5 10 mA VPP ≤ VCC 0.2 5 µA VPP = 12V ± 0.6V 100 400 µA VIL Input Low Voltage –0.5 0.4 V VIH Input High Voltage VDDQ –0.4 VDDQ + 0.4 V VOL Output Low Voltage 0.1 V VOH Output High Voltage CMOS VPP1 IOL = 100µA IOH = –100µA VDDQ –0.1 VPP Supply Voltage Program, Erase VDDQ –0.4 VDDQ + 0.4 V VPPH VPP Supply Voltage Double/Tetra Word Program 11.4 12.6 V VPPLK Program or Erase Lockout 1 V V Note: 1. Sampled only, not 100% tested. 2. VPP may be connected to 12V power supply for a total of less than 100 hrs. 29/51 M58MR016C, M58MR016D Table 27. Asynchronous Read AC Characteristics (TA = –40 to 85°C; VDD = VDDQ = 1.7V to 2.0V) M58MR016 Symbol Alt Parameter Test Condition 100 Min 120 Max Min Unit Max tAVAV tRC Address Valid to Next Address Valid E = VIL, G = VIL 100 120 ns tAVLH tAVAVDH Address valid to Latch Enable High G = VIH 10 10 ns tAVQV tACC Address Valid to Output Valid (Random) E = VIL, G = VIL 100 120 ns tAVQV1 tPAGE Address Valid to Output Valid (Page) E = VIL, G = VIL 45 45 ns tEHQX tOH Chip Enable High to Output Transition G = VIL tEHQZ (1) tHZ Chip Enable High to Output Hi-Z G = VIL tELLH tELAVDH Chip Enable Low to Latch Enable High E = VIL, G = VIH tELQV (2) tCE Chip Enable Low to Output Valid G = VIL tELQX (1) tLZ Chip Enable Low to Output Transition G = VIL 0 0 ns tGHQX tOH Output Enable High to Output Transition E = VIL 0 0 ns tGHQZ (1) tDF Output Enable High to Output Hi-Z E = VIL 20 20 ns tGLQV (2) tOE Output Enable Low to Output Valid E = VIL 25 35 ns tGLQX (1) tOLZ Output Enable Low to Output Transition E = VIL 0 0 ns tLHAX tAVDHAX Latch Enable High to Address Transition E = VIL, G = VIH 10 10 ns Latch Enable High to Output Enable Low E = VIL 10 10 ns E = VIL, G = VIH 10 10 ns tLHGL tLLLH tAVDLAVDH tLLQV tAVDLQV tLLQV1 Latch Enable Pulse Width 0 20 10 ns 20 10 100 ns ns 120 ns Latch Enable Low to Output Valid (Random) E = VIL 100 120 ns Latch Enable Low to Output Valid (Page) E = VIL 45 45 ns Note: 1. Sampled only, not 100% tested. 2. G may be delayed by up to t ELQV - tGLQV after the falling edge of E without increasing tELQV . 30/51 0 Note: Write Enable (W) = High. G E L A16-A19 ADQ0-ADQ15 tLHGL tELLH tLLLH tAVLH tELQX tELQV tGLQV tGLQX tLHAX tLLQV VALID ADDRESS tAVQV VALID ADDRESS tAVAV VALID DATA tGHQZ tGHQX tEHQX tEHQZ AI05237 VALID ADDRESS VALID ADDRESS M58MR016C, M58MR016D Figure 10. Asynchronous Read AC Waveforms 31/51 32/51 G E L A16-A19 ADQ0-ADQ15 tAVLH tELQV tLLQV VALID ADDRESS tLHGL tGLQV tLHAX VALID DATA tGHQZ tLLQV1 tAVQV1 VALID ADDRESS VALID ADDRESS VALID ADDRESS VALID DATA VALID DATA VALID ADDRESS AI05238 VALID DATA M58MR016C, M58MR016D Figure 11. Page Read AC Waveforms M58MR016C, M58MR016D Table 28. Synchronous Burst Read AC Characteristics (TA = –40 to 85°C; VDD = VDDQ = 1.7V to 2.0V) M58MR016 Symbol Alt Parameter Test Condition 100 Min 120 Max Min Unit Max tAVK tAVCLKH Address Valid to Clock 7 7 ns tELK tCELCLKH Chip Enable Low to Clock 7 7 ns tK tCLK Clock Period 25 25 ns tKAX tCLKHAX 13 13 ns tKHKL tCLKHCLKL Clock High 5 5 ns tKLKH tCLKLCLKH Clock Low 5 5 ns tKQV tCLKHQV Clock to Data Valid Clock to BINV Valid Clock to WAIT Valid tKQX tCLKHQX Clock to Output Transition Clock to BINV Transition Clock to WAIT Transition tLHAX tADVHAX tLLK tAVDLCLKH Clock to Address Transition E = VIL, G = VIH E = VIL, G = VIL E = VIL 20 20 ns 4 4 ns Latch Enable High to Address transition 13 13 ns Latch Enable Low to Clock 7 7 ns 33/51 34/51 tELK tKAX tAVK tLLK tGLQX note 1 tKQV VALID VALID tK VALID note 2 tKQX tKQX tKQX tKQV tKQV note 3 VALID tGHQZ tGHQX tEHQZ tEHQX VALID VALID VALID DATA Note: 1. The number of clock cycles to be inserted depends upon the x-latency set in the read configuration register. 2. WAIT signal can be configured to be active during wait state or one cycle below wait state. 3. WAIT signal is asserted only when burst length is configured as continuous (see Burst Read section for further information). WAIT BINV G E K L tLLLH VALID ADDRESS A16-A19 tAVLH VALID ADDRESS ADQ0-ADQ15 AI05239 M58MR016C, M58MR016D Figure 12. Synchronous Burst Read M58MR016C, M58MR016D Table 29. Write AC Characteristics, Write Enable Controlled (TA = –40 to 85 °C; VDD = V DDQ = 1.7V to 2.0V) M58MR016 Symbol Alt Parameter 100 Min tAVAV tWC tAVLH tDVWH tDS tELLH tELWL tCS 120 Max Min Unit Max Address Valid to Next Address Valid 100 120 ns Address Valid to Latch Enable High 10 10 ns Input Valid to Write Enable High 40 40 ns Chip Enable Low to Latch Enable High 10 10 ns Chip Enable Low to Write Enable Low 0 0 ns tGHLL Output Enable High to Latch Enable Low 20 20 ns tGHWL Output Enable High to Write Enable Low 20 20 ns tLHAX Latch Enable High to Address Transition 10 10 ns tLHWH Latch Enable High to Write Enable High 10 10 ns tLLLH Latch Enable Pulse Width 10 10 ns VDD High to Chip Enable Low 50 50 µs VPP High to Write Enable High 200 200 ns tVDHEL tVCS tVPPHWH tWHDX tDH Write Enable High to Input Transition 0 0 ns tWHEH tCH Write Enable High to Chip Enable High 0 0 ns tWHGL tOEH Write Enable High to Output Enable Low 0 0 ns Write Enable High to Latch Enable Low 0 0 ns Write Enable High to VPP Low 200 200 ns Write Enable High to Write Enable Low 30 30 ns Write Enable High to Write Protect Valid 200 200 ns Write Enable Low to Write Enable High 50 50 ns Write Protect Valid to Write Enable High 200 200 ns tWHLL tWHVPPL tWHWL tWPH tWHWPV tWLWH tWPVWH tWP 35/51 36/51 VDD VPP WP G E W L BINV tVDHEL tGHLL tGHWL tELLH tLLLH tELWL ADDRESS VALID A16-A19 tAVLH ADDRESS VALID ADQ0-ADQ15 tLHAX tLHWH VPP1 VPPH tAVAV tVPPHWH tWPVWH tWLWH tWHWPV tWHGL tWHLL tWHDX tWHVPPL VALID VALID tDVWH DATA VALID AI05240 M58MR016C, M58MR016D Figure 13. Write AC Waveforms, W Controlled M58MR016C, M58MR016D Table 30. Write AC Characteristics, Chip Enable Controlled (TA = –40 to 85 °C; VDD = V DDQ = 1.7V to 2.0V) M58MR016 Symbol Alt Parameter 100 Min tAVAV tWC tAVLH 120 Max Min Unit Max Address Valid to Next Address Valid 100 120 ns Address Valid to Latch Enable High 10 10 ns 40 40 ns 0 0 ns tDVEH tDS Input Valid to Chip Enable High tEHDX tDH Chip Enable High to Input Transition tEHEL tCPH Chip Enable High to Chip Enable Low 30 30 ns tEHWH tWH Chip Enable High to Write Enable High 0 0 ns tELEH tCP Chip Enable Low to Chip Enable High 60 60 ns tELLH Chip Enable Low to Latch Enable High 10 10 ns tGHLL Output Enable High to Latch Enable Low 20 20 ns tLHAX Latch Enable High to Address Transition 10 10 ns tLHEH Latch Enable High to Chip Enable High 10 10 ns tLLLH Latch Enable Pulse Width 10 10 ns VDD High to Chip Enable Low 50 50 µs tVPPHEH VPP High to Chip Enable High 200 200 ns tEHVPPL Chip Enable High to VPP Low 200 200 ns tEHWPV Chip Enable High to Write Protect Valid 200 200 ns 0 0 ns 200 200 ns tVDHEL tWLEL tWPVEH tVCS tWS Chip Enable Low to Chip Enable Low Write Protect Valid to Chip Enable High 37/51 38/51 VDD VPP WP G E W L BINV tWLEL tGHLL tVDHEL tELLH tLLLH ADDRESS VALID A16-A19 tAVLH ADDRESS VALID ADQ0-ADQ15 tELEH tLHAX VPP1 VPPH tLHEH tVPPHEH tWPVEH tDVEH tEHWPV tEHEL tEHWH tEHVPPL VALID VALID tEHDX DATA VALID AI05241 M58MR016C, M58MR016D Figure 14. Write AC Waveforms, E Controlled M58MR016C, M58MR016D Figure 15. Reset and Power-up AC Waveforms L, W, E, G tPHWL tPHEL tPHGL tPHWL tPHEL tPHGL RP tVDHPH tPLPH VDD, VDDQ Power-up AI05242 Table 31. Reset and Power-up AC Characteristics Symbol tPLPH (1,2) tPHEL tPHLL tPHWL tVDHPH (3) Parameter Test Condition Min Unit 100 ns During Program and Erase 50 µs Other Conditions 30 ns 50 µs RP Pulse Width Reset High to Device Enabled Supply Valid to Reset High Note: 1. The device Reset is possible but not guaranteed if tPLPH < 100ns. 2. Sampled only, not 100% tested. 3. It is important to assert RP in order to allow proper CPU initialization during Power-up or System reset. Table 32. Program, Erase Times and Program, Erase Endurance Cycles (TA = –40 to 85°C; VDD = VDDQ = 1.7V to 2.0V, VPP = VDD unless otherwise specified) Max (1) Typ Typical after 100k W/E Cycles Unit Parameter Block (4 K-Word) Erase (Preprogrammed) 2.5 0.5 1 sec Main Block (32 K-Word) Erase (Preprogrammed) 10 1 3 sec Parameter Min Bank Erase (Preprogrammed, Bank A) 4 sec Bank Erase (Preprogrammed, Bank B) 15 sec Chip Program (2) 40 sec Chip Program (DPG, VPP = 12V) (2) 20 sec Word Program (3) 200 10 10 µs Double Word Program 200 10 10 µs Tetra Word Program 200 10 10 µs Program/Erase Cycles (per Block) 100,000 cycles Note: 1. Max values refer to the maximum time allowed by the internal algorithm before error bit is set. Worst case conditions program or erase should perform significantly better. 2. Excludes the time needed to execute the sequence for program instruction. 3. Same timing value if V PP = 12V. 39/51 M58MR016C, M58MR016D Figure 16. Program Flowchart and Pseudo Code (1) Start Write 40h or 10h Command Program instruction: – write 40h or 10h command – write Address & Data (memory enters read status state after the Program instruction) Write Address & Data do: – read status register (E or G must be toggled) if PES instruction given execute suspend program loop NO Read Status Register Suspend b7 = 1 NO YES Suspend Loop while b7 = 1 YES b3 = 0 NO VPP Invalid Error (1, 2) If b3 = 1, VPP invalid error: – error handler NO Program Error (1, 2) If b4 = 1, Program error: – error handler NO Program to Protected Block Error (1, 2) YES b4 = 0 YES b1 = 0 If b1 = 1, Program to protected block error: – error handler YES End AI05243 Note: 1. Status check of b1 (Protected Block), b3 (V PP Invalid) and b4 (Program Error) can be made after each program operation or after a program sequence. 2. If an error is found, the Status Register must be cleared (CLRS instruction) before further P/E.C. operations. 40/51 M58MR016C, M58MR016D Figure 17. Double Word Program and Tetra Word Program Flowchart and Pseudo code (1) Start Write 55h Command DPG instruction: – write 30h command – write Address 1 & Data 1 (3) – write Address 2 & Data 2 (3) (memory enters read status state after the Program instruction) Write Address 1 & Data 1 Write Address 2 & Data 2 TPG instruction: – write 55h command – write Address 1 & Data 1 (4) – write Address 2 & Data 2 (4) – write Address 3 & Data 3 (4) – write Address 4 & Data 4 (4) (memory enters read status state after the Program instruction) Write Address 3 & Data 3 Write Address 4 & Data 4 do: – read status register (E or G must be toggled) if PES instruction given execute suspend program loop NO Read Status Register Suspend b7 = 1 NO YES Suspend Loop while b7 = 1 YES b3 = 0 NO VPP Invalid Error (1, 2) If b3 = 1, VPP invalid error: – error handler NO Program Error (1, 2) If b4 = 1, Program error: – error handler NO Program to Protected Block Error (1, 2) YES b4 = 0 YES b1 = 0 If b1 = 1, Program to protected block error: – error handler YES End AI05244 Note: 1. Status check of b1 (Protected Block), b3 (VPP Invalid) and b4 (Program Error) can be made after each program operation or after a program sequence. 2. If an error is found, the Status Register must be cleared (CLRS instruction) before further P/E.C. operations. 3. Address 1 and address 2 must be consecutive addresses differing only for address bit A0. 4. Address, address 2, address 3 and address 4 must be consecutive addresses differing only for address bit A1-A0. 41/51 M58MR016C, M58MR016D Figure 18. Program Suspend & Resume Flowchart and Pseudo Code Start Write B0h Command PES instruction: – write B0h command do: – read status register (E or G must be toggled) Write 70h Command Read Status Register b7 = 1 NO while b7 = 1 YES b2 = 1 NO Program Complete If b2 = 0 Program completed YES Write a read Command Read data from another address Write D0h Command Write FFh Command Program Continues Read Data PER instruction: – write D0h command to resume the program – if the program operation completed then this is not necessary. The device returns to Read Array as normal (as if the Program/Erase suspend was not issued). AI05245 42/51 M58MR016C, M58MR016D Figure 19. Block Erase Flowchart and Pseudo Code Start Write 20h Command EE instruction: – write 20h command – write Block Address (A12-A19) & command D0h (memory enters read status state after the EE instruction) Write Block Address & D0h Command Suspend b7 = 1 do: – read status register (E or G must be toggled) if PES instruction given execute suspend erase loop NO Read Status Register NO YES Suspend Loop while b7 = 1 YES b3 = 0 NO VPP Invalid Error (1) NO Command Sequence Error (1) If b3 = 1, VPP invalid error: – error handler YES b4, b5 = 0 If b4, b5 = 1, Command sequence error: – error handler YES b5 = 0 NO Erase Error (1) If b5 = 1, Erase error: – error handler YES b1 = 0 NO Erase to Protected Block Error (1) If b1 = 1, Erase to protected block error: – error handler YES End AI05246 43/51 M58MR016C, M58MR016D Figure 20. Erase Suspend & Resume Flowchart and Pseudo Code Start Write B0h Command PES instruction: – write B0h command do: – read status register (E or G must be toggled) Write 70h Command Read Status Register b7 = 1 NO while b7 = 1 YES b6 = 1 NO Erase Complete If b6 = 0, Erase completed YES Read data from another block or Program/Protection Program or Block Protect/Unprotect/Lock Write D0h Command Write FFh Command Erase Continues Read Data PER instruction: – write D0h command to resume erasure – if the erase operation completed then this is not necessary. The device returns to Read Array as normal (as if the Program/Erase suspend was not issued). AI05247 44/51 M58MR016C, M58MR016D Table 33. Command Interface States - Lock table Current State of the Current Partition Current State of the Other Partition Any State Mode Read State Array CFI Electronic Signature Command Input to the Current Partition (and Next State of the Current Partition) Others Erase Read Confirm P/ Read Memory E Resume Status Array BU Register (FFH) Confirm (70h) (D0h) Clear Read Status Read CFI elect. Register (98h) sign. (90h) (50h) SEE Read MODIFY Read Array Read Array Status Read Array TABLE Register Read Elect. Sign. Read CFI Status Setup Protect Any State Unprotect Lock RCR Error ProtectUnprotectLockBlock Block Block Block Block Block Block ProtectProtectProtectProtectBlock ProtectProtectUnprotect- Unprotect- Protect- Unprotect- Unprotect- Unprotect- UnprotectLockError LockError Unprotect- LockError LockError LockError LockError Write RCR Write RCR LockBlock Write RCR Write RCR Write RCR Write RCR Error Error Error Error Error Error SEE Read MODIFY Read Array Read Array Status Read Array TABLE Register Read Elect. Sign. Set RCR Done SEE Read MODIFY Read Array Read Array Status Read Array TABLE Register Read Elect. Sign. Any State ProgramMultiple Program Done SEE Read MODIFY Read Array Read Array Status Read Array TABLE Register Read Elect. Sign. Program Suspend Read Array, CFI, Elect. Sign., Status SEE MODIFY TABLE PS Read Array Program (Busy) PS Read Status Register PS Read Array PS Read Elect. Sign. PS Read CFI Setup Erase Error Erase Error Erase (Busy) Erase Error Erase Error Erase Error Erase Error Idle Error Any State Block-Bank Erase Done SEE Read MODIFY Read Array Read Array Status Read Array TABLE Register Setup Busy Idle Program Suspend Read Array, CFI, Erase Elect. Suspend Sign., Status SEE MADIFY TABLE ES Read Array Erase (Busy) ES Read Array Erase (Busy) ES Read Array ES Read Status Register ES Read Array Read Elect. Sign. ES Read Elect. Sign. Block Write RCR Lock Confirm Confirm (03h) (2Fh) Read Array Read Array Read Array Block Block ProtectProtectSet RCR Unprotect- UnprotectLockBlock LockBlock Block ProtectUnprotectRead Array Read Array Read Array Read CFI LockSetup Write RCR Setup Block ProtectUnprotectRead CFI Read Array Read Array Read Array LockSetup Write RCR Setup Protection Register Erase Suspend Block Protect Confirm (01h) Block ProtectUnprotectRead CFI Read Array Read Array Read Array LockSetup Write RCR Setup Any State Setup Idle Block ProtectUnprotectLock setup write RCR setup (60h) Block ProtectUnprotectLockSetup Write RCR Setup Block ProtectUnprotectLockError Write RCR Error PS Read Array PS Read Array PS Read Array PS Read Array Erase Erase Erase Erase Error Error Error Error Block ProtectUnprotectRead Array Read Array Read Array Read CFI LockSetup Write RCR Setup Block ProtectES Read Unprotect- ES Read CFI LockSetup Array Write RCR Setup ES Read Array ES Read Array 45/51 M58MR016C, M58MR016D Table 34. Command Interface States - Modify table Current State of the Other Partition Current State of the Current Partition Mode State Read Array, CFI, Electronic Signature, Status Register Setup Busy Idle Erase Suspend Program Suspend Setup Busy Command Input to the Current Partition (and Next State of the Current Partition) Others SEE LOCK TABLE Idle Erase Suspend Program Suspend Setup Idle Erase Suspend Idle ProgramMultiple Program Program Suspend 46/51 Read Array Read Array Program setup Block Erase Setup Done SEE LOCK TABLE Program Suspend Block-Bank Erase Erase Suspend Program-Erase Suspend (B0h) Read Array OTP Setup (C0h) Multiple Program Setup (30h/55h) Bank Erase Setup (80h) Read Array Read Array Read Array OTP Setup Multiple Program Setup Read Array Read Array Read Array Read Array Read Array Read Array Program setup Block Erase Setup OTP Setup Multiple Program Setup Read Array Read Array Read Array Read Array Read Array Read Array Bank Erase Setup Read Array Read Array Bank Erase Setup Read Array Protection Protection Protection Protection Protection Protection Register (Busy) Register (Busy) Register (Busy) Register (Busy) Register (Busy) Register (Busy) Read Array Program Setup Read Array Read Array Block Erase Setup Read Array Read Array OTP Setup Multiple Program Setup Read Array Read Array Read Array Read Array Read Array Bank Erase Setup Read Array Program (Busy) Program (Busy) Program (Busy) PS Read Status Program (Busy) Program (Busy) Program (Busy) Register Read Array Read Array Program Setup Block Erase Setup Read Array Setup Busy Idle Block Erase Setup (20h) Read Array Error, ProtectProtect Idle UnprotectSEE LOCK Unprotect-Lock/ LockBlock, Set TABLE RCR Erase Suspend RCR Program Suspend Idle Setup Protection Register (Busy) Setup Busy Busy Protection Idle Register SEE LOCK Done TABLE Erase Suspend Program Suspend Any State Setup Program (Busy) Idle Busy Setup Busy Program Setup (10h/40h) Read Array Read Array Read Array Read Array OTP Setup Multiple Program Setup Read Array Read Array Read Array Bank Erase Setup Read Array Read Array, CFI, Elect. Sign., Status Register SEE LOCK TABLE Setup SEE LOCK TABLE Erase Error Erase Error Erase Error Erase Error Erase Error Erase Error Busy Erase (Busy) Erase (Busy) Erase (Busy) ES Read Status Register Erase (Busy) Erase (Busy) Erase (Busy) Read Array, CFI, Elect. Sign., Status Register SEE LOCK TABLE PS Read Array PS Read Array PS Read Array PS Read Array PS Read Array PS Read Array ES Read Array ES Read Array Program Setup ES Read Array ES Read Array ES Read Array Multiple ES Read Array Program Setup ES Read Array ES Read Array M58MR016C, M58MR016D Table 35. Ordering Information Scheme Example: M58MR016C 100 ZC 6 T Device Type M58 Architecture M = Multiplexed Address/Data, Dual Bank, Burst Mode Operating Voltage R = 1.8V Device Function 016C = 16 Mbit (x16), Dual Bank: 1/4-3/4 partitioning, Top Boot 016D = 16 Mbit (x16), Dual Bank: 1/4-3/4 partitioning, Bottom Boot Speed 100 = 100 ns 120 = 120 ns Package ZC = TFBGA48: 0.5 mm pitch Temperature Range 6 = –40 to 85°C Option T = Tape & Reel packing Devices are shipped from the factory with the memory content bits erased to ’1’. Table 36. Daisy Chain Ordering Scheme Example: M58MR016 -ZC T Device Type M58MR016 Daisy Chain -ZC = TFBGA48: 0.5 mm pitch Option T = Tape & Reel Packing For a list of available options (Speed, Package, etc...) or for further information on any aspect of this device, please contact the STMicroelectronics Sales Office nearest to you. 47/51 M58MR016C, M58MR016D Table 37. Document Revision History Date Version 12-Jun-2001 -01 First Issue 1.1 Revision numbering modified: a minor revision will be indicated by incrementing the digit after the dot, and a major revision, by incrementing the digit before the dot.(revision version 01 equals 1.0). Supply voltage ranges VDD and VDDQ modified. Parameters tK, tKQV, tKAX and tLHAX modified in Table 28, Synchronous Burst Read AC Characteristics. Document status changed from Product Preview to Preliminary Data. 01-Aug-2002 48/51 Revision Details M58MR016C, M58MR016D Table 38. TFBGA48 - 10 x 4 ball array, 0.5 mm pitch, Package Mechanical Data Symbol A A1 A2 b D D1 D2 D3 ddd E E1 E2 E3 e FD FD1 FD2 FE FE1 FE2 SD SE millimeters Min 0.950 0.200 Typ 0.790 0.300 10.530 4.500 6.500 8.500 0.250 10.480 – – – 6.290 1.500 3.500 5.500 0.500 3.015 2.015 1.015 2.395 1.395 0.395 0.250 0.250 6.240 – – – – – – – – – – – – Max 1.200 0.300 inches Min 0.0374 0.0079 Typ 0.350 10.580 – – – 0.080 6.340 – – – – – – – – – – – – 0.0311 0.0118 0.4146 0.1772 0.2559 0.3346 0.0098 0.4126 – – – 0.2476 0.0591 0.1378 0.2165 0.0197 0.1187 0.0793 0.0400 0.0943 0.0549 0.0156 0.0098 0.0098 0.2457 – – – – – – – – – – – – Max 0.0472 0.0118 0.0138 0.4165 – – – 0.0031 0.2496 – – – – – – – – – – – – Figure 21. TFBGA48 - 10 x 4 ball array, 0.5 mm pitch, Bottom View Package Outline D D3 D2 D1 FE FE1 FE2 SD E1 e E2 E3 E SE BALL "A1" FD2 FD1 b DUMMY BALLS FD ddd A A1 A2 BGA-Z17 Drawing is not to scale. 49/51 M58MR016C, M58MR016D Figure 22. TFBGA48 Daisy Chain - Package Connections (Top view through package) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 A B C D E F G H AI90039 Figure 23. TFBGA48 Daisy Chain - PCB Connections proposal (Top view through package) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 A B START POINT C D E F G END POINT H AI90040 50/51 M58MR016C, M58MR016D Information furnished is believed to be accurate and reliable. However, STMicroelectronics assumes no responsibility for the consequences of use of such information nor for any infringement of patents or other rights of third parties which may result from its use. No license is granted by implication or otherwise under any patent or patent rights of STMicroelectronics. Specifications mentioned in this publication are subject to change without notice. This publication supersedes and replaces all information previously supplied. STMicroelectronics products are not authorized for use as critical components in life support devices or systems without express written approval of STMicroelectronics. The ST logo is registered trademark of STMicroelectronics All other names are the property of their respective owners © 2001 STMicroelectronics - All Rights Reserved STMicroelectronics GROUP OF COMPANIES Australia - Brazil - China - Finland - France - Germany - Hong Kong - India - Italy - Japan - Malaysia - Malta - Morocco Singapore - Spain - Sweden - Switzerland - United Kingdom - U.S.A. www.st.com 51/51