
****************************************************************************
****************************************************************************
**                                                                        **
**        Application notes for Atmel AVR Microcontrollers                **
**                       (Informal Document)                              **
**                                                                        **
**  To find the application notes specfic for your device search for the  **
**  'core' part name.  As an example using the ATmega8L 32 pin TQFP you   **
**  would search on 'mega8'                                               **
**                                                                        **
****************************************************************************
****************************************************************************


******************************************************************************
******************************************************************************
***------------------------------------------------------------------------***

 ATmega8
 ------------
 ATmega8L
 ------------

 ***----------------------- Programmer Setup Flags -------------------------***
 NOTE: LB1 & LB2 are handled by Security Fuse 1 & 2 flags!
 Program Security fuse 1: Lock Bit 1
 Program Security fuse 2: Lock Bit 2

 NOTE: Boot Lock Bit's in the Lock Bit Byte are programmed ONLY
       if Security Fuse 3 flag = Y.   Please see "Lock Bit Byte"
       information below for configuring device for "Boot Lock
       Byte" programming.

 Regarding Fuse High Byte and Fuse Low Byte:
 NOTE: Atmel DataSheet states Default Value from Factory is:
 Fuse High Byte=$D9; Fuse Low Byte=$E1

 NOTE: The "Fuse High Byte" and "Fuse Low Byte" are NOT erased.
       These two bytes are ONLY modified during a programming
       operation IF the "Program configuration" flag is enabled.

 UniFam programmers refer to the Fuse High Byte and Fuse Low Byte
 data as "Configuration Bytes".  To program this data using the
 Hiterm interface you must enable (set to Yes) the "Program
 Configuration" flag in Hiterm.
 If you are using TaskLink interface you must enable the "Special
 Data #1" flag.  To set this flag in TaskLink you must navigate
 to the following Dialog box:
 Setup -> Programmer Properties... -> "Special" Dialog tab

 PROGRAMMING OF THE OSCILLATOR CALIBRATION BYTE INTO THE MEMORY MAP
 OF THE EITHER THE MAIN FLASH MEMORY ARRAY OR THE EEPROM ARRAY:
 To enable this feature during a programming operation when using
 the Hiterm interface you must enable (set to Yes) the "Program
 Configuration" flag.
 To enable this feature during a programming operation when using
 the TaskLink interface you must enable the "Special Data #1" flag.
 To set this "Special Data #1" flag in TaskLink you must navigate to
 the following Dialog box:
 Setup -> Programmer Properties... -> "Special" Dialog tab

 WARNING: The "Program Configuration" flag enables programming of
          of the Configuration Bytes (Fuse High Byte and Fuse Low
          Byte) and the programming of the Oscillator Calibration
          Byte.

 WARNING: Programming of the Oscillator Calibration Byte will NOT
          be enabled if the Oscillator Calibration Byte Programming
          Address is equal to the following hex data: 'FFFFFFFF'
          See "Internal RC Oscillator Calibration Byte" programming
          Address below for details.

 ***---------------------- Format of Fuse High Byte ------------------------***
 NOTE: For Bits defined below Atmel DataSheet states Default Factory Value are:
 Fuse High Byte=$D9; Fuse Low Byte=$E1
 *------------------------------------------*
 Fuse High Byte User RAM Address = 2200 hex
 *------------------------------------------*
 Fuse High Byte, Bit 7:
 RSTDISBL; Select if PC6 is I/O pin or RESET pin Fuse: PC6 is RESET pin  = 1
                                                     : PC6 NOT RESET pin = 0

 Fuse High Byte, Bit 6:
 WDTON; Watchdog Timer: On  = 1
                      : Off = 0

 Fuse High Byte, Bit 5:
 SPIEN; SPI Program/Data Downloading: Enable  = 0
                                    : Disable = 1

 Fuse High Byte, Bit 4:
 CKOPT; Oscillator Options: 1
                          : 0

 Fuse High Byte, Bit 3:
 EESAVE; Erase EEPROM during Chip Erase: Yes = 1
                                       : No  = 0

 Fuse High Byte, Bit 2,1:
 BOOTS Z1,Z0; Boot Size Configuration: 1024 Words: Z1,Z0 = 00
                                     :  512 Words: Z1,Z0 = 01
                                     :  256 Words: Z1,Z0 = 10
                                     :  128 Words: Z1,Z0 = 11

 Fuse High Byte, Bit 0:
 BOOTRST; Reset Vector: Application Reset($0000) = 1
                      : Boot Loader Reset        = 0

 ***---------------------- Format of Fuse Low Byte -------------------------***
 NOTE: For Bits defined below Atmel DataSheet states Default Factory Value are:
 Fuse High Byte=$D9; Fuse Low Byte=$E1
 *------------------------------------------*
 Fuse Low Byte User RAM Address = 2201 hex
 *------------------------------------------*
 Fuse Low Byte, Bit 7    : BODLEVEL; Brown-out Detector trigger level: 1
                                                                     : 0

 Fuse Low Byte, Bit 6    : BODEN; Brown-out Detector: Disabled = 1
                                                    : Enable   = 0

 Fuse Low Byte, Bit 5,4  : SUT1,SUT0
 Select start-up time Configuration: SUT1,SUT0 = 0,0
                                   : SUT1,SUT0 = 0,1
                                   : SUT1,SUT0 = 1,0; default
                                   : SUT1,SUT0 = 1,1

 Fuse Low Byte, Bit 3->0 :
 Device Clocking Option:
 CKSEL3..0:
      1111; External Crystal/Ceramic Resonator
      1110; External Crystal/Ceramic Resonator
      1101; External Crystal/Ceramic Resonator
      1100; External Crystal/Ceramic Resonator
      1011; External Crystal/Ceramic Resonator
      1010; External Crystal/Ceramic Resonator
      1001; External Low-frequency Crystal
      1000; External RC Oscillator
      0111; External RC Oscillator
      0110; External RC Oscillator
      0101; External RC Oscillator
      0100; 8MHz Calibrated Internal RC Oscillator
      0011; 4MHz Calibrated Internal RC Oscillator
      0010; 2MHz Calibrated Internal RC Oscillator
      0001; 1MHz Calibrated Internal RC Oscillator; default
      0000; External Clock

 The device is shipped with:
 SUT = 10
 CKSEL = 0001
 The default clock source setting is therefore the Internal RC Oscillator with
 longest start-up time.  This default setting ensures that all users can make
 their desired clock source setting using an In-System or Parallel Programming.

 ***------------------- Format of Lock Bit Byte BLB1 Mode ------------------***
 *--------------------------------------------------*
 Lock Bit Byte User RAM Address = 2202 hex; Bits 1,0
 *--------------------------------------------------*
 Lock Bit Byte:  Bit 5,4    BLB 11 & 12
 BLB1 Mode: 1 (BLB12,BLB11 = 1,1)
          : 2 (BLB12,BLB11 = 1,0)
          : 3 (BLB12,BLB11 = 0,0)
          : 4 (BLB12,BLB11 = 0,1)

 ***------------------- Format of Lock Bit Byte BLB0 Mode ------------------***
 *---------------------------------------------------------*
 Lock Bit Byte BLB0 User RAM Address = 2203 hex; Bits 1,0
 *---------------------------------------------------------*
 Lock Bit Byte:  Bit 3,2    BLB 01 & 02
 BLB0 Mode: 1 (BLB02,BLB01 = 1,1)
          : 2 (BLB02,BLB01 = 1,0)
          : 3 (BLB02,BLB01 = 0,0)
          : 4 (BLB02,BLB01 = 0,1)

 ***----- Format of RC Oscillator Calibration Byte Programming Address -----***
 *---------------------------------------*
 User RAM Address = 2204 hex -> 2207 hex
 *---------------------------------------*
 The location in the Programmer's "User RAM" where the Target Address
 of the Internal RC Oscillator Calibration value is to be stored is:
 2204 hex -> 2207 hex

 EXAMPLE:  If the User places the address value "00 00 02 A5" in the
           User RAM locations "2204 hex -> 2207 hex " then the Internal
           RC Oscillator Calibration value will be programmed into the
           device's memory address: 000002A5 hex

 NOTE: The "Program Configuration" flag MUST be enabled if you are
       going to program the Oscillator Calibration Byte value into the
       memory map of the device.  If the "Program Configuration" flag
       is NOT enabled (set to Yes) then the Oscillator Calibration Byte
       Programming operation is NOT performed.

  *************************************************************************
  ***     NOTE: No Calibration value will be stored in User RAM if      ***
  ***           User RAM address 2204 hex -> 2207 hex  = FFFFFFFF hex   ***
  *************************************************************************
  *       Below is a re-clarification of the above NOTE!                  *
  *-----------------------------------------------------------------------*
  ** To Disable Oscillator Calibration Byte Programming in either the    **
  ** data file or in Programmer's User RAM you need to do the following: **
  ** *-----------------------------------------------------------------* **
  **                                                                     **
  ** If the address in the programmers' User RAM used to store the       **
  ** "Internal RC Oscillator Calibration Byte" programming Address has   **
  ** the following hex data: 'FFFFFFFF' then the programmer will SKIP    **
  ** writing the Calibration value into the memory map of the device,    **
  ** regardless of the setting of the "Program Configuration" flag.      **
  **                                                                     **
  ** So for a mega8:                                                     **
  ** User RAM Address 2204 hex -> 2207 hex = 'FFFFFFFF' Equals NO        **
  ** Oscillator Calibration Byte programming performed!                  **
  **                                                                     **
  *-----------------------------------------------------------------------*

******************************************************************************
******************************************************************************
***------------------------------------------------------------------------***

 ATmega64
 ------------
 ATmega64L
 ------------

 ***----------------------- Programmer Setup Flags -------------------------***
 NOTE: LB1 & LB2 are handled by Security Fuse 1 & 2 flags!
 Program Security fuse 1: Lock Bit 1
 Program Security fuse 2: Lock Bit 2

 NOTE: Boot Lock Bit's in the Lock Bit Byte are programmed ONLY
       if Security Fuse 3 flag = Y.   Please see "Lock Bit Byte"
       information below for configuring device for "Boot Lock
       Byte" programming.

 Regarding Fuse High Byte and Fuse Low Byte:
 NOTE: Atmel DataSheet states Default Value from Factory is:
       Extended Fuse Byte=$FD;
       Fuse High Byte=$99;
       Fuse Low Byte=$E1

 NOTE: Programmer will read in the default Default Value from
       Factory as follows:
       Extended Fuse Byte=$03;
       Fuse High Byte=$99;
       Fuse Low Byte=$E1

 NOTE: The "Extended Fuse Byte", "Fuse High Byte" and "Fuse Low Byte"
       are NOT erased. These three bytes are ONLY modified during a
       programming operation IF the "Program configuration" flag is
       enabled.

 UniFam programmers refer to the "Extended Fuse Byte", "Fuse High Byte"
 and "Fuse Low Byte" data as "Configuration Bytes".  To program this
 data using the Hiterm interface you must enable (set to Yes) the
 "Program Configuration" flag in Hiterm.
 If you are using TaskLink interface you must enable the "Special
 Data #1" flag.  To set this flag in TaskLink you must navigate
 to the following Dialog box:
 Setup -> Programmer Properties... -> "Special" Dialog tab

 PROGRAMMING OF THE OSCILLATOR CALIBRATION BYTE INTO THE MEMORY MAP
 OF THE EITHER THE MAIN FLASH MEMORY ARRAY OR THE EEPROM ARRAY:
 To enable this feature during a programming operation when using
 the Hiterm interface you must enable (set to Yes) the "Program
 Configuration" flag.
 To enable this feature during a programming operation when using
 the TaskLink interface you must enable the "Special Data #1" flag.
 To set this "Special Data #1" flag in TaskLink you must navigate to
 the following Dialog box:
 Setup -> Programmer Properties... -> "Special" Dialog tab

 WARNING: The "Program Configuration" flag enables programming of
          of the Configuration Bytes (Extended Fuse Byte, Fuse High
          Byte and Fuse Low Byte) and the programming of the
          Oscillator Calibration Byte.

 WARNING: Programming of the Oscillator Calibration Byte will NOT
          be enabled if the Oscillator Calibration Byte Programming
          Address is equal to the following hex data: 'FFFFFFFF'
          See "Internal RC Oscillator Calibration Byte" programming
          Address below for details.

 ***---------------------- Format of Fuse High Byte ------------------------***
 NOTE: For Bits defined below Atmel DataSheet states Default Factory Value are:
 Extended Fuse Byte=$FD; Fuse High Byte=$99; Fuse Low Byte=$E1
 *----------------------------*
 User RAM Address = 10800 hex
 *----------------------------*
Fuse High Byte, Bit 7   :OCDEN; Enable OCD: disabled = 1
                                          : Enabled = 0

Fuse High Byte, Bit 6   : JTAGEN; JTAG support: Enabled  = 0
                                              : Disabled = 1

Fuse High Byte, Bit 5   : SPIEN; SPI Program/Data Downloading: Enable  = 0
                                                             : Disable = 1

Fuse High Byte, Bit 4   : CKOPT; Oscillator Options: 1
                                                   : 0

Fuse High Byte, Bit 3   : EESAVE; Erase EEPROM during Chip Erase: Yes = 1
                                                                : No  = 0

Fuse High Byte, Bit 2,1:
 BOOTS Z1,Z0; Boot Size Configuration: 1024 Words: Z1,Z0 = 00
                                     :  512 Words: Z1,Z0 = 01
                                     :  256 Words: Z1,Z0 = 10
                                     :  128 Words: Z1,Z0 = 11

Fuse High Byte, Bit 0   : BOOTRST; Reset Vector: Application Reset($0000) = 1
                                               : Boot Loader Reset        = 0

 ***---------------------- Format of Fuse Low Byte -------------------------***
 NOTE: For Bits defined below Atmel DataSheet states Default Factory Value are:
 Extended Fuse Byte=$FD; Fuse High Byte=$99; Fuse Low Byte=$E1
 *----------------------------*
 User RAM Address = 10801 hex
 *----------------------------*
Fuse Low Byte, Bit 7    : BODLEVEL; Brown-out Detector trigger level: 1
                                                                    : 0

Fuse Low Byte, Bit 6    : BODEN; Brown-out Detector: Disabled = 1
                                                   : Enable   = 0

Fuse Low Byte, Bit 5,4  : SUT1,SUT0
Select start-up time Configuration: SUT1,SUT0 = 0,0
                                  : SUT1,SUT0 = 0,1
                                  : SUT1,SUT0 = 1,0; default
                                  : SUT1,SUT0 = 1,1

