1DFU-PROGRAMMER(1)                                            DFU-PROGRAMMER(1)
2
3
4

NAME

6       dfu-programmer - USB firmware upgrading for Atmel microcontrollers
7

SYNOPSIS

9       dfu-programmer target[:usb-bus,usb-addr] command [options] [parameters]
10       dfu-programmer --help
11       dfu-programmer --targets
12       dfu-programmer --version
13

DESCRIPTION

15       dfu-programmer is a multi-platform command line Device Firmware Upgrade
16       (DFU) based programmer for the flash memory on Atmel AVR, AVR32,  XMEGA
17       and  8051 based microcontrollers which ship with a USB boot loader.  It
18       supports In System Programming (ISP)  for  developers  and  potentially
19       product  updates  in the field.  Those boot loaders are patterned after
20       the standard USB DFU 1.0 class specification, but depend on  extensions
21       defined by Atmel to the extent that standard DFU drivers will not work.
22
23       To use it, first connect the device to be programmed and ensure that it
24       comes up in DFU mode.  The microcontrollers come up  in  that  mode  as
25       shipped  by  Atmel;  or  they  may  reenter  that  mode after a special
26       hardware reset.  Then invoke this program to  issue  one  or  more  DFU
27       commands.   You  will  normally  need  to  start by issuing the "erase"
28       command; the default security policies prevent extracting firmware,  to
29       prevent reverse engineering of what is usually proprietary code.
30

SUPPORTED MICROCONTROLLERS

32       These chip names are used as the command line "target" parameter.
33
34       8051 based controllers:
35              at89c51snd1c, at89c51snd2c, at89c5130, at89c5131, at89c5132
36
37       AVR based controllers:
38              at90usb1287,    at90usb1286,   at90usb1287-4k,   at90usb1286-4k,
39              at90usb647,  at90usb646,  at90usb162,   at90usb82,   atmega32u6,
40              atmega32u4, atmega32u2, atmega16u4, atmega16u2, atmega8u2
41
42       AVR32 based controllers:
43              at32uc3a0128,    at32uc3a1128,    at32uc3a0256,    at32uc3a1256,
44              at32uc3a0512,  at32uc3a1512,   at32uc3a0512es,   at32uc3a1512es,
45              at32uc3a364,    at32uc3a364s,    at32uc3a3128,    at32uc3a3128s,
46              at32uc3a3256,   at32uc3a3256s,    at32uc3a4256s,    at32uc3b064,
47              at32uc3b164,     at32uc3b0128,    at32uc3b1128,    at32uc3b0256,
48              at32uc3b1256,  at32uc3b0256es,   at32uc3b1256es,   at32uc3b0512,
49              at32uc3b1512,     at32uc3c064,    at32uc3c0128,    at32uc3c0256,
50              at32uc3c0512,    at32uc3c164,    at32uc3c1128,     at32uc3c1256,
51              at32uc3c1512,     at32uc3c264,    at32uc3c2128,    at32uc3c2256,
52              at32uc3c2512
53
54       XMEGA based controllers:
55              atxmega64a1u,   atxmega128a1u,   atxmega64a3u,    atxmega128a3u,
56              atxmega192a3u,    atxmega256a3u,   atxmega16a4u,   atxmega32a4u,
57              atxmega64a4u,   atxmega128a4u,   atxmega256a3bu,    atxmega64b1,
58              atxmega128b1,     atxmega64b3,     atxmega128b3,    atxmega64c3,
59              atxmega128c3,    atxmega256c3,    atxmega384c3,     atxmega16c4,
60              atxmega32c4
61
62

USAGE

