3 Programmer

Use JTAG ICE if possible. The official one from Atmel is quite expensive, but it supports all AVR devices. There are plenty of JTAG ICE version 1 clones out there for much less. If your device is supported by a JTAG ICE version 1, you can save a lot of money by going with a clone.

The ET-AVR JTAG USB is a JTAG ICE version 1 clone, but it is also slightly improved. It uses an USB connection to the development computer instead of a serial port. This makes the device much more useful for newer machines, particularly notebook computers.

Because the original JTAG ICE version 1 uses a serial port, the ET-AVR JTAG USB basically has a built-in USB-serial converter. It takes a little extra configuration to get this to work for most Linux boxes.

In order for the driver to load automatically, login as root (or use sudo), then create a file at the path /etc/udev/rules.d/80-etavrjtagusb.rules with the following content:

ATTRS{idVendor}=="0403", ATTRS{idProduct}=="e2e5", RUN+="/sbin/modprobe -q ftdi_sio product=0xe2e5 vendor=0x0403"  
  

With this file, whenever the programming is plugged in (identified by the vendor ID and product ID), the udev dynamic device management system matches the rule specified in the file. This rule specifies to run the modprobe command with the product and vendor parameters. This loads the necessary driver, and creates a new TTY device. If you don’t have any other USB-serial converter, the device will be at /dev/ttyUSB0. If you have one already, then the number at the end of the device path increases.