Fuse Low Byte, Bit 3->0 :
Device Clocking Option:
CKSEL3..0:
     1111; External Crystal/Ceramic Resonator
     1110; External Crystal/Ceramic Resonator
     1101; External Crystal/Ceramic Resonator
     1100; External Crystal/Ceramic Resonator
     1011; External Crystal/Ceramic Resonator
     1010; External Crystal/Ceramic Resonator
     1001; External Low-frequency Crystal
     1000; External RC Oscillator
     0111; External RC Oscillator
     0110; External RC Oscillator
     0101; External RC Oscillator
     0100; 8MHz Calibrated Internal RC Oscillator
     0011; 4MHz Calibrated Internal RC Oscillator
     0010; 2MHz Calibrated Internal RC Oscillator
     0001; 1MHz Calibrated Internal RC Oscillator; default
     0000; External Clock

The device is shipped with:
SUT = 10
CKSEL = 0001
The default clock source setting is therefore the Internal RC Oscillator with
longest start-up time.  This default setting ensures that all users can make
their desired clock source setting using an In-System or Parallel Programming.


 ***---------------------- Format of Extended Fuse Byte --------------------***
 NOTE: For Bits defined below Atmel DataSheet states Default Factory Value are:
 Extended Fuse Byte=$FD; Fuse High Byte=$99; Fuse Low Byte=$E1
 *----------------------------*
 User RAM Address = 10802 hex
 *----------------------------*
Extended Fuse Byte, Bit 1:
M103C Compatibility Fuse: ATmega103 Compatibility Mode = 0
                        : ATmega64 Mode                = 1

Extended Fuse Byte, Bit 0   : WDTON; Watchdog Timer: On  = 1
                                                   : Off = 0

***------------------- Format of Lock Bit Byte BLB1 Mode ------------------***
*------------------------------------*
User RAM Address = 10803 hex; Bits 1,0
*------------------------------------*
Lock Bit Byte:  Bit 5,4    BLB 11 & 12
BLB1 Mode: 1 (BLB12,BLB11 = 1,1)
         : 2 (BLB12,BLB11 = 1,0)
         : 3 (BLB12,BLB11 = 0,0)
         : 4 (BLB12,BLB11 = 0,1)

***------------------- Format of Lock Bit Byte BLB0 Mode ------------------***
*------------------------------------*
User RAM Address = 10804 hex; Bits 1,0
*------------------------------------*
Lock Bit Byte:  Bit 3,2    BLB 01 & 02
BLB0 Mode: 1 (BLB02,BLB01 = 1,1)
         : 2 (BLB02,BLB01 = 1,0)
         : 3 (BLB02,BLB01 = 0,0)
         : 4 (BLB02,BLB01 = 0,1)

 ***----- Format of RC Oscillator Calibration Byte Programming Address -----***
 *-----------------------------------------*
 User RAM Address = 10805 hex -> 10808 hex
 *-----------------------------------------*
 The location in the Programmer's "User RAM" where the Target Address
 of the Internal RC Oscillator Calibration value is to be stored is:
 10805 hex -> 10808 hex

 EXAMPLE:  If the User places the address value "00 00 02 A5" in the
           User RAM locations "10805 hex -> 10808 hex" then the Internal
           RC Oscillator Calibration value will be programmed into the
           device's memory address: 000002A5 hex

 NOTE: The "Program Configuration" flag MUST be enabled if you are
       going to program the Oscillator Calibration Byte value into the
       memory map of the device.  If the "Program Configuration" flag
       is NOT enabled (set to Yes) then the Oscillator Calibration Byte
       Programming operation is NOT performed.

  *************************************************************************
  ***     NOTE: No Calibration value will be stored in User RAM if      ***
  ***           User RAM address 10805 hex -> 10808 hex = FFFFFFFF hex  ***
  *************************************************************************
  *       Below is a re-clarification of the above NOTE!                  *
  *-----------------------------------------------------------------------*
  ** To Disable Oscillator Calibration Byte Programming in either the    **
  ** data file or in Programmer's User RAM you need to do the following: **
  ** *-----------------------------------------------------------------* **
  **                                                                     **
  ** If the address in the programmers' User RAM used to store the       **
  ** "Internal RC Oscillator Calibration Byte" programming Address has   **
  ** the following hex data: 'FFFFFFFF' then the programmer will SKIP    **
  ** writing the Calibration value into the memory map of the device,    **
  ** regardless of the setting of the "Program Configuration" flag.      **
  **                                                                     **
  ** So for a mega64:                                                    **
  ** User RAM Address 10805 hex -> 10808 hex = 'FFFFFFFF' Equals NO      **
  ** Oscillator Calibration Byte programming performed!                  **
  **                                                                     **
  *-----------------------------------------------------------------------*

******************************************************************************
******************************************************************************
***------------------------------------------------------------------------***

 ATmega8515
 ------------
 ATmega8515L
 ------------
 ATmega8535
 ------------
 ATmega8535L
 ------------

 ***----------------------- Programmer Setup Flags -------------------------***
 NOTE: LB1 & LB2 are handled by Security Fuse 1 & 2 flags!
 Program Security fuse 1: Lock Bit 1
 Program Security fuse 2: Lock Bit 2

 NOTE: Boot Lock Bit's in the Lock Bit Byte are programmed ONLY
       if Security Fuse 3 flag = Y.   Please see "Lock Bit Byte"
       information below for configuring device for "Boot Lock
       Byte" programming.

 Regarding Fuse High Byte and Fuse Low Byte:
 NOTE: Atmel DataSheet states Default Value from Factory is:
 Fuse High Byte=$D9; Fuse Low Byte=$E1

 NOTE: The "Fuse High Byte" and "Fuse Low Byte" are NOT erased.
       These two bytes are ONLY modified during a programming
       operation IF the "Program configuration" flag is enabled.

 UniFam programmers refer to the Fuse High Byte and Fuse Low Byte
 data as "Configuration Bytes".  To program this data using the
 Hiterm interface you must enable (set to Yes) the "Program
 Configuration" flag in Hiterm.
 If you are using TaskLink interface you must enable the "Special
 Data #1" flag.  To set this flag in TaskLink you must navigate
 to the following Dialog box:
 Setup -> Programmer Properties... -> "Special" Dialog tab

 PROGRAMMING OF THE OSCILLATOR CALIBRATION BYTE INTO THE MEMORY MAP
 OF THE EITHER THE MAIN FLASH MEMORY ARRAY OR THE EEPROM ARRAY:
 To enable this feature during a programming operation when using
 the Hiterm interface you must enable (set to Yes) the "Program
 Configuration" flag.
 To enable this feature during a programming operation when using
 the TaskLink interface you must enable the "Special Data #1" flag.
 To set this "Special Data #1" flag in TaskLink you must navigate to
 the following Dialog box:
 Setup -> Programmer Properties... -> "Special" Dialog tab

 WARNING: The "Program Configuration" flag enables programming of
          of the Configuration Bytes (Fuse High Byte and Fuse Low
          Byte) and the programming of the Oscillator Calibration
          Byte.

 WARNING: Programming of the Oscillator Calibration Byte will NOT
          be enabled if the Oscillator Calibration Byte Programming
          Address is equal to the following hex data: 'FFFFFFFF'
          See "Internal RC Oscillator Calibration Byte" programming
          Address below for details.

 ***---------------------- Format of Fuse High Byte ------------------------***
 NOTE: For Bits defined below Atmel DataSheet states Default Factory Value are:
 Fuse High Byte=$D9; Fuse Low Byte=$E1
 *----------------------------*
 User RAM Address = 2200 hex
 *----------------------------*
 Fuse High Byte, Bit 7:
 (For: ATmega8515 & ATmega8515L)
 S8515C Compatibility Fuse: ATmega8515 Mode                   = 1
                          : AT90S4414/8515 Compatibility Mode = 0

 (For: ATmega8535 & ATmega8535L)
 S8535C Compatibility Fuse: ATmega8535 Mode                   = 1
                          : AT90S4414/8515 Compatibility Mode = 0

 Fuse High Byte, Bit 6   : WDTON; Watchdog Timer: On  = 1
                                                : Off = 0

 Fuse High Byte, Bit 5   : SPIEN; SPI Program/Data Downloading: Enable  = 0
                                                              : Disable = 1

 Fuse High Byte, Bit 4   : CKOPT; Oscillator Options: 1
                                                    : 0

 Fuse High Byte, Bit 3   : EESAVE; Erase EEPROM during Chip Erase: Yes = 1
                                                                 : No  = 0

 Fuse High Byte, Bit 2,1:
 BOOTS Z1,Z0; Boot Size Configuration: 1024 Words: Z1,Z0 = 00
                                     :  512 Words: Z1,Z0 = 01
                                     :  256 Words: Z1,Z0 = 10
                                     :  128 Words: Z1,Z0 = 11

 Fuse High Byte, Bit 0   : BOOTRST; Reset Vector: Application Reset($0000) = 1
                                                : Boot Loader Reset        = 0

 ***---------------------- Format of Fuse Low Byte -------------------------***
 NOTE: For Bits defined below Atmel DataSheet states Default Factory Value are:
 Fuse High Byte=$D9; Fuse Low Byte=$E1
 *----------------------------*
 User RAM Address = 2201 hex
 *----------------------------*
 Fuse Low Byte, Bit 7    : BODLEVEL; Brown-out Detector trigger level: 1
                                                                     : 0

 Fuse Low Byte, Bit 6    : BODEN; Brown-out Detector: Disabled = 1
                                                    : Enable   = 0

 Fuse Low Byte, Bit 5,4  : SUT1,SUT0
 Select start-up time Configuration: SUT1,SUT0 = 0,0
                                   : SUT1,SUT0 = 0,1
                                   : SUT1,SUT0 = 1,0; default
                                   : SUT1,SUT0 = 1,1

 Fuse Low Byte, Bit 3->0 :
 Device Clocking Option:
 CKSEL3..0:
      1111; External Crystal/Ceramic Resonator
      1110; External Crystal/Ceramic Resonator
      1101; External Crystal/Ceramic Resonator
      1100; External Crystal/Ceramic Resonator
      1011; External Crystal/Ceramic Resonator
      1010; External Crystal/Ceramic Resonator
      1001; External Low-frequency Crystal
      1000; External RC Oscillator
      0111; External RC Oscillator
      0110; External RC Oscillator
      0101; External RC Oscillator
      0100; 8MHz Calibrated Internal RC Oscillator
      0011; 4MHz Calibrated Internal RC Oscillator
      0010; 2MHz Calibrated Internal RC Oscillator
      0001; 1MHz Calibrated Internal RC Oscillator; default
      0000; External Clock

 The device is shipped with:
 SUT = 10
 CKSEL = 0001
 The default clock source setting is therefore the Internal RC Oscillator with
 longest start-up time.  This default setting ensures that all users can make
 their desired clock source setting using an In-System or Parallel Programming.

 ***------------------- Format of Lock Bit Byte BLB1 Mode ------------------***
*------------------------------------*
User RAM Address = 2202 hex; Bits 1,0
*------------------------------------*
Lock Bit Byte:  Bit 5,4    BLB 11 & 12
BLB1 Mode: 1 (BLB12,BLB11 = 1,1)
         : 2 (BLB12,BLB11 = 1,0)
         : 3 (BLB12,BLB11 = 0,0)
         : 4 (BLB12,BLB11 = 0,1)

 ***------------------- Format of Lock Bit Byte BLB0 Mode ------------------***
*------------------------------------*
User RAM Address = 2203 hex; Bits 1,0
*------------------------------------*
Lock Bit Byte:  Bit 3,2    BLB 01 & 02
BLB0 Mode: 1 (BLB02,BLB01 = 1,1)
         : 2 (BLB02,BLB01 = 1,0)
         : 3 (BLB02,BLB01 = 0,0)
         : 4 (BLB02,BLB01 = 0,1)


 ***----- Format of RC Oscillator Calibration Byte Programming Address -----***
 *---------------------------------------*
 User RAM Address = 2204 hex -> 2207 hex
 *---------------------------------------*
 The location in the Programmer's "User RAM" where the Target Address
 of the Internal RC Oscillator Calibration value is to be stored is:
 2204 hex -> 2207 hex

 EXAMPLE:  If the User places the address value "00 00 02 A5" in the
           User RAM locations "2204 hex -> 2207 hex" then the Internal
           RC Oscillator Calibration value will be programmed into the
           device's memory address: 000002A5 hex

 NOTE: The "Program Configuration" flag MUST be enabled if you are
       going to program the Oscillator Calibration Byte value into the
       memory map of the device.  If the "Program Configuration" flag
       is NOT enabled (set to Yes) then the Oscillator Calibration Byte
       Programming operation is NOT performed.

  *************************************************************************
  ***     NOTE: No Calibration value will be stored in User RAM if      ***
  ***           User RAM address 2204 hex -> 2207 hex = FFFFFFFF hex    ***
  *************************************************************************
  *       Below is a re-clarification of the above NOTE!                  *
  *-----------------------------------------------------------------------*
  ** To Disable Oscillator Calibration Byte Programming in either the    **
  ** data file or in Programmer's User RAM you need to do the following: **
  ** *-----------------------------------------------------------------* **
  **                                                                     **
  ** If the address in the programmers' User RAM used to store the       **
  ** "Internal RC Oscillator Calibration Byte" programming Address has   **
  ** the following hex data: 'FFFFFFFF' then the programmer will SKIP    **
  ** writing the Calibration value into the memory map of the device,    **
  ** regardless of the setting of the "Program Configuration" flag.      **
  **                                                                     **
  ** So for a mega8515 or mega8535:                                      **
  ** User RAM Address 2204 hex -> 2207 hex = 'FFFFFFFF' Equals NO        **
  ** Oscillator Calibration Byte programming performed!                  **
  **                                                                     **
  *-----------------------------------------------------------------------*

