- Main Page
- Modules
- Data Structures
- Files
- Related Pages

- File List
- Globals

# usb_task.h

Go to the documentation of this file.

    00001
    00016 #ifndef _USB_TASK_H_
    00017 #define _USB_TASK_H_
    00018
    00021
    00022 //_____ I N C L U D E S ____________________________________________________
    00023
    00024
    00025 //_____ M A C R O S ________________________________________________________
    00026
    00030 #define Usb_send_event(x)               (g_usb_event |= (1<<x))
    00031 #define Usb_ack_event(x)                (g_usb_event &= ~(1<<x))
    00032 #define Usb_clear_all_event()           (g_usb_event = 0)
    00033 #define Is_usb_event(x)                 ((g_usb_event & (1<<x)) ? TRUE : FALSE)
    00034 #define Is_not_usb_event(x)             ((g_usb_event & (1<<x)) ? FALSE: TRUE)
    00035 #define Is_host_emergency_exit()        (Is_usb_event(EVT_HOST_DISCONNECTION) || Is_usb_event(EVT_USB_DEVICE_FUNCTION))
    00036 #define Is_usb_device()                 (g_usb_mode==USB_MODE_DEVICE ? TRUE : FALSE)
    00037 #define Is_usb_host()                   (g_usb_mode==USB_MODE_HOST   ? TRUE : FALSE)
    00038
    00039 #define EVT_USB_POWERED               1         // USB plugged
    00040 #define EVT_USB_UNPOWERED             2         // USB un-plugged
    00041 #define EVT_USB_DEVICE_FUNCTION       3         // USB in device
    00042 #define EVT_USB_HOST_FUNCTION         4         // USB in host
    00043 #define EVT_USB_SUSPEND               5         // USB suspend
    00044 #define EVT_USB_WAKE_UP               6         // USB wake up
    00045 #define EVT_USB_RESUME                7         // USB resume
    00046 #define EVT_USB_RESET                 8         // USB reset
    00047 #define EVT_HOST_SOF                  9         // Host start of frame sent
    00048 #define EVT_HOST_HWUP                 10        // Host wakeup detected
    00049 #define EVT_HOST_DISCONNECTION        11        // The target device is disconnected
    00051
    00054    #define GET_STATUS                     0x00
    00055    #define GET_DEVICE                     0x01
    00056    #define CLEAR_FEATURE                  0x01
    00057    #define GET_STRING                     0x03
    00058    #define SET_FEATURE                    0x03
    00059    #define SET_ADDRESS                    0x05
    00060    #define GET_DESCRIPTOR                 0x06
    00061    #define SET_DESCRIPTOR                 0x07
    00062    #define GET_CONFIGURATION              0x08
    00063    #define SET_CONFIGURATION              0x09
    00064    #define GET_INTERFACE                  0x0A
    00065    #define SET_INTERFACE                  0x0B
    00066    #define SYNCH_FRAME                    0x0C
    00067
    00068    #define GET_DEVICE_DESCRIPTOR             1
    00069    #define GET_CONFIGURATION_DESCRIPTOR      4
    00070
    00071    #define REQUEST_DEVICE_STATUS          0x80
    00072    #define REQUEST_INTERFACE_STATUS       0x81
    00073    #define REQUEST_ENDPOINT_STATUS        0x82
    00074    #define ZERO_TYPE                      0x00
    00075    #define INTERFACE_TYPE                 0x01
    00076    #define ENDPOINT_TYPE                  0x02
    00077
    00078                      // Descriptor Types
    00079    #define DEVICE_DESCRIPTOR                     0x01
    00080    #define CONFIGURATION_DESCRIPTOR              0x02
    00081    #define STRING_DESCRIPTOR                     0x03
    00082    #define INTERFACE_DESCRIPTOR                  0x04
    00083    #define ENDPOINT_DESCRIPTOR                   0x05
    00084    #define DEVICE_QUALIFIER_DESCRIPTOR           0x06
    00085    #define OTHER_SPEED_CONFIGURATION_DESCRIPTOR  0x07
    00086
    00087
    00088
    00089                     // Standard Features
    00090    #define FEATURE_DEVICE_REMOTE_WAKEUP   0x01
    00091    #define FEATURE_ENDPOINT_HALT          0x00
    00092
    00093    #define TEST_J                         0x01
    00094    #define TEST_K                         0x02
    00095    #define TEST_SEO_NAK                   0x03
    00096    #define TEST_PACKET                    0x04
    00097    #define TEST_FORCE_ENABLE              0x05
    00098
    00099
    00100                      // Device Status
    00101    #define BUS_POWERED                       0
    00102    #define SELF_POWERED                      1
    00103
    00105
    00106 #define USB_MODE_UNDEFINED            0x00
    00107 #define USB_MODE_HOST                 0x01
    00108 #define USB_MODE_DEVICE               0x02
    00109
    00110 //_____ D E C L A R A T I O N S ____________________________________________
    00111
    00112 extern volatile U16 g_usb_event;
    00113 extern U8 g_usb_mode;
    00114 extern U8 usb_remote_wup_feature;
    00115
    00129 void usb_task_init     (void);
    00130
    00141 void usb_task          (void);
    00142
    00143 extern volatile U8 private_sof_counter;
    00144
    00145
    00146
    00148
    00149 #endif /* _USB_TASK_H_ */
    00150