Overview of the avr programmer – Digilent AVR Programmer User Manual
Page 2
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