******************************************************************************
******************************************************************************
***------------------------------------------------------------------------***

 ATtiny26
 ------------
 ATtiny26L
 ------------

 ***----------------------- Programmer Setup Flags -------------------------***
 NOTE: LB1 & LB2 are handled by Security Fuse 1 & 2 flags!
 Program Security fuse 1: Lock Bit 1
 Program Security fuse 2: Lock Bit 2

 Regarding Fuse High Byte and Fuse Low Byte:
 NOTE: Atmel DataSheet states Default Value from Factory is:
 Fuse High Byte=$F7; Fuse Low Byte=$E1

 NOTE: The "Fuse High Byte" and "Fuse Low Byte" are NOT erased.
       These two bytes are ONLY modified during a programming
       operation IF the "Program configuration" flag is enabled.

 UniFam programmers refer to the Fuse High Byte and Fuse Low Byte
 data as "Configuration Bytes".  To program this data using the
 Hiterm interface you must enable (set to Yes) the "Program
 Configuration" flag in Hiterm.
 If you are using TaskLink interface you must enable the "Special
 Data #1" flag.  To set this flag in TaskLink you must navigate
 to the following Dialog box:
 Setup -> Programmer Properties... -> "Special" Dialog tab

 PROGRAMMING OF THE OSCILLATOR CALIBRATION BYTE INTO THE MEMORY MAP
 OF THE EITHER THE MAIN FLASH MEMORY ARRAY OR THE EEPROM ARRAY:
 To enable this feature during a programming operation when using
 the Hiterm interface you must enable (set to Yes) the "Program
 Configuration" flag.
 To enable this feature during a programming operation when using
 the TaskLink interface you must enable the "Special Data #1" flag.
 To set this "Special Data #1" flag in TaskLink you must navigate to
 the following Dialog box:
 Setup -> Programmer Properties... -> "Special" Dialog tab

 WARNING: The "Program Configuration" flag enables programming of
          of the Configuration Bytes (Fuse High Byte and Fuse Low
          Byte) and the programming of the Oscillator Calibration
          Byte.

 WARNING: Programming of the Oscillator Calibration Byte will NOT
          be enabled if the Oscillator Calibration Byte Programming
          Address is equal to the following hex data: 'FFFFFFFF'
          See "Internal RC Oscillator Calibration Byte" programming
          Address below for details.

 ***---------------------- Format of Fuse High Byte ------------------------***
 NOTE: For Bits defined below Atmel DataSheet states Default Factory Value are:
 Fuse High Byte=$F7; Fuse Low Byte=$E1
 *----------------------------*
 User RAM Address = 880 hex
 *----------------------------*
 Fuse High Byte, Bit 7->5: Set to '1'(unprogrammed)

 Fuse High Byte, Bit 4   : RSTDISBL;  PB7 is RESET pin = 1
                         :            PB7 is I/O pin   = 0

 Fuse High Byte, Bit 3   : SPIEN; SPI Program/Data Downloading: Enable  = 0
                                                              : Disable = 1

 Fuse High Byte, Bit 2   : EESAVE; Erase EEPROM during Chip Erase: Yes = 1
                                                                 : No  = 0

 Fuse High Byte, Bit 1   : BODLEVEL; Brown-out Detector trigger level: 1
                                                                     : 0

 Fuse High Byte, Bit 0   : BODEN; Brown-out Detector: Disabled = 1
                                                    : Enable   = 0

 ***---------------------- Format of Fuse Low Byte -------------------------***
 NOTE: For Bits defined below Atmel DataSheet states Default Factory Value are:
 Fuse High Byte=$F7; Fuse Low Byte=$E1
 *----------------------------*
 User RAM Address = 881 hex
 *----------------------------*
 Fuse Low Byte, Bit 7    : PLLCK; Use PLL for internal clock: 1
                                                            : 0

 Fuse Low Byte, Bit 6    : CKOPT; Oscillator Options: 1
                                                    : 0

 Fuse Low Byte, Bit 5,4  : SUT1,SUT0
 Select start-up time Configuration: SUT1,SUT0 = 0,0
                                   : SUT1,SUT0 = 0,1
                                   : SUT1,SUT0 = 1,0; default
                                   : SUT1,SUT0 = 1,1

 Fuse Low Byte, Bit 3->0 :
 Device Clocking Option:
  CKSEL3..0:
       1111; External Crystal/Ceramic Resonator
       1110; External Crystal/Ceramic Resonator
       1101; External Crystal/Ceramic Resonator
       1100; External Crystal/Ceramic Resonator
       1011; External Crystal/Ceramic Resonator
       1010; External Crystal/Ceramic Resonator
       1001; External Low-frequency Oscillator
       1000; External RC Oscillator
       0111; External RC Oscillator
       0110; External RC Oscillator
       0101; External RC Oscillator
       0100; 8MHz Calibrated Internal RC Oscillator
       0011; 4MHz Calibrated Internal RC Oscillator
       0010; 2MHz Calibrated Internal RC Oscillator
       0001; 1MHz Calibrated Internal RC Oscillator; default
       0000; External Clock

 The device is shipped with:
 SUT = 10
 CKSEL = 0001
 The default clock source setting is therefore the Internal RC Oscillator with
 longest start-up time.  This default setting ensures that all users can make
 their desired clock source setting using an In-System or Parallel Programming.

 ***----- Format of RC Oscillator Calibration Byte Programming Address -----***
 *---------------------------------------*
 User RAM Address = 882 hex -> 885 hex
 *---------------------------------------*
 The location in the Programmer's "User RAM" where the Target Address
 of the Internal RC Oscillator Calibration value is to be stored is:
 882 hex -> 885 hex

 EXAMPLE:  If the User places the address value "00 00 02 A5" in the
           User RAM locations "882 hex -> 885 hex" then the Internal
           RC Oscillator Calibration value will be programmed into the
           device's memory address: 000002A5 hex

 NOTE: The "Program Configuration" flag MUST be enabled if you are
       going to program the Oscillator Calibration Byte value into the
       memory map of the device.  If the "Program Configuration" flag
       is NOT enabled (set to Yes) then the Oscillator Calibration Byte
       Programming operation is NOT performed.

  *************************************************************************
  ***     NOTE: No Calibration value will be stored in User RAM if      ***
  ***           User RAM address 882 hex -> 885 hex = FFFFFFFF hex      ***
  *************************************************************************
  *       Below is a re-clarification of the above NOTE!                  *
  *-----------------------------------------------------------------------*
  ** To Disable Oscillator Calibration Byte Programming in either the    **
  ** data file or in Programmer's User RAM you need to do the following: **
  ** *-----------------------------------------------------------------* **
  **                                                                     **
  ** If the address in the programmers' User RAM used to store the       **
  ** "Internal RC Oscillator Calibration Byte" programming Address has   **
  ** the following hex data: 'FFFFFFFF' then the programmer will SKIP    **
  ** writing the Calibration value into the memory map of the device,    **
  ** regardless of the setting of the "Program Configuration" flag.      **
  **                                                                     **
  ** So for a tiny26:                                                    **
  ** User RAM Address 882 hex -> 885 hex = 'FFFFFFFF' Equals NO          **
  ** Oscillator Calibration Byte programming performed!                  **
  **                                                                     **
  *-----------------------------------------------------------------------*

******************************************************************************
******************************************************************************
***------------------------------------------------------------------------***

 ATtiny2313
 ------------
 ATtiny2313V
 ------------

 ***----------------------- Programmer Setup Flags -------------------------***
 NOTE: LB1 & LB2 are handled by Security Fuse 1 & 2 flags!
 Program Security fuse 1: Lock Bit 1
 Program Security fuse 2: Lock Bit 2

 Regarding Extended Fuse Byte, Fuse High Byte and Fuse Low Byte:
 NOTE: Atmel DataSheet states Default Value from Factory is:
       Extended Fuse Byte=$FF; Fuse High Byte=$DF; Fuse Low Byte=$64

 NOTE: Programmer will read in the default Default Value from
       Factory as follows:
       Extended Fuse Byte=$01; Fuse High Byte=$DF; Fuse Low Byte=$64

 NOTE: The "Extended Fuse Byte", "Fuse High Byte" and "Fuse Low Byte"
       are NOT erased. These three bytes are ONLY modified during a
       programming operation IF the "Program configuration" flag is
       enabled.

 UniFam programmers refer to the "Extended Fuse Byte", "Fuse High Byte"
 and "Fuse Low Byte" data as "Configuration Bytes".  To program this
 data using the Hiterm interface you must enable (set to Yes) the
 "Program Configuration" flag in Hiterm.
 If you are using TaskLink interface you must enable the "Special
 Data #1" flag.  To set this flag in TaskLink you must navigate
 to the following Dialog box:
 Setup -> Programmer Properties... -> "Special" Dialog tab

 PROGRAMMING OF THE OSCILLATOR CALIBRATION BYTE INTO THE MEMORY MAP
 OF THE EITHER THE MAIN FLASH MEMORY ARRAY OR THE EEPROM ARRAY:
 To enable this feature during a programming operation when using
 the Hiterm interface you must enable (set to Yes) the "Program
 Configuration" flag.
 To enable this feature during a programming operation when using
 the TaskLink interface you must enable the "Special Data #1" flag.
 To set this "Special Data #1" flag in TaskLink you must navigate to
 the following Dialog box:
 Setup -> Programmer Properties... -> "Special" Dialog tab

 WARNING: The "Program Configuration" flag enables programming of
          of the Configuration Bytes (Extended Fuse Byte, Fuse High
          Byte and Fuse Low Byte) and the programming of the
          Oscillator Calibration Byte.

 WARNING: Programming of the Oscillator Calibration Byte will NOT
          be enabled if the Oscillator Calibration Byte Programming
          Address is equal to the following hex data: 'FFFFFFFF'
          See "Internal RC Oscillator Calibration Byte" programming
          Address below for details.

 ***---------------------- Format of Fuse High Byte ------------------------***
 NOTE: Atmel DataSheet states Default Fuse Byte Value from Factory are:
 Extended Fuse Byte=$01; Fuse High Byte=$DF; Fuse Low Byte=$64
 *----------------------------------------*
 Fuse High Byte User RAM Address = 880 hex
 *----------------------------------------*
 Fuse High Byte, Bit 7:
 DWEN; debugWIRE Enable : disabled = 1; default
                        : Enabled  = 0

 Fuse High Byte, Bit 6:
 EESAVE; Erase EEPROM during Chip Erase: Yes = 1; default
                                       : No  = 0

 Fuse High Byte, Bit 5:
 SPIEN; SPI Program/Data Downloading: Enable  = 0; default
                                    : Disable = 1

 Fuse High Byte, Bit 4:
 WDTON; Watchdog Timer always on: 1; default
                                : 0

 Fuse High Byte, Bits 3->1 :
 Brown-out Detector trigger level:
  BODLEVEL2,BODLEVEL1,BODLEVEL0 = 1,1,1; Default is BOD Disabled
  BODLEVEL2,BODLEVEL1,BODLEVEL0 = 1,1,0; 1.8V Typ. Vbot
  BODLEVEL2,BODLEVEL1,BODLEVEL0 = 1,0,1; 2.7V Typ. Vbot
  BODLEVEL2,BODLEVEL1,BODLEVEL0 = 1,0,0; 4.3V Typ. Vbot
  BODLEVEL2,BODLEVEL1,BODLEVEL0 = 0,1,1; Reserved
  BODLEVEL2,BODLEVEL1,BODLEVEL0 = 0,1,0; Reserved
  BODLEVEL2,BODLEVEL1,BODLEVEL0 = 0,0,1; Reserved
  BODLEVEL2,BODLEVEL1,BODLEVEL0 = 0,0,0; Reserved

 Fuse High Byte, Bit 0:
 RSTDISBL; External Reset Disable: = 1; default
                                 : = 0

 ***---------------------- Format of Fuse Low Byte -------------------------***
 NOTE: Atmel DataSheet states Default Fuse Byte Value from Factory are:
 Extended Fuse Byte=$01; Fuse High Byte=$DF; Fuse Low Byte=$64
 *---------------------------------------*
 Fuse Low Byte User RAM Address = 881 hex
 *---------------------------------------*
 Fuse Low Byte, Bit 7    : CKDIV8; Divide clock by 8: 0; default
                                                    : 1

 Fuse Low Byte, Bit 6    : CKOUT; Clock Output: 1; default
                                              : 0

 Fuse Low Byte, Bit 5,4  : SUT1,SUT0
 Select start-up time Configuration: SUT1,SUT0 = 0,0
                                   : SUT1,SUT0 = 0,1
                                   : SUT1,SUT0 = 1,0; default
                                   : SUT1,SUT0 = 1,1

 Fuse Low Byte, Bit 3->0 :
 Device Clocking Option:
 CKSEL3..0:
     1111; External Crystal/Ceramic Resonator
     1110; External Crystal/Ceramic Resonator
     1101; External Crystal/Ceramic Resonator
     1100; External Crystal/Ceramic Resonator
     1011; External Crystal/Ceramic Resonator
     1010; External Crystal/Ceramic Resonator
     1001; External Crystal/Ceramic Resonator
     1000; External Crystal/Ceramic Resonator
     0111; Reserved
     0110; Watchdog Oscillator 128kHz
     0101; Reserved
     0100; Calibrated internal RC Oscillator 8MHz; default
     0011; Reserved
     0010; Calibrated Internal RC Oscillator 4MHz
     0001; Reserved
     0000; External Clock

 The device is shipped with:
 SUT = 10
 CKSEL = 0100
 The default clock source setting is therefore the Internal 8MHz RC Oscillator
 with longest start-up time.  This default setting ensures that all users can
 make their desired clock source setting using an In-System or Parallel
 Programming.

 ***---------------------- Format of Extended Fuse Byte --------------------***
 NOTE: Atmel DataSheet states Default Fuse Byte Value from Factory are:
 Extended Fuse Byte=$01; Fuse High Byte=$DF; Fuse Low Byte=$64
 *-------------------------------------------*
 Extended Fuse Byt User RAM Address = 882 hex
 *-------------------------------------------*
 SELFPRGEN
 Extended High Byte, Bit 0: SELFPRGEN; Self Programming Enable: 1; default
                                                              : 0

 ***----- Format of RC Oscillator Calibration Byte Programming Address -----***
 *---------------------------------------*
 User RAM Address = 883 hex -> 886 hex
 *---------------------------------------*
 The location in the Programmer's "User RAM" where the Target Address
 of the Internal RC Oscillator Calibration value is to be stored is:
 883 hex -> 886 hex

 EXAMPLE:  If the User places the address value "00 00 02 A5" in the
           User RAM locations "883 hex -> 886 hex" then the Internal
           RC Oscillator Calibration value will be programmed into the
           device's memory address: 000002A5 hex

 NOTE: The "Program Configuration" flag MUST be enabled if you are
       going to program the Oscillator Calibration Byte value into the
       memory map of the device.  If the "Program Configuration" flag
       is NOT enabled (set to Yes) then the Oscillator Calibration Byte
       Programming operation is NOT performed.

  *************************************************************************
  ***     NOTE: No Calibration value will be stored in User RAM if      ***
  ***           User RAM address 883 hex -> 886 hex = FFFFFFFF hex      ***
  *************************************************************************
  *       Below is a re-clarification of the above NOTE!                  *
  *-----------------------------------------------------------------------*
  ** To Disable Oscillator Calibration Byte Programming in either the    **
  ** data file or in Programmer's User RAM you need to do the following: **
  ** *-----------------------------------------------------------------* **
  **                                                                     **
  ** If the address in the programmers' User RAM used to store the       **
  ** "Internal RC Oscillator Calibration Byte" programming Address has   **
  ** the following hex data: 'FFFFFFFF' then the programmer will SKIP    **
  ** writing the Calibration value into the memory map of the device,    **
  ** regardless of the setting of the "Program Configuration" flag.      **
  **                                                                     **
  ** So for a tiny2313:                                                  **
  ** User RAM Address 883 hex -> 886 hex = 'FFFFFFFF' Equals NO          **
  ** Oscillator Calibration Byte programming performed!                  **
  **                                                                     **
  *-----------------------------------------------------------------------*
