xenial (1) dfu-programmer.1.gz

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

NAME

       dfu-programmer - USB firmware upgrading for Atmel microcontrollers

SYNOPSIS

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

DESCRIPTION

       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.

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, 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

USAGE

       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.

       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] [--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 decimal.

       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 image.

       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.

       setsecure
              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.

       reset
              Resets microcontroller using watchdog timer

       start
              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

BUGS

       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.  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.

AUTHOR

       Weston Schmidt <weston_schmidt@alumni.purdue.edu>

SEE ALSO

       http://dfu-programmer.sourceforge.net                             http://www.atmel.com/Images/doc7618.pdf
       http://www.atmel.com/Images/doc32131.pdf                          http://www.atmel.com/Images/doc8457.pdf
       http://www.atmel.com/Images/doc7745.pdf

       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