************************************************************************
************************************************************************
**                                                                    **
**           Application notes for FLASH memory devices               **
**                       (Informal Document)                          **
**                                                                    **
** To find the app notes for your specific device, search for the     **
** core device name (example: 28F640). To print the app notes         **
** highlight and select the app notes, copy it, and paste it to       **
** notepad.                                                           **
**                                                                    **
** For a description of how to download files in multiple segments    **
** and how to edit RAM see the File Edit and RAM download description **
** sections at the bottom of this appnote file.                       **
**                                                                    **
************************************************************************
************************************************************************

*-Micron-*
28S4M16LC  SyncFlash

Due to memory limitations on the Unisystem programmers, this 64Mbit device
is split into 2 equal 32Mbit quadrants.  Two separate device algorithm
-U and -L menu selections are used to access the upper and lower quadrants.

                                     Device mapping:
                                 ----------------------  0Mbit
Unisystem RAM mapping:          | Quadrant 1 (Lower)   |
                                | 0-1FFFFF hex         |
 --------------- 0Mbit          | Banks 0 & 1          |
| 0 hex         |               |                      |
|               |---------->    |                      |
|               |               |----------------------| 32Mbit
|               |               | Quadrant 2 (Upper)   |
|               |---------->    | 200000->3FFFFF hex   |
| 1FFFFF hex    |               | Banks 2 & 3          |
|--------------- 32Mbit         |                      |
| 200000 hex    |NVMODE DATA    |                      |
 ---------------                 ----------------------  64Mbit


  Quadrant 1   =  Device addresses 0 -> 1FFFFF hex
               =  Sectors 0-7 in Bank 0 and Bank 1

  Quadrant 2   =  Device addresses 200000 -> 3FFFFF hex
               =  Sectors 8-15 in Bank 2 and Bank 3

  NVMODE DATA  =  NVMODE Register data.  See NVMODE notes below.


NVMODE Data:  Reference your Micron Datasheet for valid NVMODE register settings and
	descriptions.  NVMODE register data is stored at 200000 hex in the Unisystem
	memory map.  After placing the NVMODE configuration word at 200000 hex, enable
	the "Program configuration" flag in the Program Device screen.  If you are
	using Tasklink for Windows, enable the "Special Data #1" flag in the Setup->
	Programmer Properties->Special tab.  The programmer does not support
	stand-alone verify of NVMODE data.  NVMODE data may be programmed during either
	the -U or -L menu selection.

Device Protection Bit:  Reference your Micron Datasheet for a description of this feature.
	This bit is One Time Programmable (OTP).  Set this bit by enabling the
	"Program Security Fuse" flag in the Program Device screen.  If you are using
	Tasklink for Windows, enter "3" as the Security Option in the Setup->Programmer
	Properties->General tab.

OTP Sectors:  Sector 0 and Sector 15 are One-Time-Protectable.  Once you protect these
	sectors they cannot be un-protected.  If you attempt to erase a device that has
	either of these sectors protected you may encounter non-blank errors.  Reference
	your Micron datasheet for more information regarding the protection of the first
	and last sector.

Notes:  The sector protection status flags for this device can ONLY be reset in
	the -L (Lower) algorithm menu selection.  You may encounter software data
	protect	errors if you try to erase the device using the -U menu selection.

--------------------------------------------------------------------------------


*-Micron-*
28F642D18, 28F642D20, 28C6428P20

** Note 1:  This device is supported with Hiterm using OS v6.8 or higher.
Currently Tasklink does not support this device. There is a bug with the
Tasklink software. It will be supported when the bug is resolved.

** Note 2: The 'F1' key is back to the Main menu.

** Note 3: Quadrant 1 = Upper Half of device
           Quadrant 2 = Lower Half of device

Due to ram limitations on the Unisystem programmers, this 64Mbit device
had to be split into 2 equal 32Mbit Quadrants .

                                         Device mapping:
                                 ----------------------  0Mbit
Unisystem RAM mapping:          | Quadrant 1           |
                                | 0-1FFFFF hex         |
 --------------- 0Mbit          |                      |