******************************************************************************
******************************************************************************
***------------------------------------------------------------------------***

 ATtiny11
 ------------
 ATtiny11L
 ------------

 Data in Programmer's User RAM is partitioned as follow:

   0000 hex - 03FF hex   Flash memory

   0400 hex              Fuse byte
   0401 hex - 0404 hex   Oscillator Calibration Byte Programming Address

 ***------------------- Programmer Setup Flags ----------------------------***
 NOTE: LB1 & LB2 are handled by Security Fuse 1 & 2 flags!
 Program Security fuse 1: Lock Bit 1
 Program Security fuse 2: Lock Bit 2

 Regarding Fuse Byte :
 NOTE:1) Atmel DataSheet states Default Value from Factory is:
       Fuse Byte=$FC
      2)The "Fuse Byte" are NOT erasable.
      3)This byte is ONLY modified during a programming
       operation, IF the "Program configuration" flag is enabled.

 UniFam programmers refer to the Fuse  Byte data
 as "Configuration Bytes".  To program this data using the
 Hiterm interface you must enable (set to Yes) the "Program
 Configuration" flag in Hiterm.
 If you are using TaskLink interface you must enable the "Special
 Data #1" flag.  To set this flag in TaskLink you must navigate
 to the following Dialog box:
 Setup -> Programmer Properties... -> "Special" Dialog tab


 PROGRAMMING OF THE OSCILLATOR CALIBRATION BYTE INTO THE MEMORY MAP
 OF EITHER THE MAIN FLASH MEMORY ARRAY OR THE EEPROM ARRAY:
 To enable this feature during a programming operation when using
 the Hiterm interface you must enable (set to Yes) the "Program
 Configuration" flag.
 To enable this feature during a programming operation when using
 the TaskLink interface you must enable the "Special Data #1" flag.
 To set this "Special Data #1" flag in TaskLink you must navigate to
 the following Dialog box:
 Setup -> Programmer Properties... -> "Special" Dialog tab

 WARNING: The "Program Configuration" flag enables programming of
          of the Configuration Bytes (Fuse Byte ) and the programming
         of the Oscillator Calibration Byte.

 WARNING: Programming of the Oscillator Calibration Byte will NOT
          be enabled if the Oscillator Calibration Byte Programming
          Address is equal to the following hex data: 'FFFFFFFF'
          See "Internal RC Oscillator Calibration Byte" programming
          Address below for details.

 ***---------------------- Format of Fuse Byte -----------------------------***
 NOTE: For Bits defined below Atmel DataSheet states Default Factory Value is :
 Fuse Byte=$FC
 *----------------------------*
 User RAM Address = 400 hex
 *----------------------------*

 Fuse Byte, Bit 4: FSTRT; Start up time : Programmed  = 1; default
                                        : UnProgrammed= 0

 Fuse Byte, Bit 3: RSTDISBL;  External Reset NOT Disabled: 1; default
                                       External Reset Disabled: 0

 Fuse Byte, Bit 2,1,0:

  CKSEL 2..0:

The fuse distribution in the byte at 0400 hex is as follow:

  bit 7    bit 6    bit5    bit4    bit 3    bit 2    bit1     bit0
 ---------------------------------------------------------------------
     x    x     x   FSTRT  RSTDSBL   CKSEL2   CLKSEL1  CLKSEL0

 Bits masked as 'x' are unused and should be left un programmed ('1').
 All fuses can be reprogrammed. These fuses stay unchanged by the bulk erase.

 "Default" is defined as what the manufacturer has stated as:
  "The device is shipped with this option selected."

 ***----- Format of RC Oscillator Calibration Byte Programming Address -----***
 *---------------------------------------*
 User RAM Address = 401 hex -> 404 hex
 *---------------------------------------*
 The location in the Programmer's "User RAM" where the Target Address
 of the Internal RC Oscillator Calibration value is to be stored is:
 401 hex -> 404 hex

 The following is an excerpt regarding the Calibration Byte from the Atmel data
 sheet:

 "The ATtiny11 has a one-byte calibration value for the internal RC Oscillator.
 This byte resides in the high byte of address $000 in the signature address
 space. To make use of this byte, it should be read from this location and
 written into the nor-mal Flash program memory."


 Data I/O's support of the "one byte calibration value" for the ATtiny11 is
 as follows:

 The "one byte calibration value" is read during programming operation, and
 then programmed into the normal Flash program memory if the "Program
 Configuration" flag has been enabled. During programming operation the
 algorithm looks to location 0401 hex to 0404 hex in the Programmer's User
 RAM to determine where the end-user wants to place the one byte calibration
 value. Note, this byte can only be located in the normal Flash program memory.
 The maximum value of this address is 03FF hex.


 EXAMPLE:  If the User places the address value "00 00 02 A5" in the
           User RAM locations "401 hex -> 404 hex " then the Internal
           RC Oscillator Calibration value will be programmed into the
           device's memory address: 000002A5 hex

 NOTE: The "Program Configuration" flag MUST be enabled if you are
       going to program the Oscillator Calibration Byte value into the
       memory map of the device.  If the "Program Configuration" flag
       is NOT enabled (set to Yes) then the Oscillator Calibration Byte
       Programming operation is NOT performed.

  *************************************************************************
  ***     NOTE: No Calibration value will be stored in User RAM if      ***
  ***           User RAM address 401 hex -> 404 hex  = FFFFFFFF hex     ***
  *************************************************************************
  *       Below is a re-clarification of the above NOTE!                  *
  *-----------------------------------------------------------------------*
  ** To Disable Oscillator Calibration Byte Programming in either the    **
  ** data file or in Programmer's User RAM you need to do the following: **
  ** *-----------------------------------------------------------------* **
  **                                                                     **
  ** If the address in the programmers' User RAM used to store the       **
  ** "Internal RC Oscillator Calibration Byte" programming Address has   **
  ** the following hex data: 'FFFFFFFF' then the programmer will SKIP    **
  ** writing the Calibration value into the memory map of the device,    **
  ** regardless of the setting of the "Program Configuration" flag.      **
  **                                                                     **
  *-----------------------------------------------------------------------*

NOTE: Always enable at least one pass verify when programming.

NOTE: When using small data files, consider to fill the Programmer's
      User RAM with FF hex (the blank state of the device) prior
      the data file downloading. That will cause that the locations
      not covered in the data file will be programmed to FF hex (left
      blank). In most cases it does not matter.

******************************************************************************
******************************************************************************
***------------------------------------------------------------------------***

 ATtiny12
 ------------
 ATtiny12L
 ------------
 ATtiny12V
 ------------

 Data in Programmer's User RAM is partitioned as follow:

   0000 hex - 03FF hex   Flash memory
   0400 hex - 043F hex   EEPROM array

   0440 hex              Fuse byte
   0441 hex - 0444 hex   Oscillator Calibration Byte Programming Address

 ***------------------- Programmer Setup Flags ----------------------------***
 NOTE: LB1 & LB2 are handled by Security Fuse 1 & 2 flags!
 Program Security fuse 1: Lock Bit 1
 Program Security fuse 2: Lock Bit 2

 Regarding Fuse Byte :
 NOTE:1) Atmel DataSheet states Default Value from Factory is:
       Fuse Byte=$52
      2)The "Fuse Byte" are NOT erasable.
      3)This byte is ONLY modified during a programming
       operation, IF the "Program configuration" flag is enabled.

 UniFam programmers refer to the Fuse  Byte data
 as "Configuration Bytes".  To program this data using the
 Hiterm interface you must enable (set to Yes) the "Program
 Configuration" flag in Hiterm.
 If you are using TaskLink interface you must enable the "Special
 Data #1" flag.  To set this flag in TaskLink you must navigate
 to the following Dialog box:
 Setup -> Programmer Properties... -> "Special" Dialog tab


 PROGRAMMING OF THE OSCILLATOR CALIBRATION BYTE INTO THE MEMORY MAP
 OF EITHER THE MAIN FLASH MEMORY ARRAY OR THE EEPROM ARRAY:
 To enable this feature during a programming operation when using
 the Hiterm interface you must enable (set to Yes) the "Program
 Configuration" flag.
 To enable this feature during a programming operation when using
 the TaskLink interface you must enable the "Special Data #1" flag.
 To set this "Special Data #1" flag in TaskLink you must navigate to
 the following Dialog box:
 Setup -> Programmer Properties... -> "Special" Dialog tab

 WARNING: The "Program Configuration" flag enables programming of
          of the Configuration Bytes (Fuse Byte ) and the programming
         of the Oscillator Calibration Byte.

 WARNING: Programming of the Oscillator Calibration Byte will NOT
          be enabled if the Oscillator Calibration Byte Programming
          Address is equal to the following hex data: 'FFFFFFFF'
          See "Internal RC Oscillator Calibration Byte" programming
          Address below for details.

 ***---------------------- Format of Fuse Byte -----------------------------***
 NOTE: For Bits defined below Atmel DataSheet states Default Factory Value is :
 Fuse Byte=$5C
 *----------------------------*
 User RAM Address = 440 hex
 *----------------------------*
 Fuse Byte, Bit 7: BODLEVEL; Brown-out Detector trigger level: 0; default
                                                                : 1

 Fuse Byte, Bit 6: BODEN; Brown out detector enabled: Disabled: 1; default
                                                          Enabled : 0

 Fuse Byte, Bit 5: SPIEN; SPI Program/Data Downloading: Enable  = 0; default
                                                      : Disable = 1

 Fuse Byte, Bit 4: RSTDISBL;  External Reset NOT Disabled: 1; default
                                       External Reset Disabled: 0

 Fuse Byte, Bit 3,2,1,0:

  CKSEL 3..0:

The fuse distribution in the byte at 0440 hex is as follow:

  bit 7    bit 6    bit5    bit4    bit 3    bit 2    bit1     bit0
 ---------------------------------------------------------------------
 BODLEVEL  BODEN   SPIEN  RSTDSBL  CKSEL3   CKSEL2   CLKSEL1  CLKSEL0


 "Default" is defined as what the manufacturer has stated as:
  "The device is shipped with this option selected."

 ***----- Format of RC Oscillator Calibration Byte Programming Address -----***
 *---------------------------------------*
 User RAM Address = 441 hex -> 444 hex
 *---------------------------------------*
 The location in the Programmer's "User RAM" where the Target Address
 of the Internal RC Oscillator Calibration value is to be stored is:
 441 hex -> 444 hex

 The following is an excerpt regarding the Calibration Byte from the Atmel data
 sheet:

 "The ATtiny12 has a one-byte calibration value for the internal RC Oscillator.
 This byte resides in the high byte of address $000 in the signature address
 space. To make use of this byte, it should be read from this location and
 written into the nor-mal Flash program memory."


 Data I/O's support of the "one byte calibration value" for the ATtiny12 is
 as follows:

 The "one byte calibration value" is read during programming operation, and
 then programmed into the normal Flash program memory if the "Program
 Configuration" flag has been enabled. During programming operation the
 algorithm looks to location 0441 hex to 0444 hex in the Programmer's User
 RAM to determine where the end-user wants to place the one byte calibration
 value. Note, this byte can only be located in the normal Flash program memory.
 The maximum value of this address is 03FF hex.


 EXAMPLE:  If the User places the address value "00 00 02 A5" in the
           User RAM locations "441 hex -> 444 hex " then the Internal
           RC Oscillator Calibration value will be programmed into the
           device's memory address: 000002A5 hex

 NOTE: The "Program Configuration" flag MUST be enabled if you are
       going to program the Oscillator Calibration Byte value into the
       memory map of the device.  If the "Program Configuration" flag
       is NOT enabled (set to Yes) then the Oscillator Calibration Byte
       Programming operation is NOT performed.

  *************************************************************************
  ***     NOTE: No Calibration value will be stored in User RAM if      ***
  ***           User RAM address 441 hex -> 444 hex  = FFFFFFFF hex     ***
  *************************************************************************
  *       Below is a re-clarification of the above NOTE!                  *
  *-----------------------------------------------------------------------*
  ** To Disable Oscillator Calibration Byte Programming in either the    **
  ** data file or in Programmer's User RAM you need to do the following: **
  ** *-----------------------------------------------------------------* **
  **                                                                     **
  ** If the address in the programmers' User RAM used to store the       **
  ** "Internal RC Oscillator Calibration Byte" programming Address has   **
  ** the following hex data: 'FFFFFFFF' then the programmer will SKIP    **
  ** writing the Calibration value into the memory map of the device,    **
  ** regardless of the setting of the "Program Configuration" flag.      **
  **                                                                     **
  *-----------------------------------------------------------------------*

NOTE: Always enable at least one pass verify when programming.

NOTE: When using small data files, consider to fill the Programmer's
      User RAM with FF hex (the blank state of the device) prior
      the data file downloading. That will cause that the locations
      not covered in the data file will be programmed to FF hex (left
      blank). In most cases it does not matter.


