Programmer Manual
Digilent AVR Programmer Reference Manual         Digilent, Inc. 
www.digilentinc.com    page 2 of 8 
Copyright Digilent, Inc. All rights reserved. Other product and company names mentioned may be trademarks of their respective owners.
The file format used to hold the data for 
programming the flash and EEPROM 
memories is the Intel HEX file format. Intel 
HEX is an industry standard file format used 
for device programming files. Software 
development tools designed to work with AVR 
parts produce Intel HEX format files. There are 
two files produced by the development tools. 
One contains the data to be programmed into 
the program flash memory, and the other 
contains the data to be programmed into the 
data EEPROM. When the AVR Programmer is 
used to read back the contents of device 
memory, an Intel HEX format file is generated. 
Fuses are control bits that establish the basic 
operating modes of the device. These control 
such things as the clock source, enabling the 
watchdog timer, setting compatibility modes, 
and so on. The number and meaning of the 
fuse bits vary between the different AVR 
devices. Device fuses are configured using 
the Fuses tab in the AVR Programmer. 
Warning! Use caution when setting the clock 
source in the fuses. The in-system 
programming protocol uses the clock source 
currently selected by the fuses to clock the 
internal programming state machine. If the 
fuses are set to select a non-functioning clock 
source (such as the external crystal oscillator 
when no crystal is provided on the board), the 
in-system programming interface will stop 
functioning. This will render the board/device 
unusable and usually requires unsoldering the 
device from the board and replacing it with a 
new, un-programmed, device. AVR devices 
come from the factory with the fuses set to use 
an internal oscillator to guarantee that the in-
system programming interface will work in all 
circumstances. 
The lock bits are used to lock different parts of 
the device memory. This is done to prevent 
reprogramming and/or reading back the 
contents of memory to prevent the altering or 
reverse engineering of a design. Once a lock 
bit is set, that portion of the memory can’t be 
reprogrammed or read back, depending on the 
specific lock bit setting, until the entire device 
is erased. The number and meaning of the lock 
bits vary between different AVR devices. Lock 
bits are configured using the Lock Bits tab in 
the AVR Programmer. 
Overview of the AVR Programmer 
Communication 
The AVR in-system programming protocol 
uses the serial peripheral interface (SPI) for 
the communications channel between the PC 
and the device being programmed. Digilent 
has two different programming cables that can 
be used to provide the communications 
interface: the Digilent Parallel JTAG cable and 
the Digilent JTAG-USB cable. 
Digilent programming cables conform to the 
JTAG standard and therefore bear the JTAG 
signal names instead of the SPI signal names. 
Observe the following label conventions when 
connecting the cable to a board: 
  TMS = SS or RST 
  TDI = MOSI 
 TDO = MISO 
  TCK = SCK 
The parallel cable connects to the parallel 
printer port on a PC and to the Digilent 6-pin 
programming connector on the board being 
programmed. The AVR Programmer 
implements the SPI interface over the parallel 
port. The GIVEIO.SYS device driver must be 
installed to provide access to the parallel port. 
GIVEIO.SYS is automatically installed when 
the AVR programmer is installed. 
The JTAG-USB cable connects a USB port on 
the PC and the 6-pin connector on the board 
being programmed. Firmware in the USB cable 
provides the SPI implementation. The AVR 
Programmer communicates with the USB 
cable using the drivers provided for that cable 
(specify the cable on the Programmer Settings 
tab). 
Device Parameters 
The AVR Programmer is designed to work with 
any AVR device that supports the in-system 
programming protocol. In order to work with 








