Contiki 2.5
Functions | Variables
usb_task.h File Reference

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)
 

Detailed Description

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.