******************************************************************************
******************************************************************************
***------------------------------------------------------------------------***

 ATtiny15
 ------------
 ATtiny15L
 ------------

 Data in Programmer's User RAM is partitioned as follow:

   0000 hex - 03FF hex   Flash memory
   0400 hex - 043F hex   EEPROM array

   0440 hex              Fuse byte
   0441 hex - 0444 hex   Oscillator Calibration Byte Programming Address

 ***------------------- Programmer Setup Flags ----------------------------***
 NOTE: LB1 & LB2 are handled by Security Fuse 1 & 2 flags!
 Program Security fuse 1: Lock Bit 1
 Program Security fuse 2: Lock Bit 2

 Regarding Fuse Byte :
 NOTE:1) Atmel DataSheet states Default Value from Factory is:
       Fuse Low Byte=$5C
      2)The "Fuse Byte" are NOT erasable.
      3)This byte is ONLY modified during a programming
       operation, IF the "Program configuration" flag is enabled.

 UniFam programmers refer to the Fuse  Byte data
 as "Configuration Bytes".  To program this data using the
 Hiterm interface you must enable (set to Yes) the "Program
 Configuration" flag in Hiterm.
 If you are using TaskLink interface you must enable the "Special
 Data #1" flag.  To set this flag in TaskLink you must navigate
 to the following Dialog box:
 Setup -> Programmer Properties... -> "Special" Dialog tab


 PROGRAMMING OF THE OSCILLATOR CALIBRATION BYTE INTO THE MEMORY MAP
 OF EITHER THE MAIN FLASH MEMORY ARRAY OR THE EEPROM ARRAY:
 To enable this feature during a programming operation when using
 the Hiterm interface you must enable (set to Yes) the "Program
 Configuration" flag.
 To enable this feature during a programming operation when using
 the TaskLink interface you must enable the "Special Data #1" flag.
 To set this "Special Data #1" flag in TaskLink you must navigate to
 the following Dialog box:
 Setup -> Programmer Properties... -> "Special" Dialog tab

 WARNING: The "Program Configuration" flag enables programming of
          of the Configuration Bytes (Fuse Byte ) and the programming
         of the Oscillator Calibration Byte.

 WARNING: Programming of the Oscillator Calibration Byte will NOT
          be enabled if the Oscillator Calibration Byte Programming
          Address is equal to the following hex data: 'FFFFFFFF'
          See "Internal RC Oscillator Calibration Byte" programming
          Address below for details.

 ***---------------------- Format of Fuse Byte -----------------------------***
 NOTE: For Bits defined below Atmel DataSheet states Default Factory Value is :
 Fuse Byte=$5C
 *----------------------------*
 User RAM Address = 440 hex
 *----------------------------*
 Fuse Byte, Bit 7: BODLEVEL; Brown-out Detector trigger level: 0; default
                                                                : 1

 Fuse Byte, Bit 6: BODEN; Brown out detector enabled: Disabled: 1; default
                                                          Enabled : 0

 Fuse Byte, Bit 5: SPIEN; SPI Program/Data Downloading: Enable  = 0; default
                                                      : Disable = 1

 Fuse Byte, Bit 4: RSTDISBL;  External Reset NOT Disabled: 1; default
                                       External Reset Disabled: 0

 Fuse Byte, Bit 1,0:
 Device Clocking Option:
  CKSEL 1..0:
       10; 9.6MHz Calibrated Internal RC Oscillator; default
       01; 4.8MHz Calibrated Internal RC Oscillator
       00; External Clock

 bit 7    bit 6    bit5    bit4    bit 3    bit 2    bit1    bit0
 -------------------------------------------------------------------
 BODLEVEL  BODEN   SPIEN  RSTDSBL     x        x    CLKSEL1  CLKSEL0


 Bits masked as 'x' are unused and should be left un programmed ('1').
 All fuses can be reprogrammed. These fuses stay unchanged by the bulk erase.

 "Default" is defined as what the manufacturer has stated as:
  "The device is shipped with this option selected."

 ***----- Format of RC Oscillator Calibration Byte Programming Address -----***
 *---------------------------------------*
 User RAM Address = 441 hex -> 444 hex
 *---------------------------------------*
 The location in the Programmer's "User RAM" where the Target Address
 of the Internal RC Oscillator Calibration value is to be stored is:
 441 hex -> 444 hex

 The following is an excerpt regarding the Calibration Byte from the Atmel data
 sheet:

 "The ATtiny15L has a one-byte calibration value for the internal RC Oscillator.
 This byte resides in the high byte of address $000 in the signature address
 space. To make use of this byte, it should be read from this location and
 written into the nor-mal Flash program memory."


 Data I/O's support of the "one byte calibration value" for the ATtiny15 is
 as follows:

 The "one byte calibration value" is read during programming operation, and
 then programmed into the normal Flash program memory if the "Program
 Configuration" flag has been enabled. During programming operation the
 algorithm looks to location 0441 hex to 0444 hex in the Programmer's User
 RAM to determine where the end-user wants to place the one byte calibration
 value. Note, this byte can only be located in the normal Flash program memory.
 The maximum value of this address is 03FF hex.


 EXAMPLE:  If the User places the address value "00 00 02 A5" in the
           User RAM locations "441 hex -> 444 hex " then the Internal
           RC Oscillator Calibration value will be programmed into the
           device's memory address: 000002A5 hex

 NOTE: The "Program Configuration" flag MUST be enabled if you are
       going to program the Oscillator Calibration Byte value into the
       memory map of the device.  If the "Program Configuration" flag
       is NOT enabled (set to Yes) then the Oscillator Calibration Byte
       Programming operation is NOT performed.

  *************************************************************************
  ***     NOTE: No Calibration value will be stored in User RAM if      ***
  ***           User RAM address 441 hex -> 444 hex  = FFFFFFFF hex     ***
  *************************************************************************
  *       Below is a re-clarification of the above NOTE!                  *
  *-----------------------------------------------------------------------*
  ** To Disable Oscillator Calibration Byte Programming in either the    **
  ** data file or in Programmer's User RAM you need to do the following: **
  ** *-----------------------------------------------------------------* **
  **                                                                     **
  ** If the address in the programmers' User RAM used to store the       **
  ** "Internal RC Oscillator Calibration Byte" programming Address has   **
  ** the following hex data: 'FFFFFFFF' then the programmer will SKIP    **
  ** writing the Calibration value into the memory map of the device,    **
  ** regardless of the setting of the "Program Configuration" flag.      **
  **                                                                     **
  *-----------------------------------------------------------------------*

NOTE: Always enable at least one pass verify when programming.

NOTE: When using small data files, consider to fill the Programmer's
      User RAM with FF hex (the blank state of the device) prior
      the data file downloading. That will cause that the locations
      not covered in the data file will be programmed to FF hex (left
      blank). In most cases it does not matter.

******************************************************************************
******************************************************************************
***------------------------------------------------------------------------***


 ATtiny13
 ------------
 ATtiny13V
 ------------

 ***----------------------- Programmer Setup Flags -------------------------***
 NOTE: LB1 & LB2 are handled by Security Fuse 1 & 2 flags!
 Program Security fuse 1: Lock Bit 1
 Program Security fuse 2: Lock Bit 2

 Regarding Fuse High Byte and Fuse Low Byte:
 NOTE: Atmel DataSheet states Default Value from Factory is:
       Fuse High Byte=$FF; Fuse Low Byte=$6A

 NOTE: The "Fuse High Byte" and "Fuse Low Byte" are NOT erased.
       These two bytes are ONLY modified during a programming
       operation IF the "Program configuration" flag is enabled.

 UniFam programmers refer to the Fuse High Byte and Fuse Low Byte
 data as "Configuration Bytes".  To program this data using the
 Hiterm interface you must enable (set to Yes) the "Program
 Configuration" flag in Hiterm.
 If you are using TaskLink interface you must enable the "Special
 Data #1" flag.  To set this flag in TaskLink you must navigate
 to the following Dialog box:
 Setup -> Programmer Properties... -> "Special" Dialog tab

 PROGRAMMING OF THE OSCILLATOR CALIBRATION BYTE INTO THE MEMORY MAP
 OF THE EITHER THE MAIN FLASH MEMORY ARRAY OR THE EEPROM ARRAY:
 To enable this feature during a programming operation when using
 the Hiterm interface you must enable (set to Yes) the "Program
 Configuration" flag.
 To enable this feature during a programming operation when using
 the TaskLink interface you must enable the "Special Data #1" flag.
 To set this "Special Data #1" flag in TaskLink you must navigate to
 the following Dialog box:
 Setup -> Programmer Properties... -> "Special" Dialog tab

 WARNING: The "Program Configuration" flag enables programming of
          of the Configuration Bytes (Fuse High Byte and Fuse Low
          Byte) and the programming of the Oscillator Calibration
          Byte.

 WARNING: Programming of the Oscillator Calibration Byte will NOT
          be enabled if the Oscillator Calibration Byte Programming
          Address is equal to the following hex data: 'FFFFFFFF'
          See "Internal RC Oscillator Calibration Byte" programming
          Address below for details.

 ***---------------------- Format of Fuse High Byte ------------------------***
 NOTE: For Bits defined below Atmel DataSheet states Default Factory Value are:
 Fuse High Byte=$FF; Fuse Low Byte=$6A
 *----------------------------*
 User RAM Address = 440 hex
 *----------------------------*
 Fuse High Byte, Bit 7->5: Set to '1'(unprogrammed)

 Fuse High Byte, Bit 4: SELFPRGEN; Self Programming Enable: 1; default
                                                          : 0

 Fuse High Byte, Bit 3: DWEN; DebugWire Enable: 1; default
                                              : 0

 Fuse High Byte, Bit 2: BODLEVEL1; Brown-out Detector trigger level: 1; default
                                                                   : 0

 Fuse High Byte, Bit 1: BODLEVEL0; Brown-out Detector trigger level: 1; default
                                                                   : 0

 Fuse High Byte, Bit 0: RSTDISBL;  External Reset NOT Disabled: 1; default
                                       External Reset Disabled: 0

 ***---------------------- Format of Fuse Low Byte -------------------------***
 NOTE: For Bits defined below Atmel DataSheet states Default Factory Value are:
 Fuse High Byte=$FF; Fuse Low Byte=$6A
 *----------------------------*
 User RAM Address = 441 hex
 *----------------------------*
 Fuse Low Byte, Bit7: SPIEN; SPI Program/Data Downloading: Enable  = 0; default
                                                         : Disable = 1

 Fuse Low Byte, Bit 6: EESAVE; Erase EEPROM during Chip Erase: Yes = 1; default
                                                             : No  = 0

 Fuse Low Byte, Bit 5: WDTON; Watchdog Timer: On  = 1; default
                                            : Off = 0

 Fuse Low Byte, Bit 4: CKDIV8; Device clock by 8: 1
                                                : 0; default

 Fuse Low Byte, Bit 3,2: SUT1,SUT0
 Select start-up time Configuration: SUT1,SUT0 = 0,0
                                   : SUT1,SUT0 = 0,1
                                   : SUT1,SUT0 = 1,0; default
                                   : SUT1,SUT0 = 1,1

 Fuse Low Byte, Bit 1,0:
 Device Clocking Option:
  CKSEL 1..0:
       10; 9.6MHz Calibrated Internal RC Oscillator; default
       01; 4.8MHz Calibrated Internal RC Oscillator
       00; External Clock

 "Default" is defined as what the manufacturer has stated as:
  "The device is shipped with this option selected."

 The default clock source setting is therefore the Internal RC Oscillator with
 longest start-up time.  This default setting ensures that all users can make
 their desired clock source setting using an In-System Programming.
 SUT = 10
 CKSEL = 10

 ***----- Format of RC Oscillator Calibration Byte Programming Address -----***
 *---------------------------------------*
 User RAM Address = 442 hex -> 445 hex
 *---------------------------------------*
 The location in the Programmer's "User RAM" where the Target Address
 of the Internal RC Oscillator Calibration value is to be stored is:
 442 hex -> 445 hex

 EXAMPLE:  If the User places the address value "00 00 02 A5" in the
           User RAM locations "442 hex -> 445 hex " then the Internal
           RC Oscillator Calibration value will be programmed into the
           device's memory address: 000002A5 hex

 NOTE: The "Program Configuration" flag MUST be enabled if you are
       going to program the Oscillator Calibration Byte value into the
       memory map of the device.  If the "Program Configuration" flag
       is NOT enabled (set to Yes) then the Oscillator Calibration Byte
       Programming operation is NOT performed.

  *************************************************************************
  ***     NOTE: No Calibration value will be stored in User RAM if      ***
  ***           User RAM address 442 hex -> 445 hex  = FFFFFFFF hex     ***
  *************************************************************************
  *       Below is a re-clarification of the above NOTE!                  *
  *-----------------------------------------------------------------------*
  ** To Disable Oscillator Calibration Byte Programming in either the    **
  ** data file or in Programmer's User RAM you need to do the following: **
  ** *-----------------------------------------------------------------* **
  **                                                                     **
  ** If the address in the programmers' User RAM used to store the       **
  ** "Internal RC Oscillator Calibration Byte" programming Address has   **
  ** the following hex data: 'FFFFFFFF' then the programmer will SKIP    **
  ** writing the Calibration value into the memory map of the device,    **
  ** regardless of the setting of the "Program Configuration" flag.      **
  **                                                                     **
  ** So for a tiny13:                                                    **
  ** User RAM Address 442 hex -> 445 hex = 'FFFFFFFF' Equals NO          **
  ** Oscillator Calibration Byte programming performed!                  **
  **                                                                     **
  *-----------------------------------------------------------------------*

