This page describes, how to reflash the USB bootloader for AVR microcontrollers with USB interface. A reflash might be necessary, if the chip was programmed very often or programming failed. It is also indispensable, if the chip was programmed via ISP and it is desired now, to flash via bootloader and Atmel FLIP.
The bootloader has to be reprogrammed by in-system-programming (ISP). For this reason, an ISP programmer such like Atmel AVRISP mkII or Atmel JTAGICE mkII (or any compatible programmer) is needed. You can use the Atmel AVR Studio and the ISP programming dialogue or any other programming tool (such like AVRDUDE).
You have to use the bootloader file. Choose the corresponding file for your microcontroller, listened in the following table. The EEPROM can be erased, but is not necessary (not used by the bootloader). The table is also listening the Atmel factory default settings of the fuses and lock bits. It is not necessary (but may be recommended), to program your controller in this way. There is only one exception: The high fuses are containing the BOOTSZ bits, which determines the bootloader start address. This bits has to be leaved in the state as the table shows in the corresponding high fuse byte.
Device | Microcontroller | Ext. Fuses | High Fuses | Low Fuses | Lock Bits | Bootloader File | |
AT90USB82 | bl_usb82_105.a90 | ||||||
U2DIL | AT90USB162 | 0xF4 | 0xD9 | 0x5E | 0xEC | bl_usb_162v105.a90 | |
ATMEGA8U2 | EBE_1_0_0.hex | ||||||
U2DIL | ATMEGA32U2 | 0xF4 | 0xD9 | 0x5E | 0xEC | boot_mega32u2_v100.a90 | |
ATMEGA16U4 | bl_usb_16U4.a90 | ||||||
U4DIL | ATMEGA32U4 | 0xF3 | 0x99 | 0x5E | 0xEC | bl_usb_32U4.a90 | |
AT90USB646/647 | 64X-usb-boot-1-0-0.a90 | ||||||
U6DIL | AT90USB1286/1287 | 0xF3 | 0x99 | 0x5E | 0xEC | 128X-usb-boot-1-0-1.hex | |
ATXMEGA16A4U | atxmega16a4u_..._103.hex | ||||||
X4DIL | ATXMEGA32A4U | 0x00 | 0xBF | 0xF3 | 0xFF | atxmega32a4u_..._103.hex | |
ATXMEGA64A4U | atxmega64a4u_..._103.hex | ||||||
X4DIL | ATXMEGA128A4U | atxmega128a4u_..._103.hex | |||||
ATXMEGA64A3U | atxmega64a3u_..._103.hex | ||||||
ATXMEGA128A3U | atxmega128a3u_..._103.hex | ||||||
ATXMEGA192A3U | atxmega192a3u_..._103.hex | ||||||
X3DIL | ATXMEGA256A3U | atxmega256a3u_xxx_103.hex | |||||
ATXMEGA256A3BU | atxmega256a3bu_...103.hex | ||||||
ATXMEGA128A1U | atxmega128a1u_..._103.hex | ||||||
ATXMEGA64B3U | atxmega64b3_..._103.hex | ||||||
ATXMEGA128B3 | atxmega128b3_..._103.hex | ||||||
ATXMEGA64B1U | atxmega64b1_..._103.hex | ||||||
ATXMEGA128B1 | atxmega128b1_..._103.hex |
The bootloader files, contained in the table, are original files from Atmel. Most of them can't be found on the Atmel homepage. Publication with friendly approval of Atmel Corp.. No warranty!