table of contents
DFU-PROGRAMMER(1) | DFU-PROGRAMMER(1) |
NAME¶
dfu-programmer - USB firmware upgrading for Atmel microcontrollersSYNOPSIS¶
dfu-programmer target command [options] [parameters]DESCRIPTION¶
dfu-programmer is a Linux command line Device Firmware Upgrade (DFU) based programmer for the flash memory on Atmel AVR, AVR32 and 8051 based microcontrollers which ship with a USB boot loader. It supports In System Programming (ISP) for developers and potentially product updates in the field. Those boot loaders are patterned after the standard USB DFU 1.0 class specification, but depend on extensions defined by Atmel to the extent that standard DFU drivers will not work. To use it, first connect the device to be programmed and ensure that it comes up in DFU mode. The microcontrollers come up in that mode as shipped by Atmel; or they may reenter that mode after a special hardware reset. Then invoke this program to issue one or more DFU commands. You will normally need to start by issuing the "erase" command; the default security policies prevent extracting firmware, to prevent reverse engineering of what is usually proprietary code.SUPPORTED MICROCONTROLLERS¶
These chip names are used as the command line "target" parameter.- 8051 based controllers:
- at89c51snd1c, at89c51snd2c, at89c5130, at89c5131, and at89c5132.
- AVR based controllers:
- at90usb1287, at90usb1286, at90usb647, at90usb646, at90usb162, at90usb82, atmega32u6, atmega32u2, atmega32u4, atmega8u2 and atmega16u4.
- AVR32 based controllers:
- at32uc3a0128, at32uc3a1128, at32uc3a0256, at32uc3a1256,
at32uc3a0512, at32uc3a1512, at32uc3a0512es, at32uc3a1512es, at32uc3a364,
at32uc3a364s, at32uc3a3128, at32uc3a3128s, at32uc3a3256, at32uc3a3256s,
at32uc3b064, at32uc3b164, at32uc3b0128, at32uc3b1128, at32uc3b0256,
at32uc3b1256, at32uc3b0256es, at32uc3b1256es, at32uc3b1512, at32uc3b0512,
at32uc3c064, at32uc3c0128, at32uc3c0256, at32uc3c0512, at32uc3c164,
at32uc3c1128, at32uc3c1256, at32uc3c1512, at32uc3c264, at32uc3c2128,
at32uc3c2256 and at32uc3c2512.
USAGE¶
There are no mechanisms for selecting which single device should be programmed, or to implement gang programming. Accordingly, you will usually avoid connecting more than one device of a given family (AVR, AVR32 or 8051) at a time. All of these commands support the "global options". Unless you override it, commands which write to the microcontroller will perform a validation step that rereads the data which was written, compares it to the expected result, and reports any errors.configure
register [--suppress-validation] data
Bootloaders for 8051 based controllers support writing certain configuration
bytes.
dump
Reads all the available flash memory, and writes it as binary data to
stdout.
dump-eeprom
Reads all the available eeprom memory, and writes it as binary data to
stdout.
dump-user
Reads the user space flash on the AVR32 chips and writes it as binary data to
stdout.
erase
[--suppress-validation]
Erases all the flash memory. This is required before the bootloader will perform
other commands.
flash
[--suppress-validation] [--suppress-bootloader-mem] file or STDIN
Writes flash memory. The input file (or stdin) must use the "ihex"
file format convention for a memory image. --suppress-bootloader-mem ignores
any data written to the bootloader memory space when flashing the device. This
option is particularly useful for the AVR32 chips trampoline
code.
flash-user
[--suppress-validation] file or STDIN
Writes to user space flash on the AVR32 chips. This block of flash is out of the
normal range of flash blocks and is designed to contain configuration
parameters. The input file (or stdin) mus use the "ihex" file format
convention for a memory image.
eeprom-flash
[--suppress-validation] file or STDIN
Writes to eeprom memory. The input file (or stdin) must use the "ihex"
file format convention for a memory image.
get
register
Displays various product identifier bytes.
reset
Resets microcontroller using watchdog timer
start
Starts the application firmware by having the microcontroller jump to address
zero.
version
This prints a string identifying the version of this utility.
Global Options¶
--quiet - minimizes the outputConfigure Registers¶
The standard bootloader for 8051 based chips supports writing data bytes which are not relevant for the AVR based chips. BSB - boot status byteGet Register¶
bootloader-version - currently flashed bootloader versionBUGS¶
None known.KNOWN ISSUES¶
The at90usb series chips do not make available any read/write protect flags so the dump or flash command may fail with a less than helpful error message. To remove any write or read protection from any chips, a full chip erasure is required. You may need to be a member of the uucp group in order to have access to the device without needing to be root.AUTHOR¶
Weston Schmidt <weston_schmidt@alumni.purdue.edu>SEE ALSO¶
http://dfu-programmer.sourceforge.net http://atmel.com/dyn/resources/prod_documents/doc7745.pdfCOPYRIGHT¶
Copyright (C) 2005-2008 Weston SchmidtDecember 10, 2008 | DFU-PROGRAMMER |