| 0 hex         |               |                      |
|               |---------->    |                      |
|               |               |----------------------| 32Mbit
|               |               |                      |
|               |---------->    |                      |
| 200000 hex    |               | 200000->3FFFFF hex   |
 --------------- 32Mbit         |                      |
                                |----------------------| 64Mbit
                                | 400000->400003 hex   |
                                 ----------------------  Protection Registers

  Quadrant 1   =  Device addresses 0 -> 1FFFFF hex
               =  Sectors 0-70 for Bottom Bootblock
               =  Sectors 0-63 for Top Bootblock

  Quadrant 2   =  Device addresses 200000 -> 3FFFFF hex
               =  Sectors 71-134 for Bottom Bootblock
               =  Sectors 64-134 for Top Bootblock

  Protection   =  Device addresses 400000 -> 400003 hex
  Registers    =  Sector 135 in Quadrant 2


Quadrant 1:
Load/Verify/Program/Erase
1) Select Device Configure
2) Hold down 'Ctrl' key and hit the 'K' key on the keyboard to enter the sector mode.
3) Under SECTOR CONFIGURATION select the sectors in Quadrant 1. Use the arrow key to
   scroll up or down to select the sectors.
    a) Sectors to be Erased: 0-70 for Bottom Bootblock     (for Top Bootblock it is sector 0-63)
    b) Sectors to be Programmed: 0-70 for Bottom Bootblock (for Top Bootblock it is sector 0-63)
    c) Sectors to be Protected: -

   The 'F1' key is back to the Main menu.


Quadrant 2:
Load/Verify/Program/Erase/Protection Registers
1) Select Program Device. The PROGRAM MEMORY DEVICE screen will appear on the right frame.
2) Hit the 'F4' key to enter Select mode/options.
3) Set the Begin Device Address to 200000.  This is the starting address of Quadrant 2.
4) Select Device Configure
5) Hold down 'Ctrl' key and hit the 'K' key on the keyboard to enter the sector mode.

** If the sectors are not correct you will need to enter in the correct settings.
   Sometimes the sector tables does not reset correctly if you switch operations
   between Quadrant 1 & 2. This is a bug and it will be fixed.

   Check and make sure the sectors are set accordingly below. If it is not the
   same as below you will need to enter in the right sectors. Use the arrow key to
   scroll up or down.

    a) Sectors to be Erased: 71-134 for Bottom Bootblock     (for Top Bootblock it is sector 64-134)
    b) Sectors to be Programmed: 71-134 for Bottom Bootblock (for Top Bootblock it is sector 64-134)
    c) Sectors to be Protected: -

   The 'F1' key is back to the Main menu.

Program/Protect the Protection Registers. It is the same process as in Quadrant 2 except
only the protection register sector needs to be enable. To program the register enable
Sectors to be programmed. To protect the register enable the Sectors to be protected.
    a) Sectors to be Erased: -
    b) Sectors to be Programmed: 135
    c) Sectors to be Protected: 135

--------------------------------------------------------------------------------

*-Micron-*
28F640J3

Look at application notes for Micron 28F642D18 device.  Only difference is the
sector table and no boot blocks. Follow the same procedures but use the sector
table below.

  Quadrant 1   =  Device addresses 0 -> 1FFFFF hex
               =  Sectors 0-31

  Quadrant 2   =  Device addresses 200000 -> 3FFFFF hex
               =  Sectors 32-63

  Protection   =  Device addresses 400000 -> 400003 hex
  Registers    =  Sector 64 in Quadrant 2

--------------------------------------------------------------------------------


************************************************************************
*****************FILE DOWNLOAD AND RAM EDIT DOCUMENTATION***************
************************************************************************

Downloading a data file. An example of downloading a 4M (0 - 3FFFFF hex) file. You will
need to download the files in two halves.  The first half is for Quadrant 1. The second
half is for Quadrant 2.

** NOTE:
   Quadrant 1 = Device addresses 0 -> 1FFFFF hex
   Quadrant 1 settings:

I/O Translation Format     99
I/O addr offset            0
Memory begin address       0
User data size             400000   (800000 if x8)

Steps:
1) Download the first half (0-200000) of the data file into Quadrant 1.
2) Program the device.

** NOTE:
   Quadrant 2 = Device addresses 200000 -> 3FFFFF hex
   Quadrant 2 settings:

I/O Translation Format     99
I/O addr offset            400000   (800000 if x8)
Memory begin address       0
User data size             400000   (800000 if x8)

