|
Contiki-Inga 3.x
|
This file manages the USB task either device/host or both. More...
Go to the source code of this file.
Macros | |
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. More... | |
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:
- The usb_task belongs to the scheduler, the usb_device_task and usb_host do not, they are called
from the general usb_task
- See conf_usb.h file for more details about the configuration of this module
Definition in file usb_task.h.
1.8.3.1