************************************************************************ ************************************************************************ ** ** ** Application notes for STMicroelectronics FLASH memory devices ** ** ** ** (Informal Document) ** ** ** ** To find the application notes for your device search for the ** ** 'core' part name. As an example using the 25P20 8 pin SOIC you ** ** would search on '25P20' ** ** ** ************************************************************************ ************************************************************************ ************************************************************************ M28W320CB/T ---------- M28W160CB/T ---------- M28W800CB/T ---------- User Programmable OTP Bits are represented in the last 4 words of device data. User ram is increased to reflect this, For Ex. on a 16MEGx16 device, user ram is resized to 100004H locations; address 100000H through 100003H will contain user programmable OTP data. To enable programming, verifying and Blankcheck on user programmable OTP data,set the "Program" switch to "Y" and while Erasing, set the "Erase" switch to "N" for the last sector represented in the "Device Configure" screen. Programming the "Protection Register Bit2" is accomplished by setting the "Program security fuse2" switch to "Y" in the Program device screen, this will Lock "Parameter Block #0" of the device. Programming the "Protection Register Bit1" is accomplished by setting the "Program security fuse1" switch to "Y" in the Program device screen. This will protect the status of "Protection Register Bit2" and "User Programmable OTP Bits" of the device. Once the "Parameter Block #0" is protected set the "Erase" switch to "N" for that sector in the "Device Configure" screen while erasing or else you may get a "Non-Blank device" error while erasing. ************************************************************************ 25P05 ---------- 25P05A ---------- 25P10 ---------- 25P10A ---------- 25P20 ---------- 1.Four levels of "BLOCK PROTECT" can be implemented for these device as follows: Security Fuse Block Protect Start Addresses SF2 SF1 25P05/A 25P10/A 25P20 ------------- ------------ ------------ ----------- 0 0 None None None 0 1 None $18000-1FFFF $30000-3FFFF 1 0 None $10000-1FFFF $20000-3FFFF 1 1 $0-FFFF $00000-1FFFF $00000-3FFFF 2.Enabling the "Erase EE device" option will remove all block protection. NOTE: Devices require "Erase EE device" option to be enabled when re-programming. 3. Status Register Format: 7 6 5 4 3 2 1 0 |--------|--------|--------|--------|--------|--------|--------|--------| | | | | | | | | | | SRWD | 0 | 0 | 0 | BP1 | BP0 | WEL | WIP | | | | | | | | | | |--------|--------|--------|--------|--------|--------|--------|--------| Address of status register: 25P05/05A : $10000 25P10/10A : $20000 25P20 : $40000 4.Setting the "Program Protect Register" to Yes allows programming of the 'Status Register Write Disable' (SRWD) bit. For enabling "Program Protect Register" in TaskLink for windows(TLwin) or TaskLink for DOS(TLdos) you must set the Enable Special Data #2 option. *********************************************************************** 25P40 ---------- 25P80 ---------- 1.Eight levels of "BLOCK PROTECT" can be implemented for following devices: SF3 SF2 SF1 25P40 25P80 --------------------- ---------------- ---------------- 0 0 0 none none 0 0 1 $70000 - $7FFFF $F0000 - $FFFFF 0 1 0 $60000 - $7FFFF $E0000 - $FFFFF 0 1 1 $40000 - $7FFFF $C0000 - $FFFFF 1 0 0 $00000 - $7FFFF $80000 - $FFFFF 1 0 1 $00000 - $7FFFF $00000 - $FFFFF 1 1 0 $00000 - $7FFFF $00000 - $FFFFF 1 1 1 $00000 - $7FFFF $00000 - $FFFFF 2.Enabling the "Erase EE device" option will remove all block protection. NOTE: Devices require "Erase EE device" option to be enabled when re-programming. 3. Status Register Format: 7 6 5 4 3 2 1 0 |--------|--------|--------|--------|--------|--------|--------|--------| | | | | | | | | | | SRWD | 0 | 0 | BP2 | BP1 | BP0 | WEL | WIP | | | | | | | | | | |--------|--------|--------|--------|--------|--------|--------|--------| Address of status register: 25P40 : $80000 25P80 : $100000 4.Setting the "Program Protect Register" to Yes allows programming of the 'Status Register Write Disable'(SRWD) bit. For enabling "Program Protect Register" in TaskLink for windows(TLwin) or TaskLink for DOS(TLdos) you must set the Enable Special Data #2 option. ************************************************************************ 29W640DB / DT ------------- 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-200000 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-400000)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 (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 Sector Protection for this device is not supported at present. ************************************************************************