MAN page from OpenSuSE dfu-programmer-0.7.2-1.1.x86_64.rpm
Updated: May 28, 2014Index
dfu-programmer - USB firmware upgrading for Atmel microcontrollers
target[:usb-bus,usb-addr] command [options] [parameters]dfu-programmer
is a multi-platform command line Device Firmware Upgrade (DFU) based programmerfor the flash memory on Atmel AVR, AVR32, XMEGA and 8051 based microcontrollerswhich ship with a USB boot loader.It supports In System Programming (ISP) for developers and potentiallyproduct updates in the field.Those boot loaders are patterned after the standard USB DFU 1.0 classspecification, but depend on extensions defined by Atmel to the extentthat standard DFU drivers will not work.
To use it, first connect the device to be programmed and ensure that itcomes 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 preventreverse engineering of what is usually proprietary code.
These chip names are used as the command line "target" parameter.
- 8051 based controllers:
- at89c51snd1c, at89c51snd2c, at89c5130, at89c5131,at89c5132
- AVR based controllers:
- at90usb1287, at90usb1286, at90usb1287-4k, at90usb1286-4k,at90usb647, at90usb646, at90usb162, at90usb82,atmega32u6, atmega32u4, atmega32u2, atmega16u4,atmega16u2, atmega8u2
- AVR32 based controllers:
- at32uc3a0128, at32uc3a1128, at32uc3a0256, at32uc3a1256,at32uc3a0512, at32uc3a1512, at32uc3a0512es, at32uc3a1512es,at32uc3a364, at32uc3a364s, at32uc3a3128, at32uc3a3128s,at32uc3a3256, at32uc3a3256s, at32uc3a4256s, at32uc3b064,at32uc3b164, at32uc3b0128, at32uc3b1128, at32uc3b0256,at32uc3b1256, at32uc3b0256es, at32uc3b1256es, at32uc3b0512,at32uc3b1512, at32uc3c064, at32uc3c0128, at32uc3c0256,at32uc3c0512, at32uc3c164, at32uc3c1128, at32uc3c1256,at32uc3c1512, at32uc3c264, at32uc3c2128, at32uc3c2256,at32uc3c2512
- XMEGA based controllers:
- atxmega64a1u, atxmega128a1u, atxmega64a3u, atxmega128a3u,atxmega192a3u, atxmega256a3u, atxmega16a4u, atxmega32a4u,atxmega64a4u, atxmega128a4u, atxmega256a3bu, atxmega64b1,atxmega128b1, atxmega64b3, atxmega128b3, atxmega64c3,atxmega128c3, atxmega256c3, atxmega384c3, atxmega16c4,atxmega32c4
There are no mechanisms to implement gang programming.By default, the first device that matches the id codes for thegiven target is selected. Many targets share the same id codes.Accordingly, you will usually avoid connecting more than onedevice of a given family (AVR, XMEGA, AVR32 or 8051) at a time.
The target may be qualified with the USB bus and address numberof the device you wish to program. This allows programming multipledevices of the same family at the same time.
All of these commands support the "global options".Unless you override it,commands which write to the microcontroller will performa validation step that rereads the data which was written,compares it to the expected result, and reports any errors.
Note that unlike Atmel's BatchISP program, dfu-programmer willonly perform a single operation at a time. Erasing and programmingrequire separate commands.
Bootloaders for 8051 based controllers support writing certainconfiguration bytes.
- Reads the program memory in flash and output non-blank pages in ihex formatto stdout. Use --force to output the entire memory and --bin for binaryoutput. User page and eeprom are selected using --user and --eeprom.
- Erases all the flash memory. For AT90 and ATmega type devices achip erase must be performed before other commands become available.Erase first checks if the memory is blank unless --force flag is set.
- file or STDIN
Writes flash memory. The input file (or stdin) must use the "ihex" fileformat convention for a memory image. --suppress-bootloader-memignores any data written to the bootloader memory space when flashingthe device. This option is particularly useful for the AVR32 chips.The --force flag tells the program to ignore whether memory insidethe program region is blank.User page and eeprom are selected using --user and --eeprom.The user space flash on AVR32 chips lies outside of the normal rangeof flash blocks and is designed to contain configuration parameters.Bootloader configuration uses the last 4 to 8 bytes of the user page.If this data is corrupted, the device will restart into thebootloader until valid data is used (see atmel doc7745 or doc32166).--force is always required here.
--serial provides a way to inject a serial number or other uniquesequence of bytes into the memory image programmed into thedevice. This allows using a single .ihex file to program multipledevices, and still give each device its own unique serial number. Forexample, --serial=ABCDEF01:0x6000 would program the byte at 0x6000with the hex value AB, the byte at 0x6001 with the value CD, and soon. There must be an even number of hex digits, but the sequence canbe any length. The offset is assumed to be given in hex if it startswith a "0x" prefix, octal if it begins with a "0", otherwise is itassumed to be decimal.
- Sets the security bit on AVR32 chips. This prevents the content beingread back from the chip, except in the same session in which it wasprogrammed. When the security fuse is set, almost nothing will workwithout first executing the erase command. The only way to clear thesecurity fuse once set is to use a JTAG chip erase, which will alsoerase the bootloader.
Displays various product identifier bytes.
- Launch the application by resetting the device. The --no-reset flagcan be used to launch the device without a reset (jump to the startaddress of the program).
--quiet - minimizes the output
--debug level - enables verbose output at the specified level
The standard bootloader for 8051 based chips supports writingdata bytes which are not relevant for the AVR based chips.
BSB - boot status byte
SBV - software boot vector
SSB - software security byte
EB - extra byte
HSB - hardware security byte
bootloader-version - currently flashed bootloader version
ID1 - device boot identification 1
ID2 - device boot identification 2
manufacturer - the hardware manufacturer code
family - the product family code
product-name - the product name
product-revision - the product revision
HSB - same as the configure_register version
BSB - same as the configure_register version
SBV - same as the configure_register version
SSB - same as the configure_register version
EB - same as the configure_register version
The at90usb series chips do not make available any read/write protectflags so thedump
command may fail with a less than helpful error message.
To removeanywrite or read protection from any chips, a full chip erasure is required.For AVR32 chips an erase operation over USB will remove protection until thedevice is rebooted. To remove the protection more permanently requires aJTAG erase (which will also erase the bootloader).
You may need to be a member of theuucpgroup in order to have access to the device without needing to be root.
Weston Schmidt <weston_schmidtAATTalumni.purdue.edu>
Copyright (C) 2005-2014 Weston Schmidt
This program is free software; you can redistribute it and/or modifyit under the terms of the GNU General Public License as published bythe Free Software Foundation; either version 2 of the License, or(at your option) any later version.
This program is distributed in the hope that it will be useful,but WITHOUT ANY WARRANTY; without even the implied warranty ofMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See theGNU General Public License for more details.
You should have received a copy of the GNU General Public Licensealong with this program; if not, write to the Free SoftwareFoundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
- SUPPORTED MICROCONTROLLERS
- Global Options
- Configure Registers
- Get Register
- KNOWN ISSUES
- SEE ALSO
This document was created byman2html,using the manual pages.