AN 309009 Migration Guide How to Migrate to Numonyx M29W640G from Spansion* S29GL064N Flash Memory Introduction The objective of this application note is to explain how to migrate an application based on the S29GL064N Flash memory to an M29W640G Flash memory. The purpose of this document is not to provide detailed information on the devices, but to highlight the similarities and differences between them. The comparison takes into consideration the signal descriptions, packages, architecture, software command set, performance, and block protections. The Numonyx M29W640G memory, manufactured on the mature 110nm technology, is ideal for all applications needing a reliable (min 100,000 cycles, 20 years data retention), fast, parallel NOR device 1 (available in 70ns). More than 360 million devices shipped worldwide on this technology between 2005 and the founding of Numonyx in 2008. Customers can rely on Numonyx to continue delivering highly reliable and mature products on this technology. M29W640G is offered in both boot and uniform sector with key features like double & quadruple word (fast program), write to buffer x16 words, Page Read x4 words to improve the flash throughput. M29W640G is available in Industrial Temperature Range and also offered with a special secure version (M29W640GS). A similar memory M29W064F from M29W family is available in automotive temperature range and/or automotive qualification, please enquiry your sales contact for availability of your desired combination The compatibility with Spansion S29GL064N in most of the cases should be searched with the M29W640G. In this document, the S29GL064N models 01, 02, 03, and 04, will be referred to as S29GL064N. The M29W640GH (highest block protected), M29W640GL (lowest block protected), M29W640GT (top boot), and M29W640GB (bottom boot) will be referred to as M29W640G unless otherwise specified. Please refer to the S29GL064N and M29W640G datasheets for additional information on devices. 1. Includes all densities. 1/18 Rev 1 Contents Introduction ................................................................................................................................... 1 Contents ....................................................................................................................................... 2 Memory architecture and protection groups .................................................................................. 3 Hardware migration ....................................................................................................................... 3 Packages................................................................................................................................... 4 Software command set............................................................................................................. 7 Fast program commands ........................................................................................................... 8 Program operation fails detection ............................................................................................ 10 Device codes and auto select codes ........................................................................................ 10 Difference in CFI operation ...................................................................................................... 11 Access time ............................................................................................................................. 14 Page read mode ...................................................................................................................... 14 Program and erase times ........................................................................................................ 15 Block protection .......................................................................................................................... 17 Temporary block unprotect ...................................................................................................... 17 Conclusion .................................................................................................................................. 17 Revision history ........................................................................................................................... 18 2/18 Memory architecture and protection groups The S29GL064N and the M29W640G memory arrays both come in uniform and boot block architectures. The uniform versions have 128 blocks of 32 Kwords (64 Kbytes) each. The boot block versions have 127 main blocks of 32 Kwords (64 Kbytes) each, and 8 boot blocks of 4 Kwords (8 Kbytes) each. Both devices have an extended memory block of 128 words in x 16 mode or of 256 bytes in x 8 mode. On the S29GL064N all blocks are protected individually. The protection granularity is the same as the block size. On the M29W640G, blocks are protected in groups of 4. On the H and L models, the first and last 4 blocks are protected individually. On the boot block models, T and B, the 8 boot/param blocks are protected individually. Hardware migration This section provides a detailed comparison between S29GL064N and M29W640G signals and package pin-out. Table 1: Signal description for the S29GL064N and M29W640G devices Name Description S29GL064N Direction M29W640G A0-A21 Address inputs Inputs DQ0-DQ7 Data inputs/outputs I/O DQ8-DQ14 Data inputs/outputs I/O Data input/output or address input (or data input/output) I/O DQ15A–1 (or DQ15) CE E Chip Enable Input OE G Output Enable Input WE W Write Enable Input RESET RP Reset/Block Temporary Unprotect Input RY/BY RB Ready/Busy output BYTE Byte/word organization select VCC WP/ACC Supply voltage VPP/WP VSS Output Input Supply Supply voltage for fast program (optional) or write protect Ground Input – Note: the VPP/WP (WP/ACC) pin can be left floating or unconnected due to an internal pull-up. 3/18 Packages The S29GL064N and M29W640G are delivered in TSOP48 – 12 x 20 mm, TSOP56 - 14 x 20 mm, TFBGA48 – 6 x 8 mm, 0.8 mm pitch, and TBGA64 - 10 x 13 mm, 1 mm pitch packages. Compared with S29GL064N, the package size of M29W640G TBGA64 is smaller than that of S29GL064N BGA64 11 x 13mm. In addition, M29W640G holds a different BGA ball size from what S29GL064N does. The BGA ball size of M29W640G ranges from 0.35mm to 0.5mm while the BGA ball size of S29GL064N ranges from 0.5mm to 0.7mm. The M29W640G is fully pin-to-pin compatible with the S29GL064N. See Figure 1 and Figure 2, in conjunction with Table 1 . Refer to the S29GL064N and M29W640G datasheets for details on the packages. Figure 1 S29GL064N TSOP48 connections Figure 2 M29W640G TSOP48 connections 4/18 Figure 3 S29GL064N TSOP56 connections Figure 4 M29W640G TSOP56 connections 5/18 Figure 5 S29GL064N VBK048 connections Figure 6 M29W640G TFBGA48 connections VBK048 dimensions are 6.15 mm x 8.15 mm TFBGA48 dimensions are 6 mm x 8 mm Figure 7 S29GL064N LAA064 connections Figure 8 M29W640G TBGA64 connections LAA064 dimensions are 11 mm x 13 mm TBGA64 available in 10 mm x 13 mm 6/18 Software command set The S29GL064N and M29W640G feature an identical set of standard commands. The commands are compliant with the JEDEC standard. Table 2: Command set Command S29GL064N M29W640G Read/Reset X X Auto Select X X Program X X Write Buffer X X Unlock Bypass X X Unlock Bypass Program X X Unlock Bypass Reset X X Chip Erase X X Block Erase X X Program/Erase Suspend X X Program/Erase Resume X X Read CFI Query X X Enter Extended Block X X Exit Extended Block X X Double Word Program - X Quadruple Byte Program - X Quadruple Word Program - X Octuple Byte Program - X 7/18 Fast program commands The S29GL064N and the M29W640G devices both feature fast program commands. Since the write to buffer program is available on both devices, it is recommended to use this command if a minimum number of changes are required for the migration. M29W640G has the capability to program 2 or 4 words at once, improving throughput. Table 3: M29W640G fast program and Write to buffer commands (16-bit mode) Length Bus write operations(1) Command Write to Buffer Program Double Word Program Confirm Quadruple Word Program 1st 2nd 3rd 4th 5th 6th Add Data Add Data Add Data Add Data Add Data Add Data N+5 555 AA 2AA 55 BAd 25 BAd N(2) PA(2) PD WBL(2) PD 3 555 50 PA0 PD0 PA1 PD1 5 555 56 PA0 PD0 PA1 PD1 PA2 PD2 PA3 PD3 1. X Don’t care, PA Program Address, PD Program Data, BAd Any address in the Block, WBL Write Buffer Location. All values in the table are in hexadecimal. 2. The maximum number of cycles in the command sequence is 20. N+1 is the number of words to be programmed during the write to buffer program operation. PA Program Address, PD Program Data, WBL Write Buffer Location (address must be within the same write buffer page as PA). Table 4 S29GL064N Write to Buffer command (16-bit mode) Cycles Bus write cycles Command Write to Buffer (1) WC + 5 1st 2nd 3rd Add Data Add Data 555 AA 2AA 55 Add BA (2) 4th Data 25 Add (2) BA 5th 6th Data Add Data (2) PA(2) PD WC (2) Add WBL 1. The total number of cycles in the command sequence is determined by the number of words to be written to the write buffer. The maximum number of cycles is 20. 2. BA Block Address, WC Number of words to be programmed - 1, PA Program Address, PD Program Data, WBL Write Buffer Location (address must be within the same write buffer page as PA). 8/18 (2) Data (2) PD Table 5 M29W640G fast program and Write to Buffer commands (8-bit mode) Command Length Bus write operations(1) 1st 2nd 3rd 4th 5th 9th Add Data Add Data Add Data Add Data Add Data Add Data BAd N(2) PA(2) PD WBL(2) PD PA7 PD7 Write to Buffer Program N+5 AAA AA 555 55 BAd 25 Double Byte Program Confirm 3 AAA 50 PA0 PD0 PA1 PD1 Quadruple Byte Program Abort and Reset 5 AAA 56 PA0 PD0 PA1 PD1 PA2 PD2 PA3 PD3 Octuple Byte Program 9 AAA 8B PA0 PD0 PA1 PD1 PA2 PD2 PA3 PD3 1. X Don’t care, PA Program Address, PD Program Data, BAd Any address in the Block, WBL Write Buffer Location. All values in the table are in hexadecimal. 2. The maximum number of cycles in the command sequence is 36. N+1 is the number of bytes to be programmed during the Write to Buffer Program operation. PA Program Address, PD Program Data, WBL Write Buffer Location (address must be within the same write buffer page as PA). Table 6 S29GL064N Write to Buffer command (8-bit mode) Command Write to Buffer(1) Length Bus write cycles BC+5 1st 2nd 3rd 4th 5th 6th Add Data Add Data Add Data Add Data Add Data Add Data AAA AA 555 55 BA(2) 25 BA BC(2) PA(2) PD(2) WBL(2) PD 1. The total number of cycles in the command sequence is determined by the number of bytes to be written to the write buffer. The maximum number of cycles is 36. 2. BA Block Address, WC Number of bytes to be programmed - 1, PA Program Address, PD Program Data, WBL Write Buffer Location (address must be within the same write buffer page as PA). 9/18 Program operation fails detection In M29W640G devices, it is possible to detect program operation fails, even during a write to buffer or enhanced buffered program, when changing programmed data from ‘0’ to ‘1’, that is when reprogramming data in a portion of memory already programmed. The resulting data will be the logical OR between the previous value and the current value. In S29GL064N devices, this functionality is not available. Device codes and auto select codes The auto select codes are composed of the manufacturer code, the device code, the block protection status, and the extended memory block verify code. The S29GL064N and M29W640G devices have different manufacturer code, device code, and extended memory block verify code. The S29GL064N and M29W640G devices use identical commands and address inputs to read the auto select codes. Two methods are available to access the auto select codes: • In the first method, an Auto Select command is issued to place the device in auto select mode. The auto select codes can then be read by using a bus read operation with addresses and control signals set as shown in Table 7 Bus operations for accessing the auto select codes. • In the high voltage method, the same sequence of bus read operations as in the first method is issued, except that A9 is set at VID. Table 7 Bus operations for accessing the auto select codes Address inputs Operation E G W Data inputs/outputs x 8 mode x 16 mode DQ15A-1, A0-A21 A0-A21 x 8 mode x 16 mode DQ15A-1, DQ14-DQ8 DQ7-DQ0 DQ14-DQ0 A0-A3 = VIL, A6 = VIL, Read manufacturer code VIL VIL VIH Hi-Z A9 = VID, others VIL or VIH A0 = VIH, A1-A3 = VIL, Read device code VIL VIL VIH Hi-Z A6 = VIL, A9 = VID, others VIL or VIH A0,A2,A3, A6= VIL, Block protection status VIL VIL VIH A1= VIH, A9 = VID, see Table 8 and table 9 Hi-Z A12-A21 = Block address, others VIL or VIH A0-A1 = VIH, A2-A3 = VIL, Extended memory block verify code VIL VIL VIH Hi-Z A6 = VIL, A9 = VID, others VIL or VIH 10/18 Table 8: Auto select codes Uniform Block Spansion Auto select code S29GL064N (01 model)(1) Numonyx S29GL064N (02 model)(2) M29W640GH M29W640GL Spansion S29GL064N (01 model)(1) S29GL064N (02 model)(2) x 16 mode 0001h Device code 227Eh 220Ch 2201h 227Eh 220Ch 227Eh 220Ch 2201h 2200h Block protection status 01h (protected) 00h (unprotected)(3) 0001h (protected) 0000h (unprotected) XX9Ah (factory locked) XX1Ah (not factory locked)( 3 ) 0020h XX8Ah (factory locked) XX0Ah (not factory locked)( 3 ) M29W640GH M29W640GL x 8 mode Manufacturer code Extended memory block verify indicator Numonyx 2298h (factory locked) 2218h (not factory locked) 0020h 2288h (factory locked) 2208h (not factory locked) 01h 20h 7Eh+0Ch+01h 7Eh+0Ch+01h 7Eh+0Ch+00h 01h (protected) 00h (unprotected) 8Ah (factory locked) 0Ah (not factory locked)(3) 9Ah (factory locked) 1Ah (not factory locked)(3) 98h ( factory locked) 18h (not factory locked) 88h (factor y locked) 08h (not factory locked) 1. Highest block protected by driving VPP/WP High. 2. Lowest block protected by driving VPP/WP High. 3. DQ8 to DQ15 are ‘don’t care’. Table 9 Auto select codes Boot Block Spansion Auto select code S29GL064N (03 model)(1) Numonyx S29GL064N (04 model)(2) M29W640GT M29W640GB Spansion S29GL064N (03 model)(1) S29GL064N (04 model)(2) x 16 mode Manufacturer code Device code Block protection status Extended memory block verify indicator 0001h 227Eh 2210h 227Eh 2210h 2201h 2200h 01h (protected) 00h (unprotected)(3) XX9Ah (factory locked) XX1Ah (not factory locked)( 3 ) XX8Ah (factory locked) XX0Ah (not factory locked)( 3 ) Numonyx M29W640GT M29W640GB x 8 mode 0020h 227Eh 2210h 2201h 0020h 01h 227Eh 2210h 7Eh+10h+01h 7Eh+10h+00h 2200h 0001h (protected) 0000h (unprotected) 2288h (factory locked) 2208h (not factory locked) 20h 2288h (factory locked) 2208h (not factory locked) 7Eh+10h+01h 7Eh+10h+00h 01h (protected) 00h (unprotected) 9Ah (factory locked) 1Ah (not factory locked)(3) 8Ah (factory locked) 0Ah (not factory locked)(3) 88h ( factory locked) 08h (not factory locked) 88h (factor y locked) 08h (not factory locked) 1. Top boot model. 2. Bottom boot model. 3. DQ8 to DQ15 are ‘don’t care’. Difference in CFI operation When exiting CFI mode on M29W640G device, Read/Reset command (0xF0h) is used to return the device to the previous mode (Main Array Read or Auto Select Mode). S29GL064N will enter main array read mode when it is issued Read/Reset command (0xF0h). Table 10 CFI exit sequence shows the detail exiting command sequence difference. 11/18 Table 10: CFI exit sequence Entering CFI Sequence Main Array Read --> CFI Main Array Read --> Auto Select Mode --> CFI Exiting from CFI to main array read command sequence S29GL064N M29W640G 0xF0h 0xF0h 0xF0h 0xF0h --> 0xF0h (twice cmd) M29W640G reads out different Query Unique ASCII string in byte mode comparing with S29GL064N. Table 10 CFI difference comparison (byte mode only) Address (x8) 20h 21h 22h 23h 24h 21h Data 51h 51h 52h 52h 53h 53h S29GL064N Description Query Unique ASCII string "Q" Query Unique ASCII string "Q" Query Unique ASCII string "R" Query Unique ASCII string "R" Query Unique ASCII string "Y" Query Unique ASCII string "Y" Data 51h 00h 52h 00h 53h 00h 12/18 M29W640G Description Query Unique ASCII string "Q" Query Unique ASCII string "R" Query Unique ASCII string "Y" Table 11 CFI difference comparison Address (x16) 1Dh 1Eh Address (x8) 3Ah 3Ch Data 0000h 0000h S29GL064N Description VPP Min = N/A VPP Max = N/A Data 00B5h 00C5h 1Fh 3Eh 0007h RFU 0004h 0004h 16 μS 0004h Maximum timeout for Byte/Word Program = 2^n times typical. Max time=Typ*16 20h 40h 0007h Typical timeout for Min. size buffer write 2^N μs= 128uS 23h 46h 0003h Max. timeout for byte/word program 2^N times typical. Max time=typ*8 24h 48h 0005h 25h 4Ah 0004h 28h 50h 000Xh 2Dh 2Eh 2Fh 30h 5Ah 5Ch 5Eh 60h 00XXh 000Xh 00X0h 000Xh 31h 62h 00XXh 45h 8Ah 00XXh 47h 8Eh 0001h 48h 90h 0000h 49h 92h 0008h 4Ch 98h 0002h 4Fh 9Eh 00XXh Max. timeout for buffer write 2N times typical Max. timeout per individual block erase 2^N times typical Flash Device Interface description (refer to CFI publication 100) 0001h = x16-only bus devices 0002h = x8/x16 bus devices Erase Block Region 1 Information 007Fh, 0000h, 0000h, 0001h = 64 Mb (01, 02, V1, V2) 0007h, 0000h, 0020h, 0000h = 64 Mb (03, Erase Block Region 2 Information (refer to CFI publication 100) 0000h, 0000h, 0000h, 0000h = 64 Mb (01, 02, 06, 07, V1, V2, V6, V7) 007Eh, 0000h, 0000h, 0001h = 64 Mb (03 04) Address Sensitive Unlock (Bits 1-0) 0 = Required, 1 = Not Required Process Technology (Bits 7-2) 0100b = 110 nm MirrorBit 0011h = x8-only bus devices 0010h = all other devices Sector Protect 0 = Not Supported, X = Number of sectors in smallest sector Sector Temporary Unprotect 00 = Not Supported, 01 = Supported Sector Protect/Unprotect scheme 0008h = Advanced sector Protection Page Mode Type 02 = 8 Word Page Top/Bottom Boot Sector Flag 02h = Bottom Boot Device, 03h = Top Boot Device, 04h = Uniform sectors bottom WP# protect, 05h = Uniform sectors top WP# protect 13/18 0004h M29W640G Description VPP Min = 11.5 V VPP Max = 12.5 V Typical timeout per single Byte/Word Program = 2^n μs= 16uS 256 μS 0003h Maximum timeout per individual Block Erase = 2^n times typical 0002h Flash device interface code description 0002=GH,GL,GT,GB 00XXh 000Xh 00X0h 000Xh Erase Block Region 1 Information 007Fh, 0000h, 0000h, 0001h = 64 Mb (640GH,GL) 0007h, 0000h, 0020h, 0000h = 64 Mb 00XXh Erase Block Region 2 Information 0000h, 0000h, 0000h, 0000h = 64 Mb (GH,GL) 007Eh, 0000h, 0000h, 0001h = 64 Mb (GT,GB) 0000h Address sensitive unlock (bits 1 to 0) 00h = required, 01h = not required Silicon revision number (bits 7 to 2) 0004h 0001h 0004h 0001h 00XXh Block Protection 00h = not supported, x = number of blocks per protection group Temporary Block Unprotect 00h = not supported, 01h = supported Block Protect /Unprotect Page mode: 00h = not supported, 01h = 4 page word, 02h = 8 page word Top/bottom boot block flag 02h = bottom boot device(640GB) 03h = top boot device(640GT) 04h = uniform blocks bottom VPP/WP protect(640GL) 05h = uniform blocks top VPP/WP protect(640GH) Performance and characteristics The S29GL064N and the M29W640G have almost compatible DC and AC characteristics (see the respective datasheets for details). The M29W640G memories offer better performance in terms of access and programming times than the S29GL064N devices. Access time The M29W640G has a random access time of 60 ns, 70 ns or 90 ns, whereas the S29GL064N has an access time of 90 ns, or 110 ns. Page read mode The page mode is available on the S29GL064N and M29W640G to speed up read operations. On M29W640G, the data is internally read and stored in a 4-word (or 8-byte) page buffer. For S29GL064N, the page width is 8 words. Using page read in both devices, the access time for subsequent read operations is reduced to 25 ns, while it is reduced to 30 ns when VCCQ = 1.65 V in the S29GL064N, or when using the 70 ns or 90 ns access time models of the M29W640G. 14/18 Program and erase times The time required to program or erase the whole memory is lower on the M29W640G compared to the S29GL064N. The memory can be either programmed using a Fast Program or an Enhanced Buffered Program command or using the word by word program command. Table 12 M29W640G program and erase times Parameter Min Chip Erase Block Erase (64 Kbytes) (4) Typ (1)(2) (2) Max (3) Unit 80 400 s 0.5 6 s 50 μs 200 μs Erase Suspend latency time Program (byte or word) 10 Double Byte 10 Double Word / Quadruple Byte Program 10 Quadruple Word / Octuple Byte Program 10 Single Byte and Word Program 10 32-byte/16-word Program using Write to Buffer and Program 180 32-byte/16-word Program using Write to Buffer and Program 45 μs (3) 200 μs μs μs (VPP/ WP = 12V) Chip Program (byte by byte) 80 Chip Program (word by word) 40 Chip Program (Double Word/Quadruple Byte Program Chip Program (Quadruple Word/Octuple Byte Program Program Suspend latency time Program/Erase cycles (per block) (3) s (3) s (3) s 400 200 20 100 10 50 4 (3) 100,000 cycles 20 years Data retention 1. Typical values measured at room temperature and nominal voltages. 2. Sampled, but not 100% tested. 3. Maximum value measured at worst case conditions for both temperature and VCC after 100,000 program/erase cycles. 4. Block Erase Polling cycle time (see Figure 23: Data polling AC waveforms in the M29W640G datasheet). 5. Intrinsic program timing, that means without the time required to execute the bus cycles to load the program commands. 15/18 s μs Table 13 Comparison between S29GL064N and M29W640G performance and characteristics Parameter Access time Page Read S29GL064N M29W640G 60 ns, 70 and 90 ns 90, 110 ns 25 ns 25 ns Write to Buffer Program Fast Program - Multi-Word Program 40 s (word by word) Chip Program time 63 s 20 s (double word programming) 10 s (quadruple word programming) Supply voltage 2.7 to 3.6 V Temperature range Chip Erase time 2.7 to 3.6 V –40 to 85 °C 64 s (typical), except all 0000h programmed prior to erasing 16/18 80 s (typical) Block protection The M29W640G memories, as the S29GL064N devices, feature hardware and software techniques to control block protection. The table below shows how the techniques are called in the M29W640G and S29GL064N devices, respectively. Table 14 Block protection techniques in M29W640G and S29GL064N Flashes M29W640G S29GL064N Hardware method (VPP/WP) Hardware Data Protection (WP/ACC) Software Protection Scheme Software Protection Scheme Standard Protection Mode Persistent Sector Protection Mode Password Protection Mode Password Sector Protection Mode valid on M29W640GS only Hardware Protection On both devices, the VPP function allows the memory to use an external high voltage power supply to reduce the time required for fast program operations. The Write Protect (WP) function provides a hardware method of protecting the outermost memory block: • When VPP/WP (WP#/ACC) is Low, VIL, the highest or lowest block is protected on both the M29W640G and S29GL064N devices. • When VPP/WP (WP#/ACC) is High, VIH, the memory reverts to the previous protection status of the outermost block. Upon customer request, on the M29W640G devices, applying 12 V to the VPP/WP pin will temporarily unprotect any block previously protected (including the two outermost blocks). Software Protection Persistent Sector Protection in S29GL064N corresponds to Standard protection Mode in M29W640GS, while Password Sector Protection corresponds to Password Protection Mode in M29W640GS, they are configured through a set of protection bits. The key difference between S29GL064N and M29W640GS under software protection scheme is that M29W640GS can only protect up to 4 main blocks or 4 parameter blocks in boot sector. For more details, please refer to AN2392: OTP Irreversible Protection modes on the M29W640GSH/L and M29W640GST/B Secure Flash memories. Temporary block unprotect In the M29W640G, when held at VID, the RP pin temporarily unprotects all the blocks previously protected except the lowest or highest block protected with VPP/WP held at Vil. In the M29W640G, this functionality is only available upon customer request, while it is not available at all in S29GL064N devices. Conclusion Applications can be migrated from an S29GL064N to an M29W640G Flash memory. In addition, the M29W640G features some better performance with respect to the S29GL064N devices. 17/18 Revision history Date Version 20-Mar-2009 1 Changes Initial release. 18/18