beautypg.com

Pololu USB AVR User Manual

Page 50

background image

able to communicate. Please make sure that the ISP pins as numbered in

Section 1.a

are correctly connected

between your AVR and your programmer (i.e. 1 goes to 1, 2 goes to 2, etc.).

• The target AVR must be powered for programming to work. Please make sure that your target device has
power and is turned on. If you are using AVR Studio 5 or Atmel Studio, you can get a reading of your AVR’s
VCC voltage by clicking the “Read” button next to the Target Voltage box in the upper right corner of the Device
Programming dialog.

• If the target AVR is running at a voltage lower than 5 V, you may need to decrease the minimum allowed target
VDD setting using the configuration utility (

Section 3.e

). Please note that you might need to take additional

special steps to safely program an AVR that is running off of a voltage below VUSB-0.5 V.

• Your programmer’s ISP frequency must be less than a quarter of your target AVR’s clock frequency, but
frequencies that are too low can result in timeouts. The default frequency of 200 kHz should work for most
AVRs. Try setting the ISP frequency to 200 kHz using the configuration utility (

Section 3.e

) or by supplying the

-B 3

option to AVRDUDE.

• If the red error LED is on solid, then run the configuration utility (

Section 3.e

) to determine the cause of the

error.

• There may be a problem with the target device. It is possible to kill a device with a static shock, by incorrectly
connecting power, or by programming the fuses incorrectly. There could also be a short or cut trace somewhere
on your target device. The ideal way to test for this is to try programming a different device with your USB
AVR programmer, or try using a different programmer to program your target device. If this is not an option,
try verifying that the target device is still functional and perform some continuity tests to check for shorts or
disconnections on the ISP programming lines. Don’t forget to check the 6-pin ISP cable for shorts as well.

If /dev/ttyACM0 or /dev/ttyACM1 do not exist in Linux:

• Try closing all programs using the programmer, unplugging the programmer, and plugging it back in.

• If the programmer is connected, the

lsusb

command should output a line like this (the important thing is the

1ffb:0081):

Bus 002 Device 002: ID 1ffb:0081

• If the CDC ACM driver detected the programmer when it was plugged in, then the

dmesg

command should

have some output like this:

[ 26.378771] /build/buildd/linux-2.6.24/drivers/usb/class/cdc-acm.c: This

device cannot do calls on its own. It is no modem.

[ 26.380858] cdc_acm 2-1:1.0: ttyACM0: USB ACM device

[ 26.413512] /build/buildd/linux-2.6.24/drivers/usb/class/cdc-acm.c: This

device cannot do calls on its own. It is no modem.

[ 26.413542] cdc_acm 2-1:1.2: ttyACM1: USB ACM device

[ 26.421314] usbcore: registered new interface driver cdc_acm

[ 26.421333] /build/buildd/linux-2.6.24/drivers/usb/class/cdc-acm.c: v0.25:USB

Abstract Control Model driver for USB modems and ISDN adapters

If the CDC ACM driver is associated with both serial ports of the programmer, then the

/dev/bus/usb/

devices

file (or

/proc/bus/usb/devices

) should have a group of lines like this (the important thing is that

Driver=cdc_acm should appear in four places):

T: Bus=02 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 2 Spd=12 MxCh= 0

D: Ver= 2.00 Cls=ef(unk. ) Sub=02 Prot=01 MxPS= 8 #Cfgs= 1

P: Vendor=1ffb ProdID=0081 Rev= 0.01

S: Manufacturer=Pololu Corporation

S: Product=Pololu USB AVR Programmer

S: SerialNumber=00000005

C:* #Ifs= 5 Cfg#= 1 Atr=80 MxPwr=100mA

A: FirstIf#= 0 IfCount= 2 Cls=02(comm.) Sub=02 Prot=01

A: FirstIf#= 2 IfCount= 2 Cls=02(comm.) Sub=02 Prot=01

I:* If#= 0 Alt= 0 #EPs= 1 Cls=02(comm.) Sub=02 Prot=01 Driver=cdc_acm

E: Ad=81(I) Atr=03(Int.) MxPS= 10 Ivl=1ms

I:* If#= 1 Alt= 0 #EPs= 2 Cls=0a(data ) Sub=00 Prot=00 Driver=cdc_acm

Pololu USB AVR Programmer User's Guide

© 2001–2014 Pololu Corporation

8. Troubleshooting

Page 50 of 54