Defines | |
#define | ATTACHED 0 |
#define | POWERED 1 |
#define | DEFAULT 2 |
#define | ADDRESSED 3 |
#define | CONFIGURED 4 |
#define | SUSPENDED 5 |
#define | USB_REMOTE_WAKEUP 1 |
#define | OTG_B_HNP_ENABLE 3 |
#define | OTG_A_HNP_SUPPORT 4 |
#define | OTG_A_ALT_HNP_SUPPORT 5 |
#define | Is_device_enumerated() ((usb_configuration_nb!=0) ? TRUE : FALSE) |
#define | Is_device_not_enumerated() ((usb_configuration_nb!=0) ? FALSE : TRUE) |
Functions | |
void | usb_process_request (void) |
void | usb_generate_remote_wakeup (void) |
This function manages the remote wake up generation. | |
Variables | |
U8 | usb_configuration_nb |
Public : (U8) usb_configuration_nb Store the number of the USB configuration used by the USB device when its value is different from zero, it means the device mode is enumerated Used with USB_DEVICE_FEATURE == ENABLED only /. | |
U8 | remote_wakeup_feature |
U8 | f_get_serial_string |
#define ATTACHED 0 |
Definition at line 67 of file usb_standard_request.h.
#define POWERED 1 |
Definition at line 68 of file usb_standard_request.h.
#define DEFAULT 2 |
Definition at line 69 of file usb_standard_request.h.
#define ADDRESSED 3 |
Definition at line 70 of file usb_standard_request.h.
#define CONFIGURED 4 |
Definition at line 71 of file usb_standard_request.h.
#define SUSPENDED 5 |
Definition at line 72 of file usb_standard_request.h.
#define USB_REMOTE_WAKEUP 1 |
#define OTG_B_HNP_ENABLE 3 |
#define OTG_A_HNP_SUPPORT 4 |
#define OTG_A_ALT_HNP_SUPPORT 5 |
#define Is_device_enumerated | ( | ) | ((usb_configuration_nb!=0) ? TRUE : FALSE) |
Returns true when device connected and correctly enumerated with an host. The device high level application should tests this before performing any applicative requests
Definition at line 84 of file usb_standard_request.h.
Referenced by device_template_task().
#define Is_device_not_enumerated | ( | ) | ((usb_configuration_nb!=0) ? FALSE : TRUE) |
Definition at line 85 of file usb_standard_request.h.
void usb_process_request | ( | void | ) |
This function reads the SETUP request sent to the default control endpoint and calls the appropriate function. When exiting of the usb_read_request function, the device is ready to manage the next request.
If the received request is not supported or a none USB standard request, the function will call for custom decoding function in usb_specific_request module.
none |
Definition at line 106 of file usb_standard_request.c.
References endpoint_status, EP_CONTROL, MSK_EP_DIR, SETUP_CLEAR_FEATURE, SETUP_GET_CONFIGURATION, SETUP_GET_DESCRIPTOR, SETUP_GET_INTERFACE, SETUP_GET_STATUS, SETUP_SET_ADDRESS, SETUP_SET_CONFIGURATION, SETUP_SET_FEATURE, SETUP_SET_INTERFACE, Usb_ack_control_out, Usb_ack_receive_setup, usb_clear_feature(), Usb_enable_stall_handshake, usb_get_configuration(), usb_get_descriptor(), usb_get_interface(), usb_get_status(), Usb_read_byte, usb_set_address(), usb_set_configuration(), usb_set_feature(), usb_set_interface(), USB_SETUP_GET_STAND_DEVICE, USB_SETUP_GET_STAND_INTERFACE, USB_SETUP_SET_STAND_DEVICE, USB_SETUP_SET_STAND_INTERFACE, and usb_user_read_request().
00107 { 00108 U8 bmRequestType; 00109 U8 bmRequest; 00110 00111 Usb_ack_control_out(); 00112 bmRequestType = Usb_read_byte(); 00113 bmRequest = Usb_read_byte(); 00114 00115 switch (bmRequest) 00116 { 00117 case SETUP_GET_DESCRIPTOR: 00118 if (USB_SETUP_GET_STAND_DEVICE == bmRequestType) 00119 { 00120 if( usb_get_descriptor() ) 00121 return; 00122 } 00123 break; 00124 00125 case SETUP_GET_CONFIGURATION: 00126 if (USB_SETUP_GET_STAND_DEVICE == bmRequestType) 00127 { 00128 usb_get_configuration(); 00129 return; 00130 } 00131 break; 00132 00133 case SETUP_SET_ADDRESS: 00134 if (USB_SETUP_SET_STAND_DEVICE == bmRequestType) 00135 { 00136 usb_set_address(); 00137 return; 00138 } 00139 break; 00140 00141 case SETUP_SET_CONFIGURATION: 00142 if (USB_SETUP_SET_STAND_DEVICE == bmRequestType) 00143 { 00144 if( usb_set_configuration() ) 00145 return; 00146 } 00147 break; 00148 00149 case SETUP_CLEAR_FEATURE: 00150 if (usb_clear_feature(bmRequestType)) 00151 return; 00152 break; 00153 00154 case SETUP_SET_FEATURE: 00155 if (usb_set_feature(bmRequestType)) 00156 return; 00157 break; 00158 00159 case SETUP_GET_STATUS: 00160 if (usb_get_status(bmRequestType)) 00161 return; 00162 break; 00163 00164 case SETUP_GET_INTERFACE: 00165 if (USB_SETUP_GET_STAND_INTERFACE == bmRequestType) 00166 { 00167 if( usb_get_interface() ) 00168 return; 00169 } 00170 break; 00171 00172 case SETUP_SET_INTERFACE: 00173 if (bmRequestType == USB_SETUP_SET_STAND_INTERFACE) 00174 { 00175 if( usb_set_interface() ) 00176 return; 00177 } 00178 break; 00179 00180 default: 00181 break; 00182 } 00183 00184 // un-supported like standard request => call to user read request 00185 if( !usb_user_read_request(bmRequestType, bmRequest) ) 00186 { 00187 // Request unknow in the specific request list from interface 00188 // keep that order (set StallRq/clear RxSetup) or a 00189 // OUT request following the SETUP may be acknowledged 00190 Usb_enable_stall_handshake(); 00191 Usb_ack_receive_setup(); 00192 endpoint_status[(EP_CONTROL & MSK_EP_DIR)] = 0x01; 00193 } 00194 }
void usb_generate_remote_wakeup | ( | void | ) |
This function manages the remote wake up generation.
This function manages the remote wakeup generation to wake up the host controlle.
If the received request is not supported or a none USB standard request, the function will call for custom decoding function in usb_specific_request module.
none |
Definition at line 639 of file usb_standard_request.c.
References DISABLED, ENABLED, FALSE, Is_pll_ready, remote_wakeup_feature, Usb_initiate_remote_wake_up, Usb_unfreeze_clock, and Wait_pll_ready.
00640 { 00641 if(Is_pll_ready()==FALSE) 00642 { 00643 Pll_start_auto(); 00644 Wait_pll_ready(); 00645 } 00646 Usb_unfreeze_clock(); 00647 if (remote_wakeup_feature == ENABLED) 00648 { 00649 Usb_initiate_remote_wake_up(); 00650 remote_wakeup_feature = DISABLED; 00651 } 00652 }
Public : (U8) usb_configuration_nb Store the number of the USB configuration used by the USB device when its value is different from zero, it means the device mode is enumerated Used with USB_DEVICE_FEATURE == ENABLED only /.
Definition at line 97 of file usb_standard_request.c.
Definition at line 98 of file usb_standard_request.c.
Definition at line 81 of file usb_standard_request.c.