************************************************************************ ************************************************************************ ** ** ** Application notes for Spansion FLASH memory devices ** ** ** ** To find the application notes for your specific device you must ** ** search for the device using the 'core' device name. ** ** As an example using the S29GL128M-RA-R1 56 pin TSOP you would ** ** search on '29GL128M' ** ** ** ************************************************************************ ************************************************************************ ****************************************************************************** ************************************************************************** SPA 29GL064M-T-R0 (This device operates with a 8 bit data bus) ------------------ Due to ram limitations on the Unisystem programmers, this 64Mbit device had to be split into 2 equal 32Mbit Quadrants. Note - Since this device operates with a 8 bit data bus, all the below numbers are in byte values Device mapping: ---------------------- 0Mbit Unisystem RAM mapping: | Quadrant L | | 0-3FFFFF hex | --------------- 0Mbit | | | 0 hex | | | | |----------> | | | | |----------------------| 32Mbit | | | | | |----------> | Quadrant U | | 400000 hex | | 400000->7FFFFF hex | --------------- 32Mbit | | ---------------------- 64Mbit Quadrant L = Device addresses 0 -> 3FFFFF hex Quadrant U = Device addresses 400000 -> 7FFFFF hex SecSi Secure = Device addresses 0 ->FF and 400000 ->4000FF hex accessible as the last sector within the upper quadrant -------------------------------------------------------------------------- Example of downloading a data file: An example of downloading a 8 Megabytes (0 - 7FFFFF hex) file. You will need to download the files in two halves. The first half is for Quadrant L. The second half is for Quadrant U. ** NOTE: Quadrant L = Device addresses 000000 -> 3FFFFF hex Quadrant L settings: I/O Translation Format 99 I/O addr offset 0 Memory begin address 0 User data size 400000 Steps: 1) Download the first half (0-3FFFFF hex) of the data file into Quadrant L. 2) Program the device. ** NOTE: Quadrant U = Device addresses 400000 -> 7FFFFF hex Quadrant U settings: I/O Translation Format 99 I/O addr offset 400000 Memory begin address 0 User data size 400000 Steps: 1)Download the second half (400000-7FFFFF)of the data file into Quadrant U. 2)Program the device. -------------------------------------------------------------------------- Example of editing device data in the memory editor: If data editing needs to done in the user RAM memory editor the appropriate Quadrant Menu Selection (see table above) must first be determined. As an example if editing data at the device address starting at location 4F8000 hex, that device address location would fall into the Upper Quadrant. To find where location 4F8000 hex corresponds to location in the Quadrant U subtract the beginning device address range from the location you want to edit. In this case the location of device address location 4F8000 hex is in the Quadrant U, memory address is F8000 hex (F8000 hex = 4F8000 hex - 400000 hex) -------------------------------------------------------------------------- IMPORTANT NOTE: Sector ERASE operations may be performed within the selected quadrant and the desired sectors. However the "Protect/Unprotect all sectors" prior to the erase operation is performed ONLY within the lower quadrant algorithm. Due to this, it is necessary to erase/program the lower quadrant first prior to erasing the upper quadrant. This is ONLY needed when any sector within the upper quadrant is previously protected. -------------------------------------------------------------------------- The Secure Sector(SecSi) for this device consists of 256 bytes of One Time Programmable (OTP) memory. This OTP sector is physically located at the end of device at locations 0x400000 -.0x4000FF. In UniFam programmers, this sector is mapped as the last sector within the upper/last quadrant. This OTP sector will have its program flag set to N (No by default) in the Sector Configuration Screen. This Program flag controls the following device operations: Blank Check, Illegal Bit Check, Program and Verify. In order to perform these operations on this sector, this flag must be set to Y, by using More->Device Operation->Device configuration screen. ****************************************************************************** 29JL064H -------- 29GL064 ------- 29GL064M -------- Due to ram limitations on the Unisystem programmers, this 64Mbit device had to be split into 2 equal 32Mbit Quadrants. Note - Since this device operates with a 16 bit data bus, all the below numbers are in word (double-bytes) values Device mapping: ---------------------- 0Mbit Unisystem RAM mapping: | Quadrant L | | 0-1FFFFF hex | --------------- 0Mbit | | | 0 hex | | | | |----------> | | | | |----------------------| 32Mbit | | | | | |----------> | Quadrant U | | 200000 hex | | 200000->3FFFFF hex | --------------- 32Mbit | | ---------------------- 64Mbit Quadrant L = Device addresses 0 -> 1FFFFF hex Quadrant U = Device addresses 200000 -> 3FFFFF hex -------------------------------------------------------------------------- Example of downloading a data file: An example of downloading a 8 Megabytes (0 - 3FFFFF hex) file. You will need to download the files in two halves. The first half is for Quadrant L. The second half is for Quadrant U. ** NOTE: Quadrant L = Device addresses 000000 -> 1FFFFF hex Quadrant L settings: I/O Translation Format 99 I/O addr offset 0 Memory begin address 0 User data size 200000 (word) Steps: 1) Download the first half (0-1FFFFF hex) of the data file into Quadrant L. 2) Program the device. ** NOTE: Quadrant U = Device addresses 200000 -> 3FFFFF hex Quadrant U settings: I/O Translation Format 99 I/O addr offset 200000 (word) Memory begin address 0 User data size 200000 (word) Steps: 1)Download the second half (200000-3FFFFF)of the data file into Quadrant U. 2)Program the device. -------------------------------------------------------------------------- Example of editing device data in the memory editor: If data editing needs to done in the user RAM memory editor the appropriate Quadrant Menu Selection (see table above) must first be determined. As an example if editing data at the device address starting at location 2F8000 hex, that device address location would fall into the Upper Quadrant. To find where location 2F8000 hex corresponds to location in the Quadrant U subtract the beginning device address range from the location you want to edit. In this case the location of device address location 2F8000 hex is in the Quadrant U, memory address is F8000 hex (F8000 hex = 2F8000 hex - 200000 hex). -------------------------------------------------------------------------- IMPORTANT NOTE: Sector ERASE operations may be performed within the selected quadrant and the desired sectors. However the "Protect/Unprotect all sectors" prior to the erase operation is performed ONLY within the lower quadrant algorithm. Due to this, it is necessary to erase/program the lower quadrant first prior to erasing the upper quadrant. This is ONLY needed when any sector within the upper quadrant is previously protected. -------------------------------------------------------------------------- The Secure Sector(SecSi) for this device consists of 256 bytes of One Time Programmable (OTP) memory. The SecSi sector is accessible using the LOWER algorithm and is mapped as the last sector. ****************************************************************************** 29GL128M ------------ WARNING: Enabling Erase for one of the Quadrants Menu-selections will erase the whole device; i.e. This Erase will perform a Full Chip Erase Operation. *------- User RAM Partition as it relates to Menu Selections ------------* Due to User RAM limitations on the UniFam programmers, this device had to be split into 4 equal 32MegaBit Quadrants. The corresponding menu selections are: 29GL128M-Package-A0 to program the first Quadrant 29GL128M-Package-A1 to program the second Quadrant 29GL128M-Package-A2 to program the third Quadrant 29GL128M-Package-A3 to program the fourth Quadrant NOTE: "x" is defined as either "L" or "H" "Package" is defined as "T", "B", "F", etc... To load data from a data file for a particular Quadrant of the device you must set the download options as shown in the table below: Memory User Device I/O addr begin data address Menu selection: offset: address: size: range: 29GL128M-Package-A0: 0 hex 0 hex 200000 hex 0 -> 1FFFFF hex 29GL128M-Package-A1: 400000 hex 0 hex 200000 hex 200000 -> 3FFFFF hex 29GL128M-Package-A2: 800000 hex 0 hex 200000 hex 400000 -> 5FFFFF hex 29GL128M-Package-A3: C00000 hex 0 hex 200000 hex 600000 -> 7FFFFF hex *- Example: Downloading a data file for 29GL128M-Package-A1 menu selection -* NOTE: This is the Quadrant of the 128Mbit device that has the device addresses: 200000 -> 3FFFFF hex This example would be in regard to loading data into the programmer memory map from a datafile which is intended to be programmed into the 29GL128M-Package-A1 Quadrant of the device: I/O Translation Format 99 I/O addr offset 400000 Memory begin address 0 User data size 200000 Example of editing device data in the memory editor: If data editing needs to done in the user RAM memory editor the appropriate Quadrant Menu Selection (see table above) must first be determined. As an example if editing data at the device address starting at location 2F8000 hex, that device address location would fall into the Second Quadrant. To find where location 2F8000 hex corresponds to location in a specific Quadrant you must subtract the beginning device address range from the location you want to edit. Therefore, in this case, the location of device address location 2F8000 hex is in the Second Quadrant with a User RAM memory address of F8000 hex. Example: 2F8000 hex - 200000 hex = F8000 hex *------ SecSi Sector Data -----------* SecSi Sector is not supported currently for these devices. ****************************************************************************** 29GL128P ------------ 29GL128N ------------ WARNING: Enabling Erase for one of the Quadrants Menu-selections will erase the whole device; i.e. This Erase will perform a Full Chip Erase Operation. *------- User RAM Partition as it relates to Menu Selections ------------* Due to User RAM limitations on the UniFam programmers, this device had to be split into 4 equal 32MegaBit Quadrants. The corresponding menu selections are: suffix-A0 to program the first Quadrant suffix-A1 to program the second Quadrant suffix-A2 to program the third Quadrant suffix-A3 to program the fourth Quadrant Note - Since this device operates with a 16 bit data bus, all the below numbers are in word (16 bit) values. To load data from a data file for a particular Quadrant of the device you must set the download options as shown in the table below: Memory User Device I/O addr begin data address Menu selection: offset: address: size: range: suffix-A0: 0 hex 0 hex 200000 hex 0 -> 1FFFFF hex suffix-A1: 400000 hex 0 hex 200000 hex 200000 -> 3FFFFF hex suffix-A2: 800000 hex 0 hex 200000 hex 400000 -> 5FFFFF hex suffix-A3: C00000 hex 0 hex 200000 hex 600000 -> 7FFFFF hex *- Example: Downloading a data file for suffix-A1 menu selection -* NOTE: This is the Quadrant of the 128Mbit device that has the device addresses: 200000 -> 3FFFFF hex This example would be in regard to loading data into the programmer memory map from a datafile which is intended to be programmed into the suffix-A1 Quadrant of the device: I/O Translation Format 99 I/O addr offset 400000 Memory begin address 0 User data size 200000 Example of editing device data in the memory editor: If data editing needs to done in the user RAM memory editor the appropriate Quadrant Menu Selection (see table above) must first be determined. As an example if editing data at the device address starting at location 2F8000 hex, that device address location would fall into the Second Quadrant. To find where location 2F8000 hex corresponds to location in a specific Quadrant you must subtract the beginning device address range from the location you want to edit. Therefore, in this case, the location of device address location 2F8000 hex is in the Second Quadrant with a User RAM memory address of F8000 hex. Example: 2F8000 hex - 200000 hex = F8000 hex *------ SecSi Sector Data -----------* SecSi Sector is not supported currently for these devices. *------ Sector Protection/UnProtection -----------* Sector Protection/UnProtection : Not supported at the present for these devices. ****************************************************************************** 29GL256M --------- WARNING: Enabling Erase for one of the Quadrants Menu-selections will erase the whole device; i.e. This Erase will perform a Full Chip Erase Operation. *------- User RAM Partition as it relates to Menu Selections ------------* Due to User RAM limitations on the UniFam programmers, this device had to be split into 8 equal 32MegaBit Quadrants. The corresponding menu selections are: 29GL256M-Package-A0 to program the first Quadrant 29GL256M-Package-A1 to program the second Quadrant 29GL256M-Package-A2 to program the third Quadrant 29GL256M-Package-A3 to program the fourth Quadrant 29GL256M-Package-A4 to program the fifth Quadrant 29GL256M-Package-A5 to program the sixth Quadrant 29GL256M-Package-A6 to program the seventh Quadrant 29GL256M-Package-A7 to program the eighth Quadrant NOTE: "Package" is defined as "T", "B", "F", etc... To load data from a data file for a particular Quadrant of the device you must set the download options as shown in the table below: Memory User Device I/O addr begin data address Menu selection: offset: address: size: range: 29GL256M-Package-A0: 0 hex 0 hex 200000 hex 0 -> 1FFFFF hex 29GL256M-Package-A1: 400000 hex 0 hex 200000 hex 200000 -> 3FFFFF hex 29GL256M-Package-A2: 800000 hex 0 hex 200000 hex 400000 -> 5FFFFF hex 29GL256M-Package-A3: C00000 hex 0 hex 200000 hex 600000 -> 7FFFFF hex 29GL256M-Package-A4 1000000 hex 0 hex 200000 hex 800000 -> 9FFFFF hex 29GL256M-Package-A5 1400000 hex 0 hex 200000 hex A00000 -> BFFFFF hex 29GL256M-Package-A6 1800000 hex 0 hex 200000 hex C00000 -> DFFFFF hex 29GL256M-Package-A7 1C00000 hex 0 hex 200000 hex E00000 -> FFFFFF hex *- Example: Downloading a data file for 29GL256M-Package-A1 menu selection -* NOTE: This is the Quadrant of the 256Mbit device that has the device addresses: 200000 -> 3FFFFF hex This example would be in regard to loading data into the programmer memory map from a datafile which is intended to be programmed into the 29GL256M-Package-A1 Quadrant of the device: I/O Translation Format 99 I/O addr offset 400000 Memory begin address 0 User data size 200000 Example of editing device data in the memory editor: If data editing needs to done in the user RAM memory editor the appropriate Quadrant Menu Selection (see table above) must first be determined. As an example if editing data at the device address starting at location 2F8000 hex, that device address location would fall into the Second Quadrant. To find where location 2F8000 hex corresponds to location in a specific Quadrant you must subtract the beginning device address range from the location you want to edit. Therefore, in this case, the location of device address location 2F8000 hex is in the Second Quadrant with a User RAM memory address of F8000 hex. Example: 2F8000 hex - 200000 hex = F8000 hex *------ SecSi Sector Data -----------* SecSi Sector data : Not supported at the present for these devices. ************************************************************************ 29GL642M ------------ Due to ram limitations on the Unisystem programmers, this device had to be split into 4 equal 32Mbit quadrants. Make menu selections as: suffix A0 to program the first Quadrant, CE suffix A1 to program the second Quadrant, CE suffix A2 to program the third Quadrant, CE2 suffix A3 to program the fourth Quadrant, CE2 Note - This device consists of two independent LV0641 devices each being enabled individually using CE and CE2. Note - Since this device operates with a 16 bit data bus, all the below numbers are in word (16 bit) values. To load data from a data file for a particular Quadrant of the device you must set the download options as shown in the table below. The memory size of each Quadrant corresponds to a 128Mbit device. I/O addr Memory begin User data Device address Menu selection: offset: address: size: range: Quadrant A0: 0 hex 0 hex 200000 hex 0 -> 1FFFFF hex Quadrant A1: 200000 hex 0 hex 200000 hex 200000 -> 3FFFFF hex Quadrant A2: 400000 hex 0 hex 200000 hex 000000 -> 1FFFFF hex Quadrant A3: 600000 hex 0 hex 200000 hex 200000 -> 3FFFFF hex -------------------------------------------------------------------------- This device basically consists of two identical Am29LV641D devices stacked together (CE, and CE2). There are two Secure Silicon (SecSi) Sectors of 256 bytes each within it, and are accessible using the algorithms with A1 and A3 suffices. Upon selecting these algorithms, programming operations on these two sectors are defaulted to "NO". In order to enable programming these sectors, use More->Device Operations->Device configuration and set the Program flag to YES for these sectors, if programming operations are needed. Please see the notes for Am29LV641 for more information on this device. -------------------------------------------------------------------------- IMPORTANT NOTE: Sector ERASE operations may be performed within the selected quadrant and the desired sectors in each of the independent LV641 dies. However the "Protect/Unprotect all sectors" prior to the erase operation is performed ONLY within the algorithm with A0 and A2 suffices respectively for the first (CE) and the second (CE2) dies. Due to this, it is necessary to erase the quadrant with A0 suffix for the first die (CE) and the quadrant with A2 suffix for the second die (CE2). This is ONLY needed when any sector within the upper quadrants of the individual chips (CE and CE2) are previously protected. ************************************************************************