add support for ATmega16
[pub/USBaspLoader.git] / Readme.txt
1 This is the README file for USBaspLoader.
2
3 USBaspLoader is a USB boot loader for AVR microcontrollers. It can be used on
4 most AVRs with at least 2 kB of boot loader section, e.g. the popular ATMega8.
5 The firmware is flashed into the bootloader-section of the flash memory and
6 takes control immediately after reset. If a certain hardware condition is met
7 (this condition can be configured, e.g. a jumper), the boot loader waits for
8 data on the USB interface and loads it into the remaining part of the flash
9 memory. If the condition is not met, control is passed to the loaded firmware.
10
11 This boot loader is similar to Thomas Fischl's avrusbboot and our own
12 bootloadHID, but it requires no separate command line tool to upload the data.
13 USBaspLoader emulates Thomas Fischl's USBasp programmer instead. You can thus
14 use AVRDUDE to upload flash memory data (and if the option is enabled) EEPROM
15 data.
16
17 Since USBaspLoader cooperates with AVRDUDE, it can be used in conjunction with
18 the Arduino software to upload flash memory data.
19
20
21 FILES IN THE DISTRIBUTION
22 =========================
23 Readme.txt ........ The file you are currently reading.
24 firmware .......... Source code of the controller firmware.
25 firmware/usbdrv ... USB driver -- See Readme.txt in that directory for info
26 License.txt ....... Public license (GPL2) for all contents of this project.
27 Changelog.txt ..... Logfile documenting changes in soft-, firm- and hardware.
28 Schematics.txt .... File giving infos about default and recommended hw-layout.
29
30
31 BUILDING AND INSTALLING
32 =======================
33 This project can be built on Unix (Linux, FreeBSD or Mac OS X) or Windows.
34
35 For all platforms, you must first describe your hardware in the file
36 "firmware/bootloaderconfig.h". See the documentation in the example provided
37 with this distribution for details. Then edit "firmware/Makefile" to reflect
38 the target device, the device's boot loader address and fuse bit values.
39
40 Building on Windows:
41 You need WinAVR for the firmware, see http://winavr.sourceforge.net/.
42 To build the firmware with WinAVR, change into the "firmware" directory,
43 check whether you need to edit the "Makefile" (e.g. change device settings,
44 programmer hardware, clock rate etc.) or bootloaderconfig.h and type "make"
45 to compile the source code. After you upload the code to the device with
46 "make flash", you should set the fuses with "make fuse".
47 At default configuration the bootloader protects itself from overwriting
48 itself. In order to sustain the new update-capability, no lock bits
49 ("make lock") should be programmed after uploading the firmware and
50 programming the fuse bits.
51
52 Building on Unix (Linux, FreeBSD and Mac):
53 You need the GNU toolchain and avr-libc for the firmware. See
54 http://www.nongnu.org/avr-libc/user-manual/install_tools.html
55 for a good description on how to install the GNU compiler toolchain and
56 avr-libc on Unix. For Mac OS X, we provide a read-made package, see
57 http://www.obdev.at/avrmacpack/
58
59 To build the firmware, change to the "firmware" directory, edit "Makefile"
60 and bootloaderconfig.h as described in the Windows paragraph above and type
61 "make" to compile the source code. Before you upload the code to the device
62 with "make flash", you should set the fuses with "make fuse".
63
64
65 WORKING WITH THE BOOT LOADER
66 ============================
67 The boot loader is quite easy to use. Set the jumper (or whatever condition
68 you have configured) for boot loading on the target hardware, connect it to
69 the host computer and (if not bus powered) issue a Reset on the AVR.
70
71 You can now flash the device with AVRDUDE through a "virtual" USBasp
72 programmer.
73
74
75 USING THE USB DRIVER FOR YOUR OWN PROJECTS
76 ==========================================
77 This project is not intended as a reference implementation. If you want to
78 use AVR-USB in your own projects, please see
79 * PowerSwitch for the most basic example,
80 * Automator for an HID example or
81 * AVR-Doper for a very complex example on how to simulate a serial
82 interface (virtual COM port).
83 All these projects can be downloaded from http://www.obdev.at/avrusb/
84
85
86 ABOUT THE LICENSE
87 =================
88 It is our intention to make our USB driver and this demo application
89 available to everyone. Moreover, we want to make a broad range of USB
90 projects and ideas for USB devices available to the general public. We
91 therefore want that all projects built with our USB driver are published
92 under an Open Source license. Our license for the USB driver and demo code is
93 the GNU General Public License Version 2 (GPL2). See the file "License.txt"
94 for details.
95
96 If you don't want to publish your source code under the GPL2, you can simply
97 pay money for AVR-USB. As an additional benefit you get USB PIDs for free,
98 licensed exclusively to you. See the file "CommercialLicense.txt" in the usbdrv
99 directory for details.
100
101
102 MORE INFORMATION
103 ================
104 For questions, reports, suggestions or just for fun please contact
105 Stephan Baerwolf (matrixstorm@gmx.de) and/or visit demonstration-board
106 for USBaspLoader at http://matrixstorm.com/avr/tinyusbboard/
107
108 For more information about Objective Development's firmware-only USB driver
109 for Atmel's AVR microcontrollers please visit the URL
110
111 http://www.obdev.at/products/avrusb/
112
113 A technical documentation of the driver's interface can be found in the
114 file "firmware/usbdrv/usbdrv.h".
115
116
117 --
118 recent version:
119 (c) 2012 by Stephan Baerwolf
120 matrixstorm@gmx.de
121
122 initial version:
123 (c) 2008 by OBJECTIVE DEVELOPMENT Software GmbH.
124 http://www.obdev.at/