This is an old revision of the document!



Burning the Firmware on the USBasp Programer


Set Fusebits

# TARGET=atmega8    HFUSE=0xc9  LFUSE=0xef
# TARGET=atmega48   HFUSE=0xdd  LFUSE=0xff
# TARGET=atmega88   HFUSE=0xdd  LFUSE=0xff

Workaround for Atmega8

1. Erase:

$ sudo avrdude  -p atmega8 -c stk500v2 -P /dev/ttyACM0 -e

2. Set Fusebits

$ sudo avrdude  -p atmega8 -c stk500v2 -P /dev/ttyACM0 -U HFUSE:w:0xc9:m
$ sudo avrdude  -p atmega8 -c stk500v2 -P /dev/ttyACM0 -U hfuse:w:0xc9:m

3. Burn the Hex File:

$ sudo avrdude  -p atmega8 -c stk500v2 -P /dev/ttyACM0 -b115200 -U flash:w:usbasp.atmega8.2011-05-28.hex:i

Comands for the AVRdude

Options: -p <partno> Required. Specify AVR device. -b <baudrate> Override RS-232 baud rate. -B <bitclock> Specify JTAG/STK500v2 bit clock period (us). -C <config-file> Specify location of configuration file. -c <programmer> Specify programmer type. -D Disable auto erase for flash memory -i <delay> ISP Clock Delay [in microseconds] -P <port> Specify connection port. -F Override invalid signature check. -e Perform a chip erase. -O Perform RC oscillator calibration (see AVR053). -U <memtype>:r|w|v:<filename>[:format]

                           Memory operation specification.
                           Multiple -U options are allowed, each request
                           is performed in the order specified.

-n Do not write anything to the device. -V Do not verify. -u Disable safemode, default when running from a script. -s Silent safemode operation, will not ask you if

                           fuses should be changed back.

-t Enter terminal mode. -E <exitspec>[,<exitspec>] List programmer exit specifications. -x <extended_param> Pass <extended_param> to programmer. -y Count # erase cycles in EEPROM. -Y <number> Initialize erase cycle # in EEPROM. -v Verbose output. -v -v for more. -q Quell progress output. -q -q for less. -? Display this usage.