void USB_ResetInterface(void) { uint8_t PrescalerNeeded; #if defined(USB_DEVICE_OPT_FULLSPEED) if (USB_Options & USB_DEVICE_OPT_LOWSPEED) PrescalerNeeded = F_USB / 6000000; else PrescalerNeeded = F_USB / 48000000; #else PrescalerNeeded = F_USB / 6000000; #endif uint8_t DividerIndex = 0; while (PrescalerNeeded > 0) { DividerIndex++; PrescalerNeeded >>= 1; } CLK.USBCTRL = (DividerIndex - 1) << CLK_USBPSDIV_gp; if (USB_Options & USB_OPT_PLLCLKSRC) CLK.USBCTRL |= (CLK_USBSRC_PLL_gc | CLK_USBSEN_bm); else CLK.USBCTRL |= (CLK_USBSRC_RC32M_gc | CLK_USBSEN_bm); USB_Device_SetDeviceAddress(0); USB_INT_DisableAllInterrupts(); USB_INT_ClearAllInterrupts(); USB_Controller_Reset(); USB_Init_Device(); }
void USB_ResetInterface(void) { #if defined(USB_CAN_BE_BOTH) bool UIDModeSelectEnabled = ((UHWCON & (1 << UIDE)) != 0); #endif USB_INT_DisableAllInterrupts(); USB_INT_ClearAllInterrupts(); USB_Controller_Reset(); #if defined(USB_CAN_BE_BOTH) if (UIDModeSelectEnabled) USB_INT_Enable(USB_INT_IDTI); #endif USB_CLK_Unfreeze(); if (USB_CurrentMode == USB_MODE_Device) { #if defined(USB_CAN_BE_DEVICE) #if (defined(USB_SERIES_6_AVR) || defined(USB_SERIES_7_AVR)) UHWCON |= (1 << UIMOD); #endif if (!(USB_Options & USB_OPT_MANUAL_PLL)) { #if defined(USB_SERIES_2_AVR) USB_PLL_On(); while (!(USB_PLL_IsReady())); #else USB_PLL_Off(); #endif } USB_Init_Device(); #endif } else if (USB_CurrentMode == USB_MODE_Host) { #if defined(USB_CAN_BE_HOST) UHWCON &= ~(1 << UIMOD); if (!(USB_Options & USB_OPT_MANUAL_PLL)) { #if defined(USB_CAN_BE_HOST) USB_PLL_On(); while (!(USB_PLL_IsReady())); #endif } USB_Init_Host(); #endif } #if (defined(USB_SERIES_4_AVR) || defined(USB_SERIES_6_AVR) || defined(USB_SERIES_7_AVR)) USB_OTGPAD_On(); #endif }
void USB_ResetInterface(void) { USB_INT_DisableAllInterrupts(); USB_INT_ClearAllInterrupts(); USB_Controller_Reset(); USB_Init_Device(); }
void USB_ResetInterface(uint8_t corenum, uint8_t mode) { if (mode == USB_MODE_Device) { #if defined(USB_CAN_BE_DEVICE) USB_Init_Device(corenum); #endif } else if (mode == USB_MODE_Host) { #if defined(USB_CAN_BE_HOST) USB_Init_Host(corenum); #endif } }
void USB_ResetInterface(void) { if (USB_Options & USB_DEVICE_OPT_LOWSPEED) CLK.USBCTRL = ((((F_USB / 6000000) - 1) << CLK_USBPSDIV_gp) | CLK_USBSRC_PLL_gc | CLK_USBSEN_bm); else CLK.USBCTRL = ((((F_USB / 48000000) - 1) << CLK_USBPSDIV_gp) | CLK_USBSRC_PLL_gc | CLK_USBSEN_bm); USB_Device_SetDeviceAddress(0); USB_INT_DisableAllInterrupts(); USB_INT_ClearAllInterrupts(); USB_Controller_Reset(); USB_Init_Device(); }
void USB_ResetInterface(void) { if (USB_CurrentMode == USB_MODE_Device) { #if defined(USB_CAN_BE_DEVICE) USB_Init_Device(); #endif } else if (USB_CurrentMode == USB_MODE_Host) { #if defined(USB_CAN_BE_HOST) USB_Init_Host(); #endif } }
void USB_ResetInterface(void) { #if defined(USB_CAN_BE_BOTH) bool UIDModeSelectEnabled = AVR32_USBB.USBCON.uide; #endif AVR32_PM.GCCTRL[AVR32_PM_GCLK_USBB].pllsel = !(USB_Options & USB_OPT_GCLK_SRC_OSC); AVR32_PM.GCCTRL[AVR32_PM_GCLK_USBB].oscsel = !(USB_Options & USB_OPT_GCLK_CHANNEL_0); AVR32_PM.GCCTRL[AVR32_PM_GCLK_USBB].diven = (F_USB != USB_CLOCK_REQUIRED_FREQ); AVR32_PM.GCCTRL[AVR32_PM_GCLK_USBB].div = (F_USB == USB_CLOCK_REQUIRED_FREQ) ? 0 : (uint32_t)(((F_USB / USB_CLOCK_REQUIRED_FREQ) - 1) / 2); AVR32_PM.GCCTRL[AVR32_PM_GCLK_USBB].cen = true; USB_INT_DisableAllInterrupts(); USB_INT_ClearAllInterrupts(); USB_Controller_Reset(); #if defined(USB_CAN_BE_BOTH) if (UIDModeSelectEnabled) USB_INT_Enable(USB_INT_IDTI); #endif USB_CLK_Unfreeze(); if (USB_CurrentMode == USB_MODE_Device) { #if defined(USB_CAN_BE_DEVICE) AVR32_USBB.USBCON.uimod = true; USB_Init_Device(); #endif } else if (USB_CurrentMode == USB_MODE_Host) { #if defined(INVERTED_VBUS_ENABLE_LINE) AVR32_USBB.USBCON.vbuspol = true; #endif #if defined(USB_CAN_BE_HOST) AVR32_USBB.USBCON.uimod = false; USB_Init_Host(); #endif } USB_OTGPAD_On(); }
void USB_ResetInterface(void) { #if defined(USB_DEVICE_OPT_FULLSPEED) if (USB_Options & USB_DEVICE_OPT_LOWSPEED) CLK.USBCTRL = (((F_USB / 6000000) - 1) << CLK_USBPSDIV_gp); else CLK.USBCTRL = (((F_USB / 48000000) - 1) << CLK_USBPSDIV_gp); #else CLK.USBCTRL = (((F_USB / 6000000) - 1) << CLK_USBPSDIV_gp); #endif if (USB_Options & USB_OPT_PLLCLKSRC) CLK.USBCTRL |= (CLK_USBSRC_PLL_gc | CLK_USBSEN_bm); else CLK.USBCTRL |= (CLK_USBSRC_RC32M_gc | CLK_USBSEN_bm); USB_Device_SetDeviceAddress(0); USB_INT_DisableAllInterrupts(); USB_INT_ClearAllInterrupts(); USB_Controller_Reset(); USB_Init_Device(); }