1DFU-PROGRAMMER(1) DFU-PROGRAMMER(1)
2
3
4
6 dfu-programmer - USB firmware upgrading for Atmel microcontrollers
7
9 dfu-programmer target command [options] [parameters]
10
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
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
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
142 None known.
143
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
156 Weston Schmidt <weston_schmidt@alumni.purdue.edu>
157
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)