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 command [options] [parameters]
10

DESCRIPTION

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

SUPPORTED MICROCONTROLLERS

29       These chip names are used as the command line "target" parameter.
30
31       8051 based controllers:
32              at89c51snd1c, at89c51snd2c, at89c5130, at89c5131, and at89c5132.
33
34       AVR based controllers:
35              at90usb1287,  at90usb1286,  at90usb647,  at90usb646, at90usb162,
36              at90usb82, atmega32u6,  atmega32u2,  atmega32u4,  atmega8u2  and
37              atmega16u4.
38
39       AVR32 based controllers:
40              at32uc3a0128,    at32uc3a1128,    at32uc3a0256,    at32uc3a1256,
41              at32uc3a0512,  at32uc3a1512,   at32uc3a0512es,   at32uc3a1512es,
42              at32uc3a364,    at32uc3a364s,    at32uc3a3128,    at32uc3a3128s,
43              at32uc3a3256,    at32uc3a3256s,    at32uc3b064,     at32uc3b164,
44              at32uc3b0128,    at32uc3b1128,    at32uc3b0256,    at32uc3b1256,
45              at32uc3b0256es,  at32uc3b1256es,   at32uc3b1512,   at32uc3b0512,
46              at32uc3c064,     at32uc3c0128,    at32uc3c0256,    at32uc3c0512,
47              at32uc3c164,    at32uc3c1128,    at32uc3c1256,     at32uc3c1512,
48              at32uc3c264, at32uc3c2128, at32uc3c2256 and at32uc3c2512.
49
50

USAGE

52       There  are  no  mechanisms  for selecting which single device should be
53       programmed, or to implement gang programming.   Accordingly,  you  will
54       usually  avoid  connecting more than one device of a given family (AVR,
55       AVR32 or 8051) at a time.
56
57       All of  these  commands  support  the  "global  options".   Unless  you
58       override it, commands which write to the microcontroller will perform a
59       validation step that rereads the data which was written, compares it to
60       the expected result, and reports any errors.
61
62       configure register [--suppress-validation] data
63              Bootloaders  for  8051 based controllers support writing certain
64              configuration bytes.
65
66       dump
67              Reads all the available flash memory, and writes  it  as  binary
68              data to stdout.
69
70       dump-eeprom
71              Reads  all  the available eeprom memory, and writes it as binary
72              data to stdout.
73
74       dump-user
75              Reads the user space flash on the AVR32 chips and writes  it  as
76              binary data to stdout.
77
78       erase [--suppress-validation]
79              Erases  all  the  flash  memory.   This  is  required before the
80              bootloader will perform other commands.
81
82       flash [--suppress-validation] [--suppress-bootloader-mem] file or STDIN
83              Writes flash memory.  The input file (or  stdin)  must  use  the
84              "ihex"    file   format   convention   for   a   memory   image.
85              --suppress-bootloader-mem  ignores  any  data  written  to   the
86              bootloader  memory  space when flashing the device.  This option
87              is particularly useful for the AVR32 chips trampoline code.
88
89       flash-user [--suppress-validation] file or STDIN
90              Writes to user space flash on the AVR32 chips.   This  block  of
91              flash is out of the normal range of flash blocks and is designed
92              to contain configuration parameters.  The input file (or  stdin)
93              mus use the "ihex" file format convention for a memory image.
94
95       eeprom-flash [--suppress-validation] file or STDIN
96              Writes to eeprom memory.  The input file (or stdin) must use the
97              "ihex" file format convention for a memory image.
98
99       get register
100              Displays various product identifier bytes.
101
102       reset
103              Resets microcontroller using watchdog timer
104
105       start
106              Starts the application firmware by  having  the  microcontroller
107              jump to address zero.
108
109       version
110              This prints a string identifying the version of this utility.
111
112   Global Options
113       --quiet - minimizes the output
114
115       --debug level - enables verbose output at the specified level
116
117   Configure Registers
118       The  standard  bootloader  for  8051  based chips supports writing data
119       bytes which are not relevant for the AVR based chips.
120
121       BSB - boot status byte
122       SBV - software boot vector
123       SSB - software security byte
124       EB  - extra byte
125       HSB - hardware security byte
126
127   Get Register
128       bootloader-version - currently flashed bootloader version
129       ID1 - device boot identification 1
130       ID2 - device boot identification 2
131       manufacturer - the hardware manufacturer code
132       family - the product family code
133       product-name - the product name
134       product-revision - the product revision
135       HSB - same as the configure_register version
136       BSB - same as the configure_register version
137       SBV - same as the configure_register version
138       SSB - same as the configure_register version
139       EB  - same as the configure_register version
140

BUGS

142       None known.
143

KNOWN ISSUES

145       The at90usb series chips do not make available any  read/write  protect
146       flags  so  the  dump or flash command may fail with a less than helpful
147       error message.
148
149       To remove any write or read protection from  any  chips,  a  full  chip
150       erasure is required.
151
152       You  may  need to be a member of the uucp group in order to have access
153       to the device without needing to be root.
154

AUTHOR

156       Weston Schmidt <weston_schmidt@alumni.purdue.edu>
157

SEE ALSO

159       http://dfu-programmer.sourceforge.net
160       http://atmel.com/dyn/resources/prod_documents/doc7745.pdf
161
163       Copyright (C) 2005-2008 Weston Schmidt
164
165       This program is free software; you can redistribute it and/or modify it
166       under the terms of the GNU General Public License as published  by  the
167       Free  Software Foundation; either version 2 of the License, or (at your
168       option) any later version.
169
170       This program is distributed in the hope that it  will  be  useful,  but
171       WITHOUT   ANY   WARRANTY;   without   even   the  implied  warranty  of
172       MERCHANTABILITY or FITNESS FOR  A  PARTICULAR  PURPOSE.   See  the  GNU
173       General Public License for more details.
174
175       You should have received a copy of the GNU General Public License along
176       with this program; if not, write to the Free Software Foundation, Inc.,
177       51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
178
179
180
181DFU-PROGRAMMER                 December 10, 2008             DFU-PROGRAMMER(1)
Impressum