This file manages the USB task either device/host or both. More...
Go to the source code of this file.
Defines | |
USB Events | |
#define | Usb_send_event(x) (g_usb_event |= (1<<x)) |
Send event. | |
#define | Usb_ack_event(x) (g_usb_event &= ~(1<<x)) |
Ack event processed. | |
#define | Usb_clear_all_event() (g_usb_event = 0) |
Clear all events. | |
#define | Is_usb_event(x) ((g_usb_event & (1<<x)) ? TRUE : FALSE) |
Check for USB event. | |
#define | Is_not_usb_event(x) ((g_usb_event & (1<<x)) ? FALSE: TRUE) |
Check for USB event NOT occuring. | |
#define | Is_usb_device() (g_usb_mode==USB_MODE_DEVICE ? TRUE : FALSE) |
Check if USB is device. | |
#define | EVT_USB_POWERED 1 |
USB Event: USB plugged. | |
#define | EVT_USB_UNPOWERED 2 |
USB Event: USB un-plugged. | |
#define | EVT_USB_DEVICE_FUNCTION 3 |
USB Event: USB in device. | |
#define | EVT_USB_HOST_FUNCTION 4 |
USB Event: USB in host. | |
#define | EVT_USB_SUSPEND 5 |
USB Event: USB suspend. | |
#define | EVT_USB_WAKE_UP 6 |
USB Event: USB wake up. | |
#define | EVT_USB_RESUME 7 |
USB Event: USB resume. | |
#define | EVT_USB_RESET 8 |
USB Event: USB reset. | |
#define | EVT_USB_SETUP_RX 9 |
USB Event: USB setup received. | |
Standard requests defines | |
#define | GET_STATUS 0x00 |
#define | GET_DEVICE 0x01 |
#define | CLEAR_FEATURE 0x01 |
see FEATURES below | |
#define | GET_STRING 0x03 |
#define | SET_FEATURE 0x03 |
see FEATURES below | |
#define | SET_ADDRESS 0x05 |
#define | GET_DESCRIPTOR 0x06 |
#define | SET_DESCRIPTOR 0x07 |
#define | GET_CONFIGURATION 0x08 |
#define | SET_CONFIGURATION 0x09 |
#define | GET_INTERFACE 0x0A |
#define | SET_INTERFACE 0x0B |
#define | SYNCH_FRAME 0x0C |
#define | GET_DEVICE_DESCRIPTOR 1 |
#define | GET_CONFIGURATION_DESCRIPTOR 4 |
#define | REQUEST_DEVICE_STATUS 0x80 |
#define | REQUEST_INTERFACE_STATUS 0x81 |
#define | REQUEST_ENDPOINT_STATUS 0x82 |
#define | ZERO_TYPE 0x00 |
#define | INTERFACE_TYPE 0x01 |
#define | ENDPOINT_TYPE 0x02 |
#define | DEVICE_DESCRIPTOR 0x01 |
#define | CONFIGURATION_DESCRIPTOR 0x02 |
#define | STRING_DESCRIPTOR 0x03 |
#define | INTERFACE_DESCRIPTOR 0x04 |
#define | ENDPOINT_DESCRIPTOR 0x05 |
#define | DEVICE_QUALIFIER_DESCRIPTOR 0x06 |
#define | OTHER_SPEED_CONFIGURATION_DESCRIPTOR 0x07 |
#define | FEATURE_DEVICE_REMOTE_WAKEUP 0x01 |
#define | FEATURE_ENDPOINT_HALT 0x00 |
#define | TEST_J 0x01 |
#define | TEST_K 0x02 |
#define | TEST_SEO_NAK 0x03 |
#define | TEST_PACKET 0x04 |
#define | TEST_FORCE_ENABLE 0x05 |
#define | BUS_POWERED 0 |
#define | SELF_POWERED 1 |
Functions | |
void | usb_start_device (void) |
This function initializes the USB device controller. | |
Variables | |
volatile uint16_t | g_usb_event |
Public : U16 g_usb_event usb_connected is used to store USB events detected upon USB general interrupt subroutine Its value is managed by the following macros (See usb_task.h file) Usb_send_event(x) Usb_ack_event(x) Usb_clear_all_event() Is_usb_event(x) Is_not_usb_event(x). |
This file manages the USB task either device/host or both.
*********************************************************************
The USB task selects the correct USB task (usb_device task or usb_host task to be executed depending on the current mode available.
According to USB_DEVICE_FEATURE and USB_HOST_FEATURE value (located in conf_usb.h file) The usb_task can be configured to support USB DEVICE mode or USB Host mode or both for a dual role device application.
This module also contains the general USB interrupt subroutine. This subroutine is used to detect asynchronous USB events.
Note:
Definition in file usb_task.h.