************************************************************************ ************************************************************************ ** ** ** Application notes for Winbond devices ** ** ** ** (Informal Document) ** ** ** ** To find the application notes for your device search for the ** ** 'core' part name. As an example using the 25P80 8 pin SOIC you ** ** would search on '25P80' ** ** ** ************************************************************************ ************************************************************************ ************************************************************************ 25P10 ---------- 25P20 ---------- 1.Four levels of "BLOCK PROTECT" can be implemented for these device as follows: Security Fuse Block Protect Start Addresses SF2 SF1 25P10 25P20 ------------- ------------ ----------- 0 0 None None 0 1 None $30000-3FFFF 1 0 None $20000-3FFFF 1 1 $0-FFFF $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: ,_______________________________________________________________________ | | | | | | | | | | SRWD | 0 | 0 | 0 | BP1 | BP0 | WEL | WIP | | | | | | | | | | `-----------------------------------------------------------------------` Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 Address of status register: 25P10: $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 ---------- PROGRAMMING OF THE "STATUS REGISTER PROTECT" (SRP) AND "BLOCK PROTECT" (TB,BP2,BP1,BP0) BITS Format of Protection Data in User RAM: 7 6 5 4 3 2 1 0 |--------|--------|--------|--------|--------|--------|--------|--------| | | | | | | | | | | SRWD | 0 | 0 | BP2 | BP1 | BP0 | WEL | WIP | | | | | | | | | | |--------|--------|--------|--------|--------|--------|--------|--------| Applying the following Protection Data into User RAM at the defined User RAM Address and enabling the "Program protect reg." flag in the in the programming operations will allow the following device protection programming support: User RAM Protection Data at User RAM Address: 0x80000 Area Protected for 25P40 ------------------ ----------------------------------- Data: 0x00 = none Data: 0x04 = 0x70000 -> 0x7FFFF Data: 0x08 = 0x60000 -> 0x7FFFF Data: 0x0C = 0x40000 -> 0x7FFFF Data: 0x10 = 0x00000 -> 0x7FFFF Data: 0x14 = 0x00000 -> 0x7FFFF Data: 0x18 = 0x00000 -> 0x7FFFF Data: 0x1C = 0x00000 -> 0x7FFFF Data: 0x80 = Status Register only Data: 0x84 = Status Register and 0x70000 -> 0x7FFFF Data: 0x88 = Status Register and 0x60000 -> 0x7FFFF Data: 0x8C = Status Register and 0x40000 -> 0x7FFFF Data: 0x90 = Status Register and 0x00000 -> 0x7FFFF Data: 0x94 = Status Register and 0x00000 -> 0x7FFFF Data: 0x98 = Status Register and 0x00000 -> 0x7FFFF Data: 0x9C = Status Register and 0x00000 -> 0x7FFFF User RAM Protection Data at User RAM Address: 0x100000 Area Protected for 25P80 ------------------ ----------------------------------- Data: 0x00 = none Data: 0x04 = 0xF0000 -> 0xFFFFF Data: 0x08 = 0xE0000 -> 0xFFFFF Data: 0x0C = 0xC0000 -> 0xFFFFF Data: 0x10 = 0x80000 -> 0xFFFFF Data: 0x14 = 0x00000 -> 0xFFFFF Data: 0x18 = 0x00000 -> 0xFFFFF Data: 0x1C = 0x00000 -> 0xFFFFF Data: 0x80 = Status Register only Data: 0x84 = Status Register and 0xF0000 -> 0xFFFFF Data: 0x88 = Status Register and 0xE0000 -> 0xFFFFF Data: 0x8C = Status Register and 0xC0000 -> 0xFFFFF Data: 0x90 = Status Register and 0x80000 -> 0xFFFFF Data: 0x94 = Status Register and 0x00000 -> 0xFFFFF Data: 0x98 = Status Register and 0x00000 -> 0xFFFFF Data: 0x9C = Status Register and 0x00000 -> 0xFFFFF For enabling "Program Protect Reg." in TaskLink for Windows(TLwin) or TaskLink for DOS(TLdos) you must set the Enable Special Data #2 option. ************************************************************************ 25X10 ---------- 25X20 ---------- 25X40 ---------- 25X80 ---------- 25X16 ---------- 25X32 ---------- PROGRAMMING OF THE "STATUS REGISTER PROTECT" (SRP) AND "BLOCK PROTECT" (TB,BP2,BP1,BP0) BITS Format of Protection Data in User RAM: 7 6 5 4 3 2 1 0 |--------|--------|--------|--------|--------|--------|--------|--------| | | | | | | | | | | SRWD | 0 | TB | BP2 | BP1 | BP0 | WEL | WIP | | | | | | | | | | |--------|--------|--------|--------|--------|--------|--------|--------| Applying the following Protection Data into User RAM at the defined User RAM Address and enabling the "Program protect reg." flag in the in the programming operations will allow the following device protection programming support: User RAM Protection Data at User RAM Address: 0x20000 Area Protected for 25X10 ------------------ ----------------------------------- Data: 0x00 = none Data: 0x04 = 0x10000 -> 0x1FFFF Data: 0x08 = 0x00000 -> 0x1FFFF Data: 0x0C = 0x00000 -> 0x1FFFF Data: 0x20 = none Data: 0x24 = 0x00000 -> 0x1FFFF Data: 0x28 = 0x00000 -> 0x1FFFF Data: 0x2C = 0x00000 -> 0x1FFFF Data: 0x80 = Status Register only Data: 0x84 = Status Register and 0x10000 -> 0x1FFFF Data: 0x88 = Status Register and 0x00000 -> 0x1FFFF Data: 0x8C = Status Register and 0x00000 -> 0x1FFFF Data: 0xA0 = Status Register only Data: 0xA4 = Status Register and 0x00000 -> 0x1FFFF Data: 0xA8 = Status Register and 0x00000 -> 0x1FFFF Data: 0xAC = Status Register and 0x00000 -> 0x1FFFF User RAM Protection Data at User RAM Address: 0x40000 Area Protected for 25X20 ------------------ ----------------------------------- Data: 0x00 = none Data: 0x04 = 0x30000 -> 0x3FFFF Data: 0x08 = 0x20000 -> 0x3FFFF Data: 0x0C = 0x00000 -> 0x3FFFF Data: 0x20 = none Data: 0x24 = 0x00000 -> 0x0FFFF Data: 0x28 = 0x00000 -> 0x1FFFF Data: 0x2C = 0x00000 -> 0x3FFFF Data: 0x80 = Status Register only Data: 0x84 = Status Register and 0x30000 -> 0x3FFFF Data: 0x88 = Status Register and 0x20000 -> 0x3FFFF Data: 0x8C = Status Register and 0x00000 -> 0x3FFFF Data: 0xA0 = Status Register only Data: 0xA4 = Status Register and 0x00000 -> 0x0FFFF Data: 0xA8 = Status Register and 0x00000 -> 0x1FFFF Data: 0xAC = Status Register and 0x00000 -> 0x3FFFF User RAM Protection Data at User RAM Address: 0x80000 Area Protected for 25X40 ------------------ ----------------------------------- Data: 0x00 = none Data: 0x04 = 0x70000 -> 0x7FFFF Data: 0x08 = 0x60000 -> 0x7FFFF Data: 0x0C = 0x40000 -> 0x7FFFF Data: 0x10 = 0x00000 -> 0x7FFFF Data: 0x14 = 0x00000 -> 0x7FFFF Data: 0x18 = 0x00000 -> 0x7FFFF Data: 0x1C = 0x00000 -> 0x7FFFF Data: 0x20 = none Data: 0x24 = 0x00000 -> 0x0FFFF Data: 0x28 = 0x00000 -> 0x1FFFF Data: 0x2C = 0x00000 -> 0x3FFFF Data: 0x30 = 0x00000 -> 0x7FFFF Data: 0x34 = 0x00000 -> 0x7FFFF Data: 0x38 = 0x00000 -> 0x7FFFF Data: 0x3C = 0x00000 -> 0x7FFFF Data: 0x80 = Status Register only Data: 0x84 = Status Register and 0x70000 -> 0x7FFFF Data: 0x88 = Status Register and 0x60000 -> 0x7FFFF Data: 0x8C = Status Register and 0x40000 -> 0x7FFFF Data: 0x90 = Status Register and 0x00000 -> 0x7FFFF Data: 0x94 = Status Register and 0x00000 -> 0x7FFFF Data: 0x98 = Status Register and 0x00000 -> 0x7FFFF Data: 0x9C = Status Register and 0x00000 -> 0x7FFFF Data: 0xA0 = Status Register only Data: 0xA4 = Status Register and 0x00000 -> 0x0FFFF Data: 0xA8 = Status Register and 0x00000 -> 0x1FFFF Data: 0xAC = Status Register and 0x00000 -> 0x3FFFF Data: 0xB0 = Status Register and 0x00000 -> 0x7FFFF Data: 0xB4 = Status Register and 0x00000 -> 0x7FFFF Data: 0xB8 = Status Register and 0x00000 -> 0x7FFFF Data: 0xBC = Status Register and 0x00000 -> 0x7FFFF User RAM Protection Data at User RAM Address: 0x100000 Area Protected for 25X80 ------------------ ----------------------------------- Data: 0x00 = none Data: 0x04 = 0xF0000 -> 0xFFFFF Data: 0x08 = 0xE0000 -> 0xFFFFF Data: 0x0C = 0xC0000 -> 0xFFFFF Data: 0x10 = 0x80000 -> 0xFFFFF Data: 0x14 = 0x00000 -> 0xFFFFF Data: 0x18 = 0x00000 -> 0xFFFFF Data: 0x1C = 0x00000 -> 0xFFFFF Data: 0x20 = none Data: 0x24 = 0x00000 -> 0x0FFFF Data: 0x28 = 0x00000 -> 0x1FFFF Data: 0x2C = 0x00000 -> 0x3FFFF Data: 0x30 = 0x00000 -> 0x7FFFF Data: 0x34 = 0x00000 -> 0xFFFFF Data: 0x38 = 0x00000 -> 0xFFFFF Data: 0x3C = 0x00000 -> 0xFFFFF Data: 0x80 = Status Register only Data: 0x04 = Status Register and 0xF0000 -> 0xFFFFF Data: 0x08 = Status Register and 0xE0000 -> 0xFFFFF Data: 0x0C = Status Register and 0xC0000 -> 0xFFFFF Data: 0x10 = Status Register and 0x80000 -> 0xFFFFF Data: 0x14 = Status Register and 0x00000 -> 0xFFFFF Data: 0x18 = Status Register and 0x00000 -> 0xFFFFF Data: 0x1C = Status Register and 0x00000 -> 0xFFFFF Data: 0xA0 = Status Register only Data: 0xA4 = Status Register and 0x00000 -> 0x0FFFF Data: 0xA8 = Status Register and 0x00000 -> 0x1FFFF Data: 0xAC = Status Register and 0x00000 -> 0x3FFFF Data: 0xB0 = Status Register and 0x00000 -> 0x7FFFF Data: 0xB4 = Status Register and 0x00000 -> 0xFFFFF Data: 0xB8 = Status Register and 0x00000 -> 0xFFFFF Data: 0xBC = Status Register and 0x00000 -> 0xFFFFF User RAM Protection Data at User RAM Address: 0x200000 Area Protected for 25X16 ------------------ ----------------------------------- Data: 0x00 = none Data: 0x04 = 0x1F0000 -> 0x1FFFFF Data: 0x08 = 0x1E0000 -> 0x1FFFFF Data: 0x0C = 0x1C0000 -> 0x1FFFFF Data: 0x10 = 0x180000 -> 0x1FFFFF Data: 0x14 = 0x100000 -> 0x1FFFFF Data: 0x18 = 0x000000 -> 0x1FFFFF Data: 0x1C = 0x000000 -> 0x1FFFFF Data: 0x20 = none Data: 0x24 = 0x000000 -> 0x00FFFF Data: 0x28 = 0x000000 -> 0x01FFFF Data: 0x2C = 0x000000 -> 0x03FFFF Data: 0x30 = 0x000000 -> 0x07FFFF Data: 0x34 = 0x000000 -> 0x0FFFFF Data: 0x38 = 0x000000 -> 0x1FFFFF Data: 0x3C = 0x000000 -> 0x1FFFFF Data: 0x80 = Status Register only Data: 0x84 = Status Register and 0x1F0000 -> 0x1FFFFF Data: 0x88 = Status Register and 0x1E0000 -> 0x1FFFFF Data: 0x8C = Status Register and 0x1C0000 -> 0x1FFFFF Data: 0x90 = Status Register and 0x180000 -> 0x1FFFFF Data: 0x94 = Status Register and 0x100000 -> 0x1FFFFF Data: 0x98 = Status Register and 0x000000 -> 0x1FFFFF Data: 0x9C = Status Register and 0x000000 -> 0x1FFFFF Data: 0xA0 = Status Register only Data: 0xA4 = Status Register and 0x000000 -> 0x00FFFF Data: 0xA8 = Status Register and 0x000000 -> 0x01FFFF Data: 0xAC = Status Register and 0x000000 -> 0x03FFFF Data: 0xB0 = Status Register and 0x000000 -> 0x07FFFF Data: 0xB4 = Status Register and 0x000000 -> 0x0FFFFF Data: 0xB8 = Status Register and 0x000000 -> 0x1FFFFF Data: 0xBC = Status Register and 0x000000 -> 0x1FFFFF User RAM Protection Data at User RAM Address: 0x400000 Area Protected for 25X32 ------------------ ----------------------------------- Data: 0x00 = none Data: 0x04 = 0x3F0000 -> 0x3FFFFF Data: 0x08 = 0x3E0000 -> 0x3FFFFF Data: 0x0C = 0x3C0000 -> 0x3FFFFF Data: 0x10 = 0x380000 -> 0x3FFFFF Data: 0x14 = 0x300000 -> 0x3FFFFF Data: 0x18 = 0x200000 -> 0x3FFFFF Data: 0x1C = 0x000000 -> 0x3FFFFF Data: 0x20 = none Data: 0x24 = 0x000000 -> 0x00FFFF Data: 0x28 = 0x000000 -> 0x01FFFF Data: 0x2C = 0x000000 -> 0x03FFFF Data: 0x30 = 0x000000 -> 0x07FFFF Data: 0x34 = 0x000000 -> 0x0FFFFF Data: 0x38 = 0x000000 -> 0x1FFFFF Data: 0x3C = 0x000000 -> 0x3FFFFF Data: 0x80 = Status Register only Data: 0x84 = Status Register and 0x3F0000 -> 0x3FFFFF Data: 0x88 = Status Register and 0x3E0000 -> 0x3FFFFF Data: 0x8C = Status Register and 0x3C0000 -> 0x3FFFFF Data: 0x90 = Status Register and 0x380000 -> 0x3FFFFF Data: 0x94 = Status Register and 0x300000 -> 0x3FFFFF Data: 0x98 = Status Register and 0x200000 -> 0x3FFFFF Data: 0x9C = Status Register and 0x000000 -> 0x3FFFFF Data: 0xA0 = Status Register only Data: 0xA4 = Status Register and 0x000000 -> 0x00FFFF Data: 0xA8 = Status Register and 0x000000 -> 0x01FFFF Data: 0xAC = Status Register and 0x000000 -> 0x03FFFF Data: 0xB0 = Status Register and 0x000000 -> 0x07FFFF Data: 0xB4 = Status Register and 0x000000 -> 0x0FFFFF Data: 0xB8 = Status Register and 0x000000 -> 0x1FFFFF Data: 0xBC = Status Register and 0x000000 -> 0x3FFFFF For enabling "Program Protect Reg." in TaskLink for Windows(TLwin) or TaskLink for DOS(TLdos) you must set the Enable Special Data #2 option. ************************************************************************ ************************************************************************