1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159
|
.TH DFU\-PROGRAMMER 1 "April 25, 2007" "DFU\-PROGRAMMER" ""
.SH NAME
dfu\-programmer \- USB firmware upgrading for Atmel microcontrollers
.nh
.SH SYNOPSIS
.B dfu\-programmer
target command [options] [parameters]
.SH DESCRIPTION
.B dfu\-programmer
is a Linux command line Device Firmware Upgrade (DFU) based programmer
for the flash memory on Atmel AVR 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.
.PP
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.
.SH SUPPORTED MICROCONTROLLERS
These chip names are used as the command line "target" parameter.
.IP "8051 based controllers:"
at89c51snd1c, at89c5130, at89c5131, and at89c5132.
.IP "AVR based controllers:"
at90usb1287, at90usb1286, at90usb162, at90usb647, at90usb646
and at90usb82.
.SH USAGE
There are no mechanisms for selecting which single device
should be programmed, or to implement gang programming.
Accordingly, you will usually avoid connecting more than one
device of a given family (AVR or 8051) at a time.
.PP
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.
.HP
.B configure
register
[\-\-suppress\-validation]
data
.br
Bootloaders for 8051 based controllers support writing certain
configuration bytes.
.HP
.B dump
.br
Reads all the available flash memory, and writes it as binary
data to stdout.
.HP
.B erase
[\-\-suppress\-validation]
.br
Erases all the flash memory.
This is required before the bootloader will perform other commands.
.HP
.B flash
[\-\-suppress\-validation]
file
.br
Writes flash memory. The input file must use the "ihex" file
format convention for a memory image.
.HP
.B get
register
.br
Displays various product identifier bytes.
.HP
.B start
.br
Starts the application firmware by having the microcontroller
jump to address zero.
.HP
.B version
.br
This prints a string identifying the version of this utility.
.SS Global Options
\-\-quiet \- minimizes the output
\-\-debug level \- enables verbose output at the specified level
.SS Configure Registers
The standard bootloader for 8051 based chips supports writing
data bytes which are not relevant for the AVR based chips.
.LP
BSB \- boot status byte
.br
SBV \- software boot vector
.br
SSB \- software security byte
.br
EB \- extra byte
.br
HSB \- hardware security byte
.SS Get Register
bootloader\-version \- currently flashed bootloader version
.br
ID1 \- device boot identification 1
.br
ID2 \- device boot identification 2
.br
manufacturer \- the hardware manufacturer code
.br
family \- the product family code
.br
product\-name \- the product name
.br
product\-revision \- the product revision
.br
HSB \- same as the configure_register version
.br
BSB \- same as the configure_register version
.br
SBV \- same as the configure_register version
.br
SSB \- same as the configure_register version
.br
EB \- same as the configure_register version
.SH BUGS
None known.
.SH KNOWN ISSUES
The at90usb series chips do not make available any read/write protect
flags so the
.B dump
or
.B flash
command may fail with a less than helpful error message.
.PP
To remove
.B any
write or read protection from any chips, a full chip erasure is required.
.SH AUTHOR
Weston Schmidt <weston_schmidt@alumni.purdue.edu>
.SH SEE ALSO
.UR dfu-programmer.sourceforge.net
http://dfu-programmer.sourceforge.net
.SH COPYRIGHT
Copyright (C) 2005, 2006 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
|