Функция где инициализирую юсб-модуль
int EngageUsbb()
{
int i;
avr32_usbb_uecfg0_t *pUeCfg;
InitCfgFullDescriptor();
//reset device connection
AVR32_USBB.UDCON.detach=1;
AVR32_GPIO.port[CFG_USBID_GPIO_PORT].gferc=0x01<<CFG_USBID_GPIO_PORT_PIN;
AVR32_GPIO.port[CFG_USBID_GPIO_PORT].pmr0=gpio_fmux_pmr0(CFG_USBB_USBID_FUNCTION
,CFG_USBID_GPIO_PORT_PIN);
AVR32_GPIO.port[CFG_USBID_GPIO_PORT].pmr1=gpio_fmux_pmr1(CFG_USBB_USBID_FUNCTION
,CFG_USBID_GPIO_PORT_PIN);
AVR32_GPIO.port[CFG_USBID_GPIO_PORT].puers=0x01<<CFG_USBID_GPIO_PORT_PIN;
AVR32_USBB.USBCON.uimod=USBB_MODE_DEVICE;
AVR32_USBB.USBCON.uide=USBB_MODE_SRCSEL_USBID;
if(AVR32_USBB.USBSTA.id!=CFG_USBB_USBID_BIT)
return ERR_USBB_HOSTDEVICE_MODE_CFG;
AVR32_USBB.uerst=USBB_CFG_UERST;
pUeCfg=&AVR32_USBB.UECFG0;
for(i=0; i < UC3A3256_USBB_EP_NUM ; i++ )
pUeCfg[i]=_UepCfg[i];
AVR32_USBB.USBCON.usbe=1;
AVR32_USBB.USBCON.frzclk=0;
// Adjust interrupt system
AVR32_USBB.udinteclr=(ULONG)0xFFFFFFFF;
AVR32_USBB.udinteset=USBB_CFG_UDINT_INTMASK;
AVR32_USBB.UDCON.detach=0;
return 0;
};