******************************************************************************
******************************************************************************
***------------------------------------------------------------------------***

 ATmega16
 ------------
 ATmega16L
 ------------

 ***----------------------- Programmer Setup Flags -------------------------***
 NOTE: LB1 & LB2 are handled by Security Fuse 1 & 2 flags!
 Program Security fuse 1: Lock Bit 1
 Program Security fuse 2: Lock Bit 2

 NOTE: Boot Lock Bit's in the Lock Bit Byte are programmed ONLY
       if Security Fuse 3 flag = Y.   Please see "Lock Bit Byte"
       information below for configuring device for "Boot Lock
       Byte" programming.

 Regarding Fuse High Byte and Fuse Low Byte:
 NOTE: Atmel DataSheet states Default Value from Factory is:
       Fuse High Byte=$99; Fuse Low Byte=$E1

 NOTE: Programmer will read in the default Default Value from
       Factory as follows:
       Fuse High Byte=$99; Fuse Low Byte=$E1

 NOTE: The "Fuse High Byte" and "Fuse Low Byte" are NOT erased.
       These two bytes are ONLY modified during a programming
       operation IF the "Program configuration" flag is enabled.

 UniFam programmers refer to the Fuse High Byte and Fuse Low Byte
 data as "Configuration Bytes".  To program this data using the
 Hiterm interface you must enable (set to Yes) the "Program
 Configuration" flag in Hiterm.
 If you are using TaskLink interface you must enable the "Special
 Data #1" flag.  To set this flag in TaskLink you must navigate
 to the following Dialog box:
 Setup -> Programmer Properties... -> "Special" Dialog tab

 PROGRAMMING OF THE OSCILLATOR CALIBRATION BYTE INTO THE MEMORY MAP
 OF THE EITHER THE MAIN FLASH MEMORY ARRAY OR THE EEPROM ARRAY:
 To enable this feature during a programming operation when using
 the Hiterm interface you must enable (set to Yes) the "Program
 Configuration" flag.
 To enable this feature during a programming operation when using
 the TaskLink interface you must enable the "Special Data #1" flag.
 To set this "Special Data #1" flag in TaskLink you must navigate to
 the following Dialog box:
 Setup -> Programmer Properties... -> "Special" Dialog tab

 WARNING: The "Program Configuration" flag enables programming of
          of the Configuration Bytes (Fuse High Byte and Fuse Low
          Byte) and the programming of the Oscillator Calibration
          Byte.

 WARNING: Programming of the Oscillator Calibration Byte will NOT
          be enabled if the Oscillator Calibration Byte Programming
          Address is equal to the following hex data: 'FFFFFFFF'
          See "Internal RC Oscillator Calibration Byte" programming
          Address below for details.

 ***---------------------- Format of Fuse High Byte ------------------------***
 NOTE: For Bits defined below Atmel DataSheet states Default Factory Value are:
 Fuse High Byte=$99; Fuse Low Byte=$E1
 *------------------------------------*
 User RAM Address = 4200 hex
 *------------------------------------*
 Fuse High Byte, Bit 7   : OCDEN; Enable OCD: disabled = 1; default
                                            : Enabled = 0

 Fuse High Byte, Bit 6   : JTAGEN; JTAG support: Enabled  = 0; default
                                               : Disabled = 1

 Fuse High Byte, Bit 5   : SPIEN; SPI Program/Data Downloading: Enable  = 0; default
                                                              : Disable = 1

 Fuse High Byte, Bit 4   : CKOPT; Oscillator Options: 1; default
                                                    : 0

 Fuse High Byte, Bit 3   : EESAVE; Erase EEPROM during Chip Erase: Yes = 1; default
                                                                 : No  = 0

 Fuse High Byte, Bit 2,1:
  BOOTS Z1,Z0; Boot Size Configuration: 1024 Words: Z1,Z0 = 00; default
                                      :  512 Words: Z1,Z0 = 01
                                      :  256 Words: Z1,Z0 = 10
                                      :  128 Words: Z1,Z0 = 11

 Fuse High Byte, Bit 0   : BOOTRST; Reset Vector: Application Reset($0000) = 1; default
                                                : Boot Loader Reset        = 0

 ***---------------------- Format of Fuse Low Byte -------------------------***
 NOTE: For Bits defined below Atmel DataSheet states Default Factory Value are:
 Fuse High Byte=$99; Fuse Low Byte=$E1
 *------------------------------------*
 User RAM Address = 4201 hex
 *------------------------------------*
 Fuse Low Byte, Bit 7    : BODLEVEL; Brown-out Detector trigger level: 1; default
                                                                     : 0

 Fuse Low Byte, Bit 6    : BODEN; Brown-out Detector: Disabled = 1; default
                                                    : Enable   = 0

 Fuse Low Byte, Bit 5,4  : SUT1,SUT0
 Select start-up time Configuration: SUT1,SUT0 = 0,0
                                   : SUT1,SUT0 = 0,1
                                   : SUT1,SUT0 = 1,0; default
                                   : SUT1,SUT0 = 1,1

 Fuse Low Byte, Bit 3->0 :
 Device Clocking Option:
 CKSEL3..0:
      1111; External Crystal/Ceramic Resonator
      1110; External Crystal/Ceramic Resonator
      1101; External Crystal/Ceramic Resonator
      1100; External Crystal/Ceramic Resonator
      1011; External Crystal/Ceramic Resonator
      1010; External Crystal/Ceramic Resonator
      1001; External Low-frequency Crystal
      1000; External RC Oscillator
      0111; External RC Oscillator
      0110; External RC Oscillator
      0101; External RC Oscillator
      0100; 8MHz Calibrated Internal RC Oscillator
      0011; 4MHz Calibrated Internal RC Oscillator
      0010; 2MHz Calibrated Internal RC Oscillator
      0001; 1MHz Calibrated Internal RC Oscillator; default
      0000; External Clock

 The device is shipped with:
 SUT = 10
 CKSEL = 0001
 The default clock source setting is therefore the Internal RC Oscillator with
 longest start-up time.  This default setting ensures that all users can make
 their desired clock source setting using an In-System or Parallel Programming.

 ***------------------- Format of Lock Bit Byte BLB1 Mode ------------------***
 *------------------------------------*
 User RAM Address = 4202 hex; Bits 1,0
 *------------------------------------*
 Lock Bit Byte:  Bit 5,4    BLB 11 & 12
 BLB1 Mode: 1 (BLB12,BLB11 = 1,1)
          : 2 (BLB12,BLB11 = 1,0)
          : 3 (BLB12,BLB11 = 0,0)
          : 4 (BLB12,BLB11 = 0,1)

 ***------------------- Format of Lock Bit Byte BLB0 Mode ------------------***
 *------------------------------------*
 User RAM Address = 4203 hex; Bits 1,0
 *------------------------------------*
 Lock Bit Byte:  Bit 3,2    BLB 01 & 02
 BLB0 Mode: 1 (BLB02,BLB01 = 1,1)
          : 2 (BLB02,BLB01 = 1,0)
          : 3 (BLB02,BLB01 = 0,0)
          : 4 (BLB02,BLB01 = 0,1)

 ***----- Format of RC Oscillator Calibration Byte Programming Address -----***
 *---------------------------------------*
 User RAM Address = 4204 hex -> 4207 hex
 *---------------------------------------*
 The location in the Programmer's "User RAM" where the Target Address
 of the Internal RC Oscillator Calibration value is to be stored is:
 4204 hex -> 4207 hex

 EXAMPLE:  If the User places the address value "00 00 02 A5" in the
           User RAM locations "4204 hex -> 4207 hex " then the Internal
           RC Oscillator Calibration value will be programmed into the
           device's memory address: 000002A5 hex

 NOTE: The "Program Configuration" flag MUST be enabled if you are
       going to program the Oscillator Calibration Byte value into the
       memory map of the device.  If the "Program Configuration" flag
       is NOT enabled (set to Yes) then the Oscillator Calibration Byte
       Programming operation is NOT performed.

  *************************************************************************
  ***     NOTE: No Calibration value will be stored in User RAM if      ***
  ***           User RAM address 4204 hex -> 4207 hex  = FFFFFFFF hex   ***
  *************************************************************************
  *       Below is a re-clarification of the above NOTE!                  *
  *-----------------------------------------------------------------------*
  ** To Disable Oscillator Calibration Byte Programming in either the    **
  ** data file or in Programmer's User RAM you need to do the following: **
  ** *-----------------------------------------------------------------* **
  **                                                                     **
  ** If the address in the programmers' User RAM used to store the       **
  ** "Internal RC Oscillator Calibration Byte" programming Address has   **
  ** the following hex data: 'FFFFFFFF' then the programmer will SKIP    **
  ** writing the Calibration value into the memory map of the device,    **
  ** regardless of the setting of the "Program Configuration" flag.      **
  **                                                                     **
  ** So for a mega16:                                                    **
  ** User RAM Address 4204 hex -> 4207 hex = 'FFFFFFFF' Equals NO        **
  ** Oscillator Calibration Byte programming performed!                  **
  **                                                                     **
  *-----------------------------------------------------------------------*

******************************************************************************
******************************************************************************
***------------------------------------------------------------------------***

 ATmega162
 ------------
 ATmega162V
 ------------

 ***----------------------- Programmer Setup Flags -------------------------***
 NOTE: LB1 & LB2 are handled by Security Fuse 1 & 2 flags!
 Program Security fuse 1: Lock Bit 1
 Program Security fuse 2: Lock Bit 2

 NOTE: Boot Lock Bit's in the Lock Bit Byte are programmed ONLY
       if Security Fuse 3 flag = Y.   Please see "Lock Bit Byte"
       information below for configuring device for "Boot Lock
       Byte" programming.

 Regarding Fuse High Byte and Fuse Low Byte:
 NOTE: Atmel DataSheet states Default Value from Factory is:
       Extended Fuse Byte=$FF;
       Fuse High Byte=$99;
       Fuse Low Byte=$62

 NOTE: Programmer will read in the default Default Value from
       Factory as follows:
       Extended Fuse Byte=$1E;
       Fuse High Byte=$99;
       Fuse Low Byte=$62

 NOTE: The "Extended Fuse Byte", "Fuse High Byte" and "Fuse Low Byte"
       are NOT erased. These three bytes are ONLY modified during a
       programming operation IF the "Program configuration" flag is
       enabled.

 UniFam programmers refer to the "Extended Fuse Byte", "Fuse High Byte"
 and "Fuse Low Byte" data as "Configuration Bytes".  To program this
 data using the Hiterm interface you must enable (set to Yes) the
 "Program Configuration" flag in Hiterm.
 If you are using TaskLink interface you must enable the "Special
 Data #1" flag.  To set this flag in TaskLink you must navigate
 to the following Dialog box:
 Setup -> Programmer Properties... -> "Special" Dialog tab

 PROGRAMMING OF THE OSCILLATOR CALIBRATION BYTE INTO THE MEMORY MAP
 OF THE EITHER THE MAIN FLASH MEMORY ARRAY OR THE EEPROM ARRAY:
 To enable this feature during a programming operation when using
 the Hiterm interface you must enable (set to Yes) the "Program
 Configuration" flag.
 To enable this feature during a programming operation when using
 the TaskLink interface you must enable the "Special Data #1" flag.
 To set this "Special Data #1" flag in TaskLink you must navigate to
 the following Dialog box:
 Setup -> Programmer Properties... -> "Special" Dialog tab

 WARNING: The "Program Configuration" flag enables programming of
          of the Configuration Bytes (Extended Fuse Byte, Fuse High
          Byte and Fuse Low Byte) and the programming of the
          Oscillator Calibration Byte.

 WARNING: Programming of the Oscillator Calibration Byte will NOT
          be enabled if the Oscillator Calibration Byte Programming
          Address is equal to the following hex data: 'FFFFFFFF'
          See "Internal RC Oscillator Calibration Byte" programming
          Address below for details.

 ***---------------------- Format of Fuse High Byte ------------------------***
 NOTE: For Bits defined below Atmel DataSheet states Default Factory Value are:
 Extended Fuse Byte=$1E; Fuse High Byte=$99; Fuse Low Byte=$62
 *------------------------------------*
 User RAM Address = 4200 hex
 *------------------------------------*
Fuse High Byte, Bit 7   : OCDEN; Enable OCD: disabled = 1
                                           : Enabled = 0

Fuse High Byte, Bit 6   : JTAGEN; JTAG support: Enabled  = 0
                                              : Disabled = 1

Fuse High Byte, Bit 5   : SPIEN; SPI Program/Data Downloading: Enable  = 0
                                                             : Disable = 1

Fuse High Byte, Bit 4   : WDTON; Watchdog Timer always on: 1
                                                         : 0

Fuse High Byte, Bit 3   : EESAVE; Erase EEPROM during Chip Erase: Yes = 1
                                                                : No  = 0

Fuse High Byte, Bit 2,1:
 BOOTS Z1,Z0; Boot Size Configuration: 1024 Words: Z1,Z0 = 00
                                     :  512 Words: Z1,Z0 = 01
                                     :  256 Words: Z1,Z0 = 10
                                     :  128 Words: Z1,Z0 = 11

Fuse High Byte, Bit 0   : BOOTRST; Reset Vector: Application Reset($0000) = 1
                                               : Boot Loader Reset        = 0

 ***---------------------- Format of Fuse Low Byte -------------------------***
 NOTE: For Bits defined below Atmel DataSheet states Default Factory Value are:
 Extended Fuse Byte=$1E; Fuse High Byte=$99; Fuse Low Byte=$62
 *------------------------------------*
 User RAM Address = 4201 hex
 *------------------------------------*
 Fuse Low Byte, Bit 7    : CKDIV8; Divide clock by 8: 0
                                                    : 1

 Fuse Low Byte, Bit 6    : CKOUT; Clock Output: 1
                                              : 0

 Fuse Low Byte, Bit 5,4  : SUT1,SUT0
 Select start-up time Configuration: SUT1,SUT0 = 0,0
                                   : SUT1,SUT0 = 0,1
                                   : SUT1,SUT0 = 1,0; default
                                   : SUT1,SUT0 = 1,1

 Fuse Low Byte, Bit 3->0 :
 Device Clocking Option:
 CKSEL3..0:
     1111; External Crystal/Ceramic Resonator
     1110; External Crystal/Ceramic Resonator
     1101; External Crystal/Ceramic Resonator
     1100; External Crystal/Ceramic Resonator
     1011; External Crystal/Ceramic Resonator
     1010; External Crystal/Ceramic Resonator
     1001; External Crystal/Ceramic Resonator
     1000; External Crystal/Ceramic Resonator
     0111; External Low-frequency Crystal
     0110; External Low-frequency Crystal
     0101; External Low-frequency Crystal
     0100; External Low-frequency Crystal
     0011; Reserved
     0010; 8MHz Calibrated Internal RC Oscillator; default
     0001; Reserved
     0000; External Clock

 The device is shipped with:
 SUT = 10
 CKSEL = 0010
 The default clock source setting is therefore the Internal RC Oscillator with
 longest start-up time.  This default setting ensures that all users can make
 their desired clock source setting using an In-System or Parallel Programming.

 ***---------------------- Format of Extended Fuse Byte --------------------***
 NOTE: For Bits defined below Atmel DataSheet states Default Factory Value are:
 Extended Fuse Byte=$1E; Fuse High Byte=$99; Fuse Low Byte=$62
 *------------------------------------*
 User RAM Address = 4202 hex
 *------------------------------------*

 Extended High Byte, Bit 4     : M161C; ATmega161 compatibility Mode: 1
                                                                    : 0
 Extended High Byte, Bits 3->1 :
 Brown-out Detector trigger level:
  BODLEVEL2,BODLEVEL1,BODLEVEL0 = 1,1,1; Default is Disabled
  BODLEVEL2,BODLEVEL1,BODLEVEL0 = 1,1,0; 1.7V Min. 1.8V Typ. 2.0V Max.
  BODLEVEL2,BODLEVEL1,BODLEVEL0 = 1,0,1; 2.5V Min. 2.7V Typ. 2.9V Max.
  BODLEVEL2,BODLEVEL1,BODLEVEL0 = 1,0,0; 4.1V Min. 4.3V Typ. 4.5V Max.
  BODLEVEL2,BODLEVEL1,BODLEVEL0 = 0,1,1; 2.1V Min. 2.3V Typ. 2.5V Max.
  BODLEVEL2,BODLEVEL1,BODLEVEL0 = 0,1,0; Reserved
  BODLEVEL2,BODLEVEL1,BODLEVEL0 = 0,0,1; Reserved
  BODLEVEL2,BODLEVEL1,BODLEVEL0 = 0,0,0; Reserved

***------------------- Format of Lock Bit Byte BLB1 Mode ------------------***
*------------------------------------*
User RAM Address = 4203 hex; Bits 1,0
*------------------------------------*
Lock Bit Byte:  Bit 5,4    BLB 11 & 12
BLB1 Mode: 1 (BLB12,BLB11 = 1,1)
         : 2 (BLB12,BLB11 = 1,0)
         : 3 (BLB12,BLB11 = 0,0)
         : 4 (BLB12,BLB11 = 0,1)

