\r
void USB_ShutDown(void)\r
{\r
- #if defined(USB_CAN_BE_DEVICE)\r
- if (USB_DeviceState != DEVICE_STATE_Unattached)\r
- EVENT_USB_Disconnect();\r
- #endif\r
- \r
- #if defined(USB_CAN_BE_HOST)\r
- if (USB_HostState != HOST_STATE_Unattached)\r
- EVENT_USB_Disconnect();\r
- #endif\r
-\r
USB_ResetInterface();\r
USB_Detach();\r
USB_Controller_Disable();\r
USB_Device_SetLowSpeed();\r
else\r
USB_Device_SetFullSpeed();\r
- \r
- USB_INT_Enable(USB_INT_VBUS);\r
}\r
#endif\r
\r
if (CALLBACK_USB_GetDescriptor((DTYPE_Device << 8), 0, (void*)&DeviceDescriptorPtr) != NO_DESCRIPTOR)\r
{ \r
#if defined(USE_RAM_DESCRIPTORS)\r
- USB_ControlEndpointSize = DeviceDescriptorPtr->Endpoint0Size;\r
+ USB_ControlEndpointSize = DeviceDescriptorPtr->Endpoint0Size;\r
#elif defined(USE_EEPROM_DESCRIPTORS)\r
- USB_ControlEndpointSize = eeprom_read_byte(&DeviceDescriptorPtr->Endpoint0Size);\r
+ USB_ControlEndpointSize = eeprom_read_byte(&DeviceDescriptorPtr->Endpoint0Size);\r
#else\r
- USB_ControlEndpointSize = pgm_read_byte(&DeviceDescriptorPtr->Endpoint0Size);\r
+ USB_ControlEndpointSize = pgm_read_byte(&DeviceDescriptorPtr->Endpoint0Size);\r
#endif\r
}\r
}\r
\r
USB_Attach();\r
\r
- #if defined(USB_DEVICE_ONLY) \r
+ #if defined(USB_DEVICE_ONLY)\r
+ USB_INT_Clear(USB_INT_SUSPEND);\r
USB_INT_Enable(USB_INT_SUSPEND);\r
+ USB_INT_Clear(USB_INT_EORSTI);\r
USB_INT_Enable(USB_INT_EORSTI);\r
- #if defined(CONTROL_ONLY_DEVICE)\r
- UENUM = ENDPOINT_CONTROLEP;\r
- #endif\r
- \r
+\r
+ #if defined(USB_SERIES_4_AVR) || defined(USB_SERIES_6_AVR) || defined(USB_SERIES_7_AVR)\r
+ USB_INT_Enable(USB_INT_VBUS);\r
+ #endif\r
+\r
+ #if defined(CONTROL_ONLY_DEVICE)\r
+ UENUM = ENDPOINT_CONTROLEP;\r
+ #endif\r
#elif defined(USB_HOST_ONLY)\r
USB_Host_HostMode_On();\r
\r
#else\r
if (USB_CurrentMode == USB_MODE_DEVICE)\r
{\r
+ USB_INT_Clear(USB_INT_SUSPEND);\r
USB_INT_Enable(USB_INT_SUSPEND);\r
+ USB_INT_Clear(USB_INT_EORSTI);\r
USB_INT_Enable(USB_INT_EORSTI);\r
\r
+ #if defined(USB_SERIES_4_AVR) || defined(USB_SERIES_6_AVR) || defined(USB_SERIES_7_AVR)\r
+ USB_INT_Enable(USB_INT_VBUS);\r
+ #endif\r
+\r
#if defined(CONTROL_ONLY_DEVICE)\r
UENUM = ENDPOINT_CONTROLEP;\r
#endif\r