This is the Readme file to Objective Development's firmware-only USB driver
for Atmel AVR microcontrollers. For more information please visit
http://www.obdev.at/avrusb/
This directory contains the USB firmware only. Copy it as-is to your own
project and add all .c and .S files to your project (these files are marked
with an asterisk in the list below). Then copy usbconfig-prototype.h as
usbconfig.h to your project and edit it according to your configuration.
TECHNICAL DOCUMENTATION
=======================
The technical documentation (API) for the firmware driver is contained in the
file "usbdrv.h". Please read all of it carefully! Configuration options are
documented in "usbconfig-prototype.h".
The driver consists of the following files:
Readme.txt ............. The file you are currently reading.
Changelog.txt .......... Release notes for all versions of the driver.
usbdrv.h ............... Driver interface definitions and technical docs.
* usbdrv.c ............... High level language part of the driver. Link this
module to your code!
* usbdrvasm.S ............ Assembler part of the driver. This module is mostly
a stub and includes one of the usbdrvasm*.S files
depending on processor clock. Link this module to
your code!
usbdrvasm*.inc ......... Assembler routines for particular clock frequencies.
Included by usbdrvasm.S, don't link it directly!
asmcommon.inc .......... Common assembler routines. Included by
usbdrvasm*.inc, don't link it directly!
usbconfig-prototype.h .. Prototype for your own usbdrv.h file.
* oddebug.c .............. Debug functions. Only used when DEBUG_LEVEL is
defined to a value greater than 0. Link this module
to your code!
oddebug.h .............. Interface definitions of the debug module.
usbportability.h ....... Header with compiler-dependent stuff.
usbdrvasm.asm .......... Compatibility stub for IAR-C-compiler. Use this
module instead of usbdrvasm.S when you assembler
with IAR's tools.
License.txt ............ Open Source license for this driver.
CommercialLicense.txt .. Optional commercial license for this driver.
USBID-License.txt ...... Terms and conditions for using particular USB ID
values for particular purposes.
(*) ... These files should be linked to your project.
CPU CORE CLOCK FREQUENCY
========================
We supply assembler modules for clock frequencies of 12 MHz, 12.8 MHz, 15 MHz,
16 MHz, 16.5 MHz and 20 MHz. Other clock rates are not supported. The actual
clock rate must be configured in usbdrv.h unless you use the default 12 MHz.
12 MHz Clock
This is the traditional clock rate of AVR-USB because it's the lowest clock
rate where the timing constraints of the USB spec can be met.
15 MHz Clock
Similar to 12 MHz, but some NOPs inserted. On the other hand, the higher clock
rate allows for some loops which make the resulting code size somewhat smaller
than the 12 MHz version.
16 MHz Clock
This clock rate has been added for users of the Arduino board and other
ready-made boards which come with a fixed 16 MHz crystal. It's also an option
if you need the slightly higher clock rate for performance reasons. Since
16 MHz is not divisible by the USB low speed bit clock of 1.5 MHz, the code
is somewhat tricky and has to insert a leap cycle every third byte.
12.8 MHz and 16.5 MHz Clock
The assembler modules for these clock rates differ from the other modules
because they have been built for an RC oscillator with only 1% precision. The
receiver code inserts leap cycles to compensate for clock deviations. 1% is
also the precision which can be achieved by calibrating the internal RC
oscillator of the AVR. Please note that only AVRs with internal 64 MHz PLL
oscillator can reach 16.5 MHz with the RC oscillator. This includes the very
popular ATTiny25, ATTiny45, ATTiny85 series as well as the ATTiny26. Almost
all AVRs can reach 12.8 MHz, although this is outside the specified range.
See the EasyLogger example at http://www.obdev.at/avrusb/easylogger.html for
code which calibrates the RC oscillator based on the USB frame clock.
20 MHz Clock
This module is for people who won't do it with less than the maximum. Since
20 MHz is not divisible by the USB low speed bit clock of 1.5 MHz, the code
uses similar tricks as the 16 MHz module to insert leap cycles.
USB IDENTIFIERS
===============
Every USB device needs a vendor- and a product-identifier (VID and PID). VIDs
are obtained from usb.org for a price of 1,500 USD. Once you have a VID, you
can assign PIDs at will.
Since an entry level cost of 1,500 USD is too high for most small companies
and hobbyists, we provide some VID/PID pairs for free. See the file
USBID-License.txt for details.
Objective Development also has some license offerings which include product
IDs. See http://www.obdev.at/avrusb/ for details.
DEVELOPMENT SYSTEM
==================
This driver has been developed and optimized for the GNU compiler version 3
(gcc 3). It does work well with gcc 4, but with bigger code size. We recommend
that you use the GNU compiler suite because it is freely available. AVR-USB
has also been ported to the IAR compiler and assembler. It has been tested
with IAR 4.10B/W32 and 4.12A/W32 on an ATmega8 with the "small" and "tiny"
memory model. Not every release is tested with IAR CC and the driver may
therefore fail to compile with IAR. Please note that gcc is more efficient for
usbdrv.c because this module has been deliberately optimized for gcc.
USING AVR-USB FOR FREE
======================
The AVR firmware driver is published under the GNU General Public License
Version 2 (GPL2) and the GNU General Public License Version 3 (GPL3). It is
your choice whether you apply the terms of version 2 or version 3.
If you decide for the free GPL2 or GPL3, we STRONGLY ENCOURAGE you to do the
following things IN ADDITION to the obligations from the GPL:
(1) Publish your entire project on a web site and drop us a note with the URL.
Use the form at http://www.obdev.at/avrusb/feedback.html for your submission.
If you don't have a web site, you can publish the project in obdev's
documentation wiki at
http://www.obdev.at/goto.php?t=avrusb-wiki&p=hosted-projects.
(2) Adhere to minimum publication standards. Please include AT LEAST:
- a circuit diagram in PDF, PNG or GIF format
- full source code for the host software
- a Readme.txt file in ASCII format which describes the purpose of the
project and what can be found in which directories and which files
- a reference to http://www.obdev.at/avrusb/
(3) If you improve the driver firmware itself, please give us a free license
to your modifications for our commercial license offerings.
COMMERCIAL LICENSES FOR AVR-USB
===============================
If you don't want to publish your source code under the terms of the GPL,
you can simply pay money for AVR-USB. As an additional benefit you get
USB PIDs for free, licensed exclusively to you. See the file
"CommercialLicense.txt" for details.
没有合适的资源?快使用搜索试试~ 我知道了~
arduino轻量级且高效的AVR固件库
共105个文件
h:18个
hex:14个
c:13个
5星 · 超过95%的资源 需积分: 50 82 下载量 23 浏览量
2012-02-09
22:58:17
上传
评论 2
收藏 21.26MB RAR 举报
温馨提示
Arduino-Lite是由RoboPeak开发并使用的轻量级且高效率的AVR固件库,他基于Arduino项目的固件库改良而来,我们保留了Arduino固件库的简单易用的风格,同时有效的缩小了固件的代码尺寸,相比Arduino,Arduino-Lite拥有诸多优点。并且,他是相当易于使用的。使用Arduino-Lite的固件往往比使用Arduino固件库小了50%以上.
资源推荐
资源详情
资源评论
收起资源包目录
arduino轻量级且高效的AVR固件库 (105个子文件)
winavr-20090313.7z 17.5MB
posix.7z 1.93MB
usbdrvasm.asm 570B
ATmegaBOOT_168.c 29KB
usbdrv.c 24KB
ATmegaBOOT.c 15KB
pins_arduino.c 12KB
wiring.c 8KB
main.c 7KB
wiring_analog.c 6KB
WInterrupts.c 5KB
wiring_digital.c 3KB
wiring_pulse.c 3KB
WMath.c 1KB
wiring_shift.c 1KB
oddebug.c 1KB
buildenv.cmd 138B
launchsh.cmd 125B
build.cmd 98B
launchsh.cmd 94B
avrdude.conf 414KB
net_serial.cpp 10KB
simp_print.cpp 3KB
fading.cpp 2KB
example.cpp 0B
msys-1.0.dll 763KB
7z.dll 709KB
avrdude-arduino.exe 1.83MB
sh.exe 466KB
7z.exe 147KB
mv.exe 80KB
cp.exe 73KB
bootloadHID.exe 15KB
echo.exe 8KB
usbdrv.h 30KB
pins_arduino_lit.h 17KB
usbconfig-prototype.h 17KB
usbconfig.h 12KB
binary.h 10KB
wiring.h 5KB
bootloaderconfig.h 5KB
net_serial.h 5KB
usbportability.h 4KB
pins_arduino.h 4KB
wiring_lit.h 3KB
oddebug.h 3KB
simp_print.h 2KB
wiring_private.h 2KB
arduino_lit.h 1KB
abs_io.h 557B
WProgram.h 25B
WConstants.h 20B
ATmegaBOOT_168_atmega1280.hex 11KB
ATmegaBOOT_168_pro_8MHz.hex 5KB
ATmegaBOOT_168_diecimila.hex 5KB
ATmegaBOOT_168_atmega328.hex 5KB
mega168_12M.hex 5KB
ATmegaBOOT_168_atmega328_pro_8MHz.hex 5KB
mega88_12M.hex 5KB
mega8_12M.hex 5KB
ATmegaBOOT_168_std_16Mhz.hex 5KB
ATmegaBOOT_168_ng.hex 5KB
ATmegaBOOT_88_pro_12MHz.hex 4KB
ATmegaBOOT_88_pro_8MHz.hex 4KB
ATmegaBOOT@16.hex 3KB
ATmegaBOOT@8.hex 3KB
usbdrvasm128.inc 28KB
usbdrvasm15.inc 17KB
usbdrvasm165.inc 17KB
usbdrvasm12.inc 15KB
usbdrvasm20.inc 15KB
usbdrvasm16.inc 12KB
asmcommon.inc 8KB
mak_avr_def.inc 5KB
mak_avr_common.inc 4KB
mak_lib.inc 2KB
Makefile 6KB
Makefile 2KB
Makefile 2KB
Makefile_mega168_12M 3KB
Makefile_mega88 3KB
Makefile_mega88_12M 3KB
Makefile_mega8_12M 3KB
atmega_basic.pdf 15KB
attiny26_basic.pdf 14KB
README 4KB
README 159B
README 42B
usbdrvasm.S 8KB
atmega_basic.sch 200KB
attiny26_basic.sch 196KB
shenv.sh 455B
buildenv.sh 268B
setenv.sh 255B
License.txt 19KB
Changelog.txt 12KB
Readme.txt 7KB
USBID-License.txt 7KB
CommercialLicense.txt 7KB
README_zh-cn.txt 3KB
共 105 条
- 1
- 2
资源评论
- zh_1691682013-05-30不错不错,很好的资料,五星!
- wox_wang01052015-03-12感觉不错。但是我不太会用
- q7399942882014-04-20感觉不错。但是我不太会用
- em86222013-07-12不错不错,很好的资料,五星!
jangxue88
- 粉丝: 0
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功