***------------------- Format of Lock Bit Byte BLB0 Mode ------------------***
*------------------------------------*
User RAM Address = 4204 hex; Bits 1,0
*------------------------------------*
Lock Bit Byte:  Bit 3,2    BLB 01 & 02
BLB0 Mode: 1 (BLB02,BLB01 = 1,1)
         : 2 (BLB02,BLB01 = 1,0)
         : 3 (BLB02,BLB01 = 0,0)
         : 4 (BLB02,BLB01 = 0,1)

 ***----- Format of RC Oscillator Calibration Byte Programming Address -----***
 *---------------------------------------*
 User RAM Address = 4205 hex -> 4208 hex
 *---------------------------------------*
 The location in the Programmer's "User RAM" where the Target Address
 of the Internal RC Oscillator Calibration value is to be stored is:
 4205 hex -> 4208 hex

 EXAMPLE:  If the User places the address value "00 00 02 A5" in the
           User RAM locations "4205 hex -> 4208 hex " then the Internal
           RC Oscillator Calibration value will be programmed into the
           device's memory address: 000002A5 hex

 NOTE: The "Program Configuration" flag MUST be enabled if you are
       going to program the Oscillator Calibration Byte value into the
       memory map of the device.  If the "Program Configuration" flag
       is NOT enabled (set to Yes) then the Oscillator Calibration Byte
       Programming operation is NOT performed.

  *************************************************************************
  ***     NOTE: No Calibration value will be stored in User RAM if      ***
  ***           User RAM address 4205 hex -> 4208 hex  = FFFFFFFF hex   ***
  *************************************************************************
  *       Below is a re-clarification of the above NOTE!                  *
  *-----------------------------------------------------------------------*
  ** To Disable Oscillator Calibration Byte Programming in either the    **
  ** data file or in Programmer's User RAM you need to do the following: **
  ** *-----------------------------------------------------------------* **
  **                                                                     **
  ** If the address in the programmers' User RAM used to store the       **
  ** "Internal RC Oscillator Calibration Byte" programming Address has   **
  ** the following hex data: 'FFFFFFFF' then the programmer will SKIP    **
  ** writing the Calibration value into the memory map of the device,    **
  ** regardless of the setting of the "Program Configuration" flag.      **
  **                                                                     **
  ** So for a mega162:                                                   **
  ** User RAM Address 4205 hex -> 4208 hex = 'FFFFFFFF' Equals NO        **
  ** Oscillator Calibration Byte programming performed!                  **
  **                                                                     **
  *-----------------------------------------------------------------------*

******************************************************************************
******************************************************************************
***------------------------------------------------------------------------***

 ATmega88
 ------------
 ATmega88V
 ------------

 ***----------------------- Programmer Setup Flags -------------------------***
 NOTE: LB1 & LB2 are handled by Security Fuse 1 & 2 flags!
 Program Security fuse 1: Lock Bit 1
 Program Security fuse 2: Lock Bit 2

 NOTE: Boot Lock Bit's in the Lock Bit Byte are programmed ONLY
       if Security Fuse 3 flag = Y.   Please see "Lock Bit Byte"
       information below for configuring device for "Boot Lock
       Byte" programming.

 Regarding Fuse High Byte and Fuse Low Byte:
 NOTE: Atmel DataSheet states Default Value from Factory is:
       Extended Fuse Byte=$F9;
       Fuse High Byte=$DF;
       Fuse Low Byte=$62

 NOTE: Programmer will read in the default Default Value from
       Factory as follows:
       Extended Fuse Byte=$01;
       Fuse High Byte=$DF;
       Fuse Low Byte=$62

 NOTE: The "Extended Fuse Byte", "Fuse High Byte" and "Fuse Low Byte"
       are NOT erased. These three bytes are ONLY modified during a
       programming operation IF the "Program configuration" flag is
       enabled.

 UniFam programmers refer to the "Extended Fuse Byte", "Fuse High Byte"
 and "Fuse Low Byte" data as "Configuration Bytes".  To program this
 data using the Hiterm interface you must enable (set to Yes) the
 "Program Configuration" flag in Hiterm.
 If you are using TaskLink interface you must enable the "Special
 Data #1" flag.  To set this flag in TaskLink you must navigate
 to the following Dialog box:
 Setup -> Programmer Properties... -> "Special" Dialog tab

 PROGRAMMING OF THE OSCILLATOR CALIBRATION BYTE INTO THE MEMORY MAP
 OF THE EITHER THE MAIN FLASH MEMORY ARRAY OR THE EEPROM ARRAY:
 To enable this feature during a programming operation when using
 the Hiterm interface you must enable (set to Yes) the "Program
 Configuration" flag.
 To enable this feature during a programming operation when using
 the TaskLink interface you must enable the "Special Data #1" flag.
 To set this "Special Data #1" flag in TaskLink you must navigate to
 the following Dialog box:
 Setup -> Programmer Properties... -> "Special" Dialog tab

 WARNING: The "Program Configuration" flag enables programming of
          of the Configuration Bytes (Extended Fuse Byte, Fuse High
          Byte and Fuse Low Byte) and the programming of the
          Oscillator Calibration Byte.

 WARNING: Programming of the Oscillator Calibration Byte will NOT
          be enabled if the Oscillator Calibration Byte Programming
          Address is equal to the following hex data: 'FFFFFFFF'
          See "Internal RC Oscillator Calibration Byte" programming
          Address below for details.

 ***---------------------- Format of Fuse High Byte ------------------------***
 NOTE: For Bits defined below Atmel DataSheet states Default Factory Value are:
 Extended Fuse Byte=$01; Fuse High Byte=$DF; Fuse Low Byte=$62
 *------------------------------------*
 User RAM Address = 2200 hex
 *------------------------------------*
 Fuse High Byte, Bit 7: RSTDISBL; External Reset Disable: = 1; default
                                                        : = 0

 Fuse High Byte, Bit 6: DWEN; DebugWire Enable: 1; default
                                              : 0

 Fuse High Byte, Bit 5: SPIEN; SPI Program/Data Downloading: Enable  = 0; Default
                                                           : Disable = 1

 Fuse High Byte, Bit 4: WDTON; Watchdog Timer always on: 1; Default
                                                       : 0

 Fuse High Byte, Bit 3: EESAVE; Erase EEPROM during Chip Erase: Yes = 1; Default
                                                              : No  = 0
 Fuse High Byte, Bits 2->0:
 Brown-out Detector trigger level:
  BODLEVEL2,BODLEVEL1,BODLEVEL0 = 1,1,1; Default is Disabled
  BODLEVEL2,BODLEVEL1,BODLEVEL0 = 1,1,0; 1.7V Min. 1.8V Typ. 2.0V Max.
  BODLEVEL2,BODLEVEL1,BODLEVEL0 = 1,0,1; 2.5V Min. 2.7V Typ. 2.9V Max.
  BODLEVEL2,BODLEVEL1,BODLEVEL0 = 1,0,0; 4.1V Min. 4.3V Typ. 4.5V Max.
  BODLEVEL2,BODLEVEL1,BODLEVEL0 = 0,1,1; Reserved
  BODLEVEL2,BODLEVEL1,BODLEVEL0 = 0,1,0; Reserved
  BODLEVEL2,BODLEVEL1,BODLEVEL0 = 0,0,1; Reserved
  BODLEVEL2,BODLEVEL1,BODLEVEL0 = 0,0,0; Reserved

 ***---------------------- Format of Fuse Low Byte -------------------------***
 NOTE: For Bits defined below Atmel DataSheet states Default Factory Value are:
 Extended Fuse Byte=$01; Fuse High Byte=$DF; Fuse Low Byte=$62
 *------------------------------------*
 User RAM Address = 2201 hex
 *------------------------------------*
 Fuse Low Byte, Bit 7    : CKDIV8; Divide clock by 8: 0; default
                                                    : 1

 Fuse Low Byte, Bit 6    : CKOUT; Clock Output: 1; default
                                              : 0

 Fuse Low Byte, Bit 5,4  : SUT1,SUT0
 Select start-up time Configuration: SUT1,SUT0 = 0,0
                                   : SUT1,SUT0 = 0,1
                                   : SUT1,SUT0 = 1,0; default
                                   : SUT1,SUT0 = 1,1

 Fuse Low Byte, Bit 3->0 :
 Device Clocking Option:
 CKSEL3..0:
     1111; Low Power Crystal Oscillator
     1110; Low Power Crystal Oscillator
     1101; Low Power Crystal Oscillator
     1100; Low Power Crystal Oscillator
     1011; Low Power Crystal Oscillator
     1010; Low Power Crystal Oscillator
     1001; Low Power Crystal Oscillator
     1000; Low Power Crystal Oscillator
     0111; Full Swing Crystal Oscillator
     0110; Full Swing Crystal Oscillator
     0101; Low-frequency Crystal Oscillator
     0100; Low-frequency Crystal Oscillator
     0011; Internal 128 kHz RC Oscillator
     0010; 8MHz Calibrated Internal RC Oscillator; default
     0001; Reserved
     0000; External Clock

 The device is shipped with:
 SUT = 10
 CKSEL = 0010
 The default clock source setting is therefore the Internal RC Oscillator with
 longest start-up time.  This default setting ensures that all users can make
 their desired clock source setting using an In-System or Parallel Programming.

 ***---------------------- Format of Extended Fuse Byte --------------------***
 NOTE: For Bits defined below Atmel DataSheet states Default Factory Value are:
 Extended Fuse Byte=$01; Fuse High Byte=$DF; Fuse Low Byte=$62
 *------------------------------------*
 User RAM Address = 2202 hex
 *------------------------------------*

 Fuse Extended Byte, Bit 2,1:
 BOOTSZ1,BOOTSZ0; Boot Size Configuration: 1024 Words: Z1,Z0 = 00; default
                                         :  512 Words: Z1,Z0 = 01
                                         :  256 Words: Z1,Z0 = 10
                                         :  128 Words: Z1,Z0 = 11

 Fuse Extended Byte, Bit 0:
 BOOTRST; Reset Vector: Application Reset($0000) = 1; default
                      : Boot Loader Reset        = 0

 ***------------------- Format of Lock Bit Byte BLB1 Mode ------------------***
 *------------------------------------*
 User RAM Address = 2203 hex; Bits 1,0
 *------------------------------------*
 Lock Bit Byte:  Bit 5,4    BLB 11 & 12
 BLB1 Mode: 1 (BLB12,BLB11 = 1,1)
          : 2 (BLB12,BLB11 = 1,0)
          : 3 (BLB12,BLB11 = 0,0)
          : 4 (BLB12,BLB11 = 0,1)

 ***------------------- Format of Lock Bit Byte BLB0 Mode ------------------***
 *------------------------------------*
 User RAM Address = 2204 hex; Bits 1,0
 *------------------------------------*
 Lock Bit Byte:  Bit 3,2    BLB 01 & 02
 BLB0 Mode: 1 (BLB02,BLB01 = 1,1)
          : 2 (BLB02,BLB01 = 1,0)
          : 3 (BLB02,BLB01 = 0,0)
          : 4 (BLB02,BLB01 = 0,1)

 ***----- Format of RC Oscillator Calibration Byte Programming Address -----***
 *---------------------------------------*
 User RAM Address = 2205 hex -> 2208 hex
 *---------------------------------------*
 The location in the Programmer's "User RAM" where the Target Address
 of the Internal RC Oscillator Calibration value is to be stored is:
 2205 hex -> 2208 hex

 EXAMPLE:  If the User places the address value "00 00 02 A5" in the
           User RAM locations "2205 hex -> 2208 hex " then the Internal
           RC Oscillator Calibration value will be programmed into the
           device's memory address: 000002A5 hex

 NOTE: The "Program Configuration" flag MUST be enabled if you are
       going to program the Oscillator Calibration Byte value into the
       memory map of the device.  If the "Program Configuration" flag
       is NOT enabled (set to Yes) then the Oscillator Calibration Byte
       Programming operation is NOT performed.

  *************************************************************************
  ***     NOTE: No Calibration value will be stored in User RAM if      ***
  ***           User RAM address 2205 hex -> 2208 hex  = FFFFFFFF hex   ***
  *************************************************************************
  *       Below is a re-clarification of the above NOTE!                  *
  *-----------------------------------------------------------------------*
  ** To Disable Oscillator Calibration Byte Programming in either the    **
  ** data file or in Programmer's User RAM you need to do the following: **
  ** *-----------------------------------------------------------------* **
  **                                                                     **
  ** If the address in the programmers' User RAM used to store the       **
  ** "Internal RC Oscillator Calibration Byte" programming Address has   **
  ** the following hex data: 'FFFFFFFF' then the programmer will SKIP    **
  ** writing the Calibration value into the memory map of the device,    **
  ** regardless of the setting of the "Program Configuration" flag.      **
  **                                                                     **
  ** So for a mega88:                                                    **
  ** User RAM Address 2205 hex -> 2208 hex = 'FFFFFFFF' Equals NO        **
  ** Oscillator Calibration Byte programming performed!                  **
  **                                                                     **
  *-----------------------------------------------------------------------*

