Для AVR есть хороший USB стек V-USB:
http://www.obdev.at/products/vusb/index.html
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 12.8 MHz or 16.5 MHz internal RC oscillator.
High level functionality is written in C and is well commented.
Only about 1150 to 1400 bytes code size.