Provided by: dfu-programmer_0.6.1-1build1_amd64 bug


       dfu-programmer - USB firmware upgrading for Atmel microcontrollers


       dfu-programmer target[:usb-bus,usb-addr] command [options] [parameters]
       dfu-programmer --help
       dfu-programmer --targets
       dfu-programmer --version


       dfu-programmer  is  a  multi-platform  command  line  Device  Firmware Upgrade (DFU) based
       programmer for the flash memory on Atmel AVR, AVR32, XMEGA 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.


       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, atmega32u4, atmega32u2, atmega16u4, atmega16u2 and 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,    at32uc3b1512,    at32uc3b0512,    at32uc3c064,
              at32uc3c0128,  at32uc3c0256, at32uc3c0512, at32uc3c164, at32uc3c1128, at32uc3c1256,
              at32uc3c1512, at32uc3c264, at32uc3c2128, at32uc3c2256 and at32uc3c2512.

       XMEGA based controllers:
              atxmega64a1u,   atxmega128a1u,    atxmega64a3u,    atxmega128a3u,    atxmega192a3u,
              atxmega256a3u,    atxmega16a4u,    atxmega32a4u,    atxmega64a4u,    atxmega128a4u,
              atxmega256a3bu, atxmega64b1, atxmega128b1, atxmega64b3, atxmega128b3,  atxmega64c3,
              atxmega128c3, atxmega256c3, atxmega384c3


       There  are no mechanisms to implement gang programming.  By default, the first device that
       matches the id codes for the given target is selected. Many  targets  share  the  same  id
       codes.   Accordingly,  you  will  usually avoid connecting more than one device of a given
       family (AVR, XMEGA, AVR32 or 8051) at a time.

       The target may be qualified with the USB bus and address number of the device you wish  to
       program. This allows programming multiple devices 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 perform a 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 will only perform a single
       operation at a time. Erasing and programming require separate commands.

       configure register [--suppress-validation] data
              Bootloaders for 8051 based controllers support writing certain configuration bytes.

              Reads all the available flash memory, and writes it as binary data to stdout.

              Reads all the available eeprom memory, and writes it as binary data to stdout.

              Reads the user space flash on the AVR32 chips and  writes  it  as  binary  data  to

       erase [--suppress-validation]
              Erases  all  the flash memory.  This is required before the bootloader will perform
              other commands.

       flash [--suppress-validation] [--suppress-bootloader-mem] [--serial=hexbytes:offset]  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.

       --serial provides a way to inject a serial number or other unique sequence of  bytes  into
       the  memory  image  programmed  into  the device. This allows using a single .ihex file to
       program multiple devices, and still give each device its own  unique  serial  number.  For
       example,  --serial=ABCDEF01:0x6000 would program the byte at 0x6000 with the hex value AB,
       the byte at 0x6001 with the value CD, and so on. There must  be  an  even  number  of  hex
       digits, but the sequence can be any length. The offset is assumed to be given in hex if it
       starts with a "0x" prefix, octal if it begins with a "0", otherwise is it  assumed  to  be

       flash-user [--suppress-validation] [--serial=hexbytes:offset] 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) must use the "ihex" file format convention for a memory

       flash-eeprom [--suppress-validation] [--serial=hexbytes:offset] file or STDIN
              Writes to eeprom memory.  The input file (or stdin) must use the "ihex" file format
              convention for a memory image.

              Sets  the  security  bit on AVR32 chips.  This prevents the content being read back
              from the chip, except in the same session in which it  was  programmed.   When  the
              security  fuse  is  set, almost nothing will work without first executing the erase
              command.  The only way to clear the security fuse once set is to use  a  JTAG  chip
              erase, which will also erase the bootloader.

       get register
              Displays various product identifier bytes.

              Resets microcontroller using watchdog timer

              Starts the application firmware by having the microcontroller jump to address zero.

   Global Options
       --quiet - minimizes the output

       --debug level - enables verbose output at the specified level

   Configure Registers
       The  standard  bootloader  for  8051 based chips supports writing data 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

   Get Register
       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


       None known.


       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.
       For AVR32 chips an erase operation over USB will remove protection  until  the  device  is
       rebooted. To remove the protection more permanently requires a JTAG erase (which will also
       erase the bootloader).

       You may need to be a member of the uucp group in  order  to  have  access  to  the  device
       without needing to be root.


       Weston Schmidt <>



       Copyright (C) 2005-2013 Weston Schmidt

       This program is free software; you can redistribute it and/or modify it under the terms of
       the GNU General Public License as  published  by  the  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 of MERCHANTABILITY or FITNESS FOR A PARTICULAR  PURPOSE.
       See the GNU General Public License for more details.

       You should have received a copy of the GNU General Public License along with this program;
       if not, write to the Free Software Foundation, Inc.,  51  Franklin  Street,  Fifth  Floor,
       Boston, MA 02110-1301, USA