******************************************************************************
******************************************************************************
***------------------------------------------------------------------------***

 ATmega128
 ------------
 ATmega128L
 ------------

 ***----------------------- Programmer Setup Flags -------------------------***
 NOTE: LB1 & LB2 are handled by Security Fuse 1 & 2 flags!
 Program Security fuse 1: Lock Bit 1
 Program Security fuse 2: Lock Bit 2

 NOTE: Boot Lock Bit's in the Lock Bit Byte are programmed ONLY
       if Security Fuse 3 flag = Y.   Please see "Lock Bit Byte"
       information below for configuring device for "Boot Lock
       Byte" programming.

 Regarding Fuse High Byte and Fuse Low Byte:
 NOTE: Atmel DataSheet states Default Value from Factory is:
       Extended Fuse Byte=$FD;
       Fuse High Byte=$99;
       Fuse Low Byte=$E1

 NOTE: Programmer will read in the default Default Value from
       Factory as follows:
       Extended Fuse Byte=$01;
       Fuse High Byte=$99;
       Fuse Low Byte=$E1

 NOTE: The "Extended Fuse Byte", "Fuse High Byte" and "Fuse Low Byte"
       are NOT erased. These three bytes are ONLY modified during a
       programming operation IF the "Program configuration" flag is
       enabled.

 UniFam programmers refer to the "Extended Fuse Byte", "Fuse High Byte"
 and "Fuse Low Byte" data as "Configuration Bytes".  To program this
 data using the Hiterm interface you must enable (set to Yes) the
 "Program Configuration" flag in Hiterm.
 If you are using TaskLink interface you must enable the "Special
 Data #1" flag.  To set this flag in TaskLink you must navigate
 to the following Dialog box:
 Setup -> Programmer Properties... -> "Special" Dialog tab

 PROGRAMMING OF THE OSCILLATOR CALIBRATION BYTE INTO THE MEMORY MAP
 OF THE EITHER THE MAIN FLASH MEMORY ARRAY OR THE EEPROM ARRAY:
 To enable this feature during a programming operation when using
 the Hiterm interface you must enable (set to Yes) the "Program
 Configuration" flag.
 To enable this feature during a programming operation when using
 the TaskLink interface you must enable the "Special Data #1" flag.
 To set this "Special Data #1" flag in TaskLink you must navigate to
 the following Dialog box:
 Setup -> Programmer Properties... -> "Special" Dialog tab

 WARNING: The "Program Configuration" flag enables programming of
          of the Configuration Bytes (Extended Fuse Byte, Fuse High
          Byte and Fuse Low Byte) and the programming of the
          Oscillator Calibration Byte.

 WARNING: Programming of the Oscillator Calibration Byte will NOT
          be enabled if the Oscillator Calibration Byte Programming
          Address is equal to the following hex data: 'FFFFFFFF'
          See "Internal RC Oscillator Calibration Byte" programming
          Address below for details.

 ***---------------------- Format of Fuse High Byte ------------------------***
 NOTE: For Bits defined below Atmel DataSheet states Default Factory Value are:
 Extended Fuse Byte=$01; Fuse High Byte=$99; Fuse Low Byte=$E1
 *------------------------------------*
 User RAM Address = 21000 hex
 *------------------------------------*
 Fuse High Byte, Bit 7:OCDEN; Enable OCD: disabled = 1; Default
                                        : Enabled  = 0

 Fuse High Byte, Bit 6: JTAGEN; JTAG support: Enabled  = 0; Default
                                            : Disabled = 1

 Fuse High Byte, Bit 5:
 SPIEN; SPI Program/Data Downloading: Enable  = 0; Default
                                    : Disable = 1

 Fuse High Byte, Bit 4: CKOPT; Oscillator Options: 1; Default
                                                 : 0

 Fuse High Byte, Bit 3:
 EESAVE; Erase EEPROM during Chip Erase: Yes = 1; Default
                                       : No  = 0

 Fuse High Byte, Bit 2,1:
 BOOTS Z1,Z0; Boot Size Configuration: 4096 Words: Z1,Z0 = 00; Default
                                     : 2048 Words: Z1,Z0 = 01
                                     : 1024 Words: Z1,Z0 = 10
                                     :  512 Words: Z1,Z0 = 11

 Fuse High Byte, Bit 0:
 BOOTRST; Reset Vector: Application Reset($0000) = 1; Default
                      : Boot Loader Reset        = 0

 ***---------------------- Format of Fuse Low Byte -------------------------***
 NOTE: For Bits defined below Atmel DataSheet states Default Factory Value are:
 Extended Fuse Byte=$01; Fuse High Byte=$99; Fuse Low Byte=$E1
 *------------------------------------*
 User RAM Address = 21001 hex
 *------------------------------------*
 Fuse Low Byte, Bit 7:
 BODLEVEL; Brown-out Detector trigger level: 1; Default
                                           : 0

 Fuse Low Byte, Bit 6: BODEN; Brown-out Detector: Disabled = 1; Default
                                                : Enable   = 0

 Fuse Low Byte, Bit 5,4: SUT1,SUT0
 Select start-up time Configuration: SUT1,SUT0 = 0,0
                                   : SUT1,SUT0 = 0,1
                                   : SUT1,SUT0 = 1,0; Default
                                   : SUT1,SUT0 = 1,1

 Fuse Low Byte, Bit 3->0 :
 Device Clocking Option:
 CKSEL3..0:
     1111; External Crystal/Ceramic Resonator
     1110; External Crystal/Ceramic Resonator
     1101; External Crystal/Ceramic Resonator
     1100; External Crystal/Ceramic Resonator
     1011; External Crystal/Ceramic Resonator
     1010; External Crystal/Ceramic Resonator
     1001; External Low-frequency Crystal
     1000; External RC Oscillator
     0111; External RC Oscillator
     0110; External RC Oscillator
     0101; External RC Oscillator
     0100; 8MHz Calibrated Internal RC Oscillator
     0011; 4MHz Calibrated Internal RC Oscillator
     0010; 2MHz Calibrated Internal RC Oscillator
     0001; 1MHz Calibrated Internal RC Oscillator; Default
     0000; External Clock

 The device is shipped with:
 SUT = 10
 CKSEL = 0001
 The default clock source setting is therefore the Internal RC Oscillator with
 longest start-up time.  This default setting ensures that all users can make
 their desired clock source setting using an In-System or Parallel Programming.


 ***---------------------- Format of Extended Fuse Byte --------------------***
 NOTE: For Bits defined below Atmel DataSheet states Default Factory Value is:
 Extended Fuse Byte=$01; Fuse High Byte=$99; Fuse Low Byte=$E1
 *------------------------------------*
 User RAM Address = 21002 hex
 *------------------------------------*
 Extended Fuse Byte, Bit 1:
 M103C Compatibility Fuse: ATmega103 Compatibility Mode = 0; Default
                         : ATmega128 Mode               = 1

 Extended Fuse Byte, Bit 0   : WDTON; Watchdog Timer: On  = 1; Default
                                                    : Off = 0

 ***------------------- Format of Lock Bit Byte BLB1 Mode ------------------***
 *------------------------------------*
 User RAM Address = 21003 hex; Bits 1,0
 *------------------------------------*
 Lock Bit Byte:  Bit 5,4    BLB 11 & 12
 BLB1 Mode: 1 (BLB12,BLB11 = 1,1)
          : 2 (BLB12,BLB11 = 1,0)
          : 3 (BLB12,BLB11 = 0,0)
          : 4 (BLB12,BLB11 = 0,1)

 ***------------------- Format of Lock Bit Byte BLB0 Mode ------------------***
 *------------------------------------*
 User RAM Address = 21004 hex; Bits 1,0
 *------------------------------------*
 Lock Bit Byte:  Bit 3,2    BLB 01 & 02
 BLB0 Mode: 1 (BLB02,BLB01 = 1,1)
          : 2 (BLB02,BLB01 = 1,0)
          : 3 (BLB02,BLB01 = 0,0)
          : 4 (BLB02,BLB01 = 0,1)

 ***----- Format of RC Oscillator Calibration Byte Programming Address -----***
 *-----------------------------------------*
 User RAM Address = 21005 hex -> 21008 hex
 *-----------------------------------------*
 The location in the Programmer's "User RAM" where the Target Address
 of the Internal RC Oscillator Calibration value is to be stored is:
 21005 hex -> 21008 hex

 EXAMPLE:  If the User places the address value "00 00 02 A5" in the
           User RAM locations "21005 hex -> 21008 hex" then the Internal
           RC Oscillator Calibration value will be programmed into the
           device's memory address: 000002A5 hex

 NOTE: The "Program Configuration" flag MUST be enabled if you are
       going to program the Oscillator Calibration Byte value into the
       memory map of the device.  If the "Program Configuration" flag
       is NOT enabled (set to Yes) then the Oscillator Calibration Byte
       Programming operation is NOT performed.

  *************************************************************************
  ***     NOTE: No Calibration value will be stored in User RAM if      ***
  ***           User RAM address 21005 hex -> 21008 hex = FFFFFFFF hex  ***
  *************************************************************************
  *       Below is a re-clarification of the above NOTE!                  *
  *-----------------------------------------------------------------------*
  ** To Disable Oscillator Calibration Byte Programming in either the    **
  ** data file or in Programmer's User RAM you need to do the following: **
  ** *-----------------------------------------------------------------* **
  **                                                                     **
  ** If the address in the programmers' User RAM used to store the       **
  ** "Internal RC Oscillator Calibration Byte" programming Address has   **
  ** the following hex data: 'FFFFFFFF' then the programmer will SKIP    **
  ** writing the Calibration value into the memory map of the device,    **
  ** regardless of the setting of the "Program Configuration" flag.      **
  **                                                                     **
  ** So for a mega128:                                                   **
  ** User RAM Address 21005 hex -> 21008 hex = 'FFFFFFFF' Equals NO      **
  ** Oscillator Calibration Byte programming performed!                  **
  **                                                                     **
  *-----------------------------------------------------------------------*

******************************************************************************
******************************************************************************
***------------------------------------------------------------------------***

 AT90USB647
 ------------

 NOTE: Device is shipped from factory in a "PROTECTED" State and MUST be
       Erased to allow any device operations.

 ***----------------------- Programmer Setup Flags -------------------------***
 NOTE: LB1 & LB2 are handled by Security Fuse 1 & 2 flags!
 Program Security fuse 1: Lock Bit 1
 Program Security fuse 2: Lock Bit 2

 NOTE: Boot Lock Bit's in the Lock Bit Byte are programmed ONLY
       if Security Fuse 3 flag = Y.   Please see "Lock Bit Byte"
       information below for configuring device for "Boot Lock
       Byte" programming.

 Regarding Fuse High Byte and Fuse Low Byte:
 NOTE: Atmel DataSheet states Default Value from Factory is:
       Extended Fuse Byte=0xF3
       Fuse High Byte=0x9B
       Fuse Low Byte=0x5E

 NOTE: Programmer will read in the default Default Value from
       Factory as follows:
       Extended Fuse Byte=0xF3
       Fuse High Byte=0x9B
       Fuse Low Byte=0x5E

 NOTE: The "Extended Fuse Byte", "Fuse High Byte" and "Fuse Low Byte"
       are NOT erased. These three bytes are ONLY modified during a
       programming operation IF the "Program configuration" flag is
       enabled.

 UniFam programmers refer to the "Extended Fuse Byte", "Fuse High Byte"
 and "Fuse Low Byte" data as "Configuration Bytes".  To program this
 data using the Hiterm interface you must enable (set to Yes) the
 "Program Configuration" flag in Hiterm.
 If you are using TaskLink interface you must enable the "Special
 Data #1" flag.  To set this flag in TaskLink you must navigate
 to the following Dialog box:
 Setup -> Programmer Properties... -> "Special" Dialog tab

 ***---------------------- Format of Fuse High Byte ------------------------***
 NOTE: For Bits defined below Atmel DataSheet states Default Factory Value are:
 Extended Fuse Byte=0xF3; Fuse High Byte=0x9B; Fuse Low Byte=0x5E
 *----------------------------*
 User RAM Address = 0x10800 hex
 *----------------------------*
Fuse High Byte, Bit 7   :OCDEN; Enable OCD: disabled = 1
                                          : Enabled = 0

Fuse High Byte, Bit 6   : JTAGEN; JTAG support: Enabled  = 0
                                              : Disabled = 1

Fuse High Byte, Bit 5   : SPIEN; SPI Program/Data Downloading: Enable  = 0
                                                             : Disable = 1

Fuse High Byte, Bit 4   : WDTON; Watchdog Timer always on: Disable = 1
                                                         : Enable  = 0

Fuse High Byte, Bit 3   : EESAVE; Erase EEPROM during Chip Erase: Yes = 1
                                                                : No  = 0

Fuse High Byte, Bit 2,1:
 BOOTS Z1,Z0; Boot Size Configuration: 4096 Words: Z1,Z0 = 00
                                     : 2048 Words: Z1,Z0 = 01
                                     : 1024 Words: Z1,Z0 = 10
                                     :  512 Words: Z1,Z0 = 11

Fuse High Byte, Bit 0   : BOOTRST; Reset Vector: Application Reset($0000) = 1
                                               : Boot Loader Reset        = 0

 ***---------------------- Format of Fuse Low Byte -------------------------***
 NOTE: For Bits defined below Atmel DataSheet states Default Factory Value are:
 Extended Fuse Byte=0xF3; Fuse High Byte=0x9B; Fuse Low Byte=0x5E
 *----------------------------*
 User RAM Address = 0x10801 hex
 *----------------------------*
Fuse Low Byte, Bit 7    : CKDIV8; Divide clock by: Enabled = 0
                                                 : Disabled = 1

Fuse Low Byte, Bit 6    : CKOUT; system clock on the CLKO pin: Disabled = 1
                                                             : Enable   = 0

Fuse Low Byte, Bit 5,4  : SUT1,SUT0
Select start-up time Configuration: SUT1,SUT0 = 0,0
                                  : SUT1,SUT0 = 0,1; default
                                  : SUT1,SUT0 = 1,0
                                  : SUT1,SUT0 = 1,1

Fuse Low Byte, Bit 3->0 :
Device Clocking Option:
CKSEL3..0:
     1111; Low Power Crystal Oscillator
     1110; Low Power Crystal Oscillator; default
     1101; Low Power Crystal Oscillator
     1100; Low Power Crystal Oscillator
     1011; Low Power Crystal Oscillator
     1010; Low Power Crystal Oscillator
     1001; Low Power Crystal Oscillator
     1000; Low Power Crystal Oscillator
     0111; Reserved
     0110; Reserved
     0101; Low Frequency Crystal Oscillator
     0100; Low Frequency Crystal Oscillator
     0011; Reserved
     0010; Calibrated Internal RC Oscillator
     0001; Reserved
     0000; External Clock

The device is shipped with:
SUT = 01
CKSEL = 1110

The device is shipped with Low Power Crystal Oscillator (8.0MHz-max) enabled and with the
fuse CKDIV8 programmed, resulting in 1.0MHz system clock (with a 8 MHz Crystal). The default
fuse configuration is CKSEL = "1110", SUT = "01", CKDIV8 = "0". This default setting ensures
that all users can make their desired clock source setting using any available programming
interface.


 ***---------------------- Format of Extended Fuse Byte --------------------***
 NOTE: For Bits defined below Atmel DataSheet states Default Factory Value are:
 Extended Fuse Byte=0xF3; Fuse High Byte=0x9B; Fuse Low Byte=0x5E
 *----------------------------*
 User RAM Address = 0x10802 hex
 *----------------------------*
Extended Fuse Byte, Bit 3   : HWBE; Hardware Boot Enable: Off = 0
                                                        : On  = 1

Extended Fuse Byte, Bit 2,1,0     : BODLEVEL2,BODLEVEL1,BODLEVEL0 = 1,1,1
                                  : BODLEVEL2,BODLEVEL1,BODLEVEL0 = 1,1,0
                                  : BODLEVEL2,BODLEVEL1,BODLEVEL0 = 1,0,1
                                  : BODLEVEL2,BODLEVEL1,BODLEVEL0 = 1,0,0
                                  : BODLEVEL2,BODLEVEL1,BODLEVEL0 = 0,1,1; default
                                  : BODLEVEL2,BODLEVEL1,BODLEVEL0 = 0,1,0
                                  : BODLEVEL2,BODLEVEL1,BODLEVEL0 = 0,0,1
                                  : BODLEVEL2,BODLEVEL1,BODLEVEL0 = 0,0,0

***------------------- Format of Lock Bit Byte BLB1 Mode ------------------***
*------------------------------------*
User RAM Address = 10803 hex; Bits 1,0
*------------------------------------*
Lock Bit Byte:  Bit 5,4    BLB 11 & 12
BLB1 Mode: 1 (BLB12,BLB11 = 1,1)
         : 2 (BLB12,BLB11 = 1,0)
         : 3 (BLB12,BLB11 = 0,0)
         : 4 (BLB12,BLB11 = 0,1)

***------------------- Format of Lock Bit Byte BLB0 Mode ------------------***
*------------------------------------*
User RAM Address = 10804 hex; Bits 1,0
*------------------------------------*
Lock Bit Byte:  Bit 3,2    BLB 01 & 02
BLB0 Mode: 1 (BLB02,BLB01 = 1,1)
         : 2 (BLB02,BLB01 = 1,0)
         : 3 (BLB02,BLB01 = 0,0)
         : 4 (BLB02,BLB01 = 0,1)


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