Steps:
1) Download the second half (200000-400000) of the data file into Quadrant 2.
2) Program the device.

--------------------------------------------------------------------------------
Editing device data in the memory editor of Quadrant 1:
Go to any specific address that needs to be edited. For example if editing is needed
at address 1F8000, go to that address and change the data as needed.

Editing device data in the memory editor of Quadrant 2:
For example, if editing data is needed at the device address starting at location
2F8000 hex. To find where location 2F8000 hex corresponds to location in the Quadrant 2
subtract the beginning device address range from the location you want to edit.

In this case the location of device address location 2F8000 hex in the
Quadrant 2 and the address is F8000 hex.  (F8000 hex = 2F8000 hex - 200000 hex).
************************************************************************
28F128J3CX
-----------

This application note is applicable only to INT 28F128J3CX-TSOP and
MTI 28F128J3X-TSOP device menu selection. It details how to setup programming
a portion of the device.

Due to Ram limitations on the Unisystem programmers, this device has to be
split into parts before doing any operation on the device. The device size
for the device under consideration is 0x80000. This splitting of memory
is explained in the examples given below.

Example1-a:  Operation - Load  First 6 MBytes of memory.
             ------------------------------------------
Say you need to do operation on the first 6 MBytes of memory. So the device
being a 16 bit device, address range becomes 0x300000.
If any operation is tried out before selecting the proper range, following
error is displayed by the programmer.

	"OPERATION FAILED:  End of user RAM exceeded. Press F3"

In order to setup the address range for programming portions of the device,
jump to "Device Configure" screen and enter the values of addresses. Where the
"Device begin address" is not equal to zero, address setting should be
done in "Ctrl+k" mode On entering the 'Device Configure' menu, you need to
enter:

	Begin Device:  0
	Device Block Size:  300000

The programmer will now display the sector configuration.The address range
required is now selected:

	SECTOR CONFIGURATION
	Sectors to be Erased: 0-47
	Sectors to be Programmed: 0-47
	Sectors to be Protected: -

To leave the "Device Configure" screen hit "F1" to return. Upon returning
set go to the Device Operation screen(Load device/Verify device)

b:  Operation - Program  first 6 MBytes of memory
    ----------------------------------------------
Assuming that you select device and follow the steps as per Example1 to set
the address range. Now, when you enter the programming mode, you need to set
one more parameter -

	"Total set size"                3 (dummy value)

Here, set the 'Total set size' value to 1.

	"Total set size"                1 (required value)

To leave the "Device Configure" screen hit "F1" to return. Upon returning
set go to the Device Operation screen Program device.
The programmer is now ready for the program operation.

Example2:  Operation - Load  last 6 MBytes of memory.
           ------------------------------------------
Say you need to do operation on the last 6 MBytes of memory. So the device
address range becomes 0x300000 because this is a 16 bit device. And the
device begin address is 0x500000. This parameter entry is displayed as
follows:

	Begin Device:  500000
	Device Block Size:  300000

The programmer will now display the sector configuration. The address range
required is now selected:

	SECTOR CONFIGURATION
	Sectors to be Erased: 80-127
	Sectors to be Programmed: 80-127
	Sectors to be Protected: -

Consider two cases here:

a) device with size greater than the available ram in the programmer. Like
if we try to give the device block size 0x600000 at the begin address 0x0000.

b) Device Block Size selected is more than the ram required. Like in this
example, we enter block size as 0x400000.

In both the above cases, the programmer will set the address range
automatically to required value, in
case a: 0x420000 and
case b: 0x300000 displaying the following message.

	"Device Block Limits needed to be adjusted."

Here the value is adjusted to the device size in order to utilize the correct
amount of programmer RAM. The programmer also adjusts the memory begin address
or the block size in case the program block is not on the sector boundary

b:  Operation - Program  last 6 MBytes of memory
    ----------------------------------------------
Assuming that you select device and follow the steps as per Example1 to set
the address range. Now, when you enter the programming mode, you need to set
one more parameter -

	"Total set size"                3 (dummy value)

Here, set the 'Total set size' value to 1.

	"Total set size"                1 (required value)

To leave the "Device Configure" screen hit "F1" to return. Upon returning
set go to the Device Operation screen Program device.
The programmer is now ready for the program operation of the last 6 MBytes of
memory.

************************************************************************
************************************************************************