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(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_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(); }