Friday, November 6, 2009

AVR-USB Project

Microcontroller AVR-USB Project

AVR-USB implements a USB device entirely in software, making it possible to build USB hardware with almost any AVR microcontroller, not requiring any additional chip.

Features :
  • Fully USB 1.1 compliant low-speed device, except handling of communication errors and electrical specifications.
  • Example projects demonstrate device and host driver implementations on Linux, Mac OS X and Windows.
  • Supports multiple endpoints: one control endpoint, two interrupt/bulk-in endpoints and up to 7 interrupt/bulk-out endpoints. (Bulk endpoints are forbidden for low speed devices by the USB standard.)
  • Transfer sizes up to 254 bytes by default, more as configuration option.
  • Comes with freely usable USB identifiers (Vendor-ID and Product-ID pairs).
  • Runs on any AVR microcontroller with at least 2 kB of Flash memory, 128 bytes RAM and a clock rate of at least 12 MHz.
  • No UART, timer, input capture unit or other special hardware is required (except one edge triggered interrupt).
  • Can be clocked with 12 Mhz, 15 MHz, 16 MHz or 20 MHz crystal or from a 16.5 MHz internal RC oscillator.
  • High level functionality is written in C and is well commented.
  • Only about 1200 to 1400 bytes code size.