Чтоб заработал USB добавте в проект файлы USBD.c USB_cdc_user_functions.c PLL.c. В вашей программе добавте #include "usbd.h" и вызовите START_PLL_and_USB_module(); В USB_cdc_user_functions.c есть функция callback_USB_RXC которая вызываеться при приходе пакета данных по CDC. В примере там просто пересылка их обратно (Эхо). Все проверено на AT90USBKey и имейте в виду что бит UVREGE нужно выставлять только если у вас USB модуль питаеться от внутреннего регулятора, иначе его надо погасить. При обнаружении девайса, подсунуть ей файл at90usbxxx_powerc.inf в папке Driver