64       There are no mechanisms to implement gang programming.  By default, the
65       first device that  matches  the  id  codes  for  the  given  target  is
66       selected.  Many targets share the same id codes.  Accordingly, you will
67       usually avoid connecting more than one device of a given  family  (AVR,
68       XMEGA, AVR32 or 8051) at a time.
69
70       The  target may be qualified with the USB bus and address number of the
71       device you wish to program. This allows programming multiple devices of
72       the same family at the same time.
73
74       All  of  these  commands  support  the  "global  options".   Unless you
75       override it, commands which write to the microcontroller will perform a
76       validation step that rereads the data which was written, compares it to
77       the expected result, and reports any errors.
78
79       Note that unlike Atmel's BatchISP  program,  dfu-programmer  will  only
80       perform  a  single operation at a time. Erasing and programming require
81       separate commands.
82
83       configure register [--suppress-validation] data
84              Bootloaders for 8051 based controllers support  writing  certain
85              configuration bytes.
86
87       dump [--force] [--bin] [(flash)|--user|--eeprom]
88              Reads  the program memory in flash and output non-blank pages in
89              ihex format to stdout.  Use --force to output the entire  memory
90              and  --bin for binary output.  User page and eeprom are selected
91              using --user and --eeprom.
92
93       erase [--force]
94              Erases all the flash memory.  For AT90 and ATmega type devices a
95              chip  erase  must  be  performed  before  other  commands become
96              available.  Erase first checks if the  memory  is  blank  unless
97              --force flag is set.
98
99       flash   [--force]   [(flash)|--user|--eeprom]   [--suppress-validation]
100              [--suppress-bootloader-mem] [--serial=hexbytes:offset]  file  or
101              STDIN
102              Writes  flash  memory.   The  input file (or stdin) must use the
103              "ihex"   file   format   convention   for   a   memory    image.
104              --suppress-bootloader-mem   ignores  any  data  written  to  the
105              bootloader memory space when flashing the device.   This  option
106              is  particularly  useful  for the AVR32 chips.  The --force flag
107              tells the program to ignore whether memory  inside  the  program
108              region is blank.  User page and eeprom are selected using --user
109              and --eeprom.  The user space flash on AVR32 chips lies  outside
110              of  the  normal range of flash blocks and is designed to contain
111              configuration parameters.   Bootloader  configuration  uses  the
112              last  4 to 8 bytes of the user page.  If this data is corrupted,
113              the device will restart into the bootloader until valid data  is
114              used  (see  atmel  doc7745  or  doc32166).   --force  is  always
115              required here.
116
117       --serial provides a way to inject  a  serial  number  or  other  unique
118       sequence  of  bytes  into  the memory image programmed into the device.
119       This allows using a single .ihex file to program multiple devices,  and
120       still  give  each  device  its  own  unique serial number. For example,
121       --serial=ABCDEF01:0x6000 would program the byte at 0x6000 with the  hex
122       value  AB,  the byte at 0x6001 with the value CD, and so on. There must
123       be an even number of hex digits, but the sequence can  be  any  length.
124       The  offset  is  assumed  to  be  given in hex if it starts with a "0x"
125       prefix, octal if it begins with a "0", otherwise is it  assumed  to  be
126       decimal.
127
128       setsecure
129              Sets the security bit on AVR32 chips.  This prevents the content
130              being read back from the chip, except in  the  same  session  in
131              which  it was programmed.  When the security fuse is set, almost
132              nothing will work without first  executing  the  erase  command.
133              The  only  way  to  clear the security fuse once set is to use a
134              JTAG chip erase, which will also erase the bootloader.
135
136       get register
137              Displays various product identifier bytes.
138
139       launch [--no-reset]
140              Launch the application by resetting the device.  The  --no-reset
141              flag  can  be used to launch the device without a reset (jump to
142              the start address of the program).
143
144   Global Options
145       --quiet - minimizes the output
146
147       --debug level - enables verbose output at the specified level
148
149   Configure Registers
150       The standard bootloader for 8051  based  chips  supports  writing  data
151       bytes which are not relevant for the AVR based chips.
152
153       BSB - boot status byte
154       SBV - software boot vector
155       SSB - software security byte
156       EB  - extra byte
157       HSB - hardware security byte
158
159   Get Register
160       bootloader-version - currently flashed bootloader version
161       ID1 - device boot identification 1
162       ID2 - device boot identification 2
163       manufacturer - the hardware manufacturer code
164       family - the product family code
165       product-name - the product name
166       product-revision - the product revision
167       HSB - same as the configure_register version
168       BSB - same as the configure_register version
169       SBV - same as the configure_register version
170       SSB - same as the configure_register version
171       EB  - same as the configure_register version
172

BUGS

174       None known.
175

KNOWN ISSUES

177       The  at90usb  series chips do not make available any read/write protect
178       flags so the dump or flash command may fail with a  less  than  helpful
179       error message.
180
181       To  remove  any  write  or  read protection from any chips, a full chip
182       erasure is required.  For AVR32 chips an erase operation over USB  will
183       remove   protection  until  the  device  is  rebooted.  To  remove  the
184       protection more permanently requires a  JTAG  erase  (which  will  also
185       erase the bootloader).
186
187       You  may  need to be a member of the uucp group in order to have access
188       to the device without needing to be root.
189

AUTHOR

191       Weston Schmidt <weston_schmidt@alumni.purdue.edu>
192

SEE ALSO

194       http://dfu-programmer.sourceforge.net
195       http://www.atmel.com/Images/doc7618.pdf
196       http://www.atmel.com/Images/doc32131.pdf
197       http://www.atmel.com/Images/doc8457.pdf
198       http://www.atmel.com/Images/doc7745.pdf
199
201       Copyright (C) 2005-2014 Weston Schmidt
202
203       This program is free software; you can redistribute it and/or modify it
204       under  the  terms of the GNU General Public License as published by the
205       Free Software Foundation; either version 2 of the License, or (at  your
206       option) any later version.
207
208       This  program  is  distributed  in the hope that it will be useful, but
209       WITHOUT  ANY  WARRANTY;  without   even   the   implied   warranty   of
210       MERCHANTABILITY  or  FITNESS  FOR  A  PARTICULAR  PURPOSE.  See the GNU
211       General Public License for more details.
212
213       You should have received a copy of the GNU General Public License along
214       with this program; if not, write to the Free Software Foundation, Inc.,
215       51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
216
217
218
219DFU-PROGRAMMER                   May 28, 2014                DFU-PROGRAMMER(1)
Impressum