USB Device Controller (UDC)
Copyright (c) 2009-2018 Microchip Technology Inc. and its subsidiaries.
#include "conf_usb.h"
#include "usb_protocol.h"
#include "udd.h"
#include "udc_desc.h"
#include "udi.h"
#include "udc.h"
Data Structures | |
struct | udc_string_desc_t |
USB device string descriptor Structure used to transfer ASCII strings to USB String descriptor structure. More... | |
Functions | |
static usb_conf_desc_t UDC_DESC_STORAGE * | udc_get_eof_conf (void) |
Returns a value to check the end of USB Configuration descriptor. More... | |
usb_iface_desc_t UDC_DESC_STORAGE * | udc_get_interface_desc (void) |
Returns a pointer on the current interface descriptor. More... | |
static bool | udc_iface_disable (uint8_t iface_num) |
Disables an usb device interface (UDI) This routine call the UDI corresponding to interface number. More... | |
static bool | udc_iface_enable (uint8_t iface_num, uint8_t setting_num) |
Enables an usb device interface (UDI) This routine calls the UDI corresponding to the interface and setting number. More... | |
static usb_conf_desc_t UDC_DESC_STORAGE * | udc_next_desc_in_iface (usb_conf_desc_t UDC_DESC_STORAGE *desc, uint8_t desc_id) |
Search specific descriptor in global interface descriptor. More... | |
bool | udc_process_setup (void) |
Main routine to manage the USB SETUP request. More... | |
static bool | udc_req_ep (void) |
Send the SETUP interface request to UDI. More... | |
static bool | udc_req_iface (void) |
Send the SETUP interface request to UDI. More... | |
static bool | udc_req_std_dev_clear_feature (void) |
Standard device request to change device status. More... | |
static bool | udc_req_std_dev_get_configuration (void) |
Standard device request to get configuration number. More... | |
static bool | udc_req_std_dev_get_descriptor (void) |
Standard device request to get descriptors about USB device. More... | |
static bool | udc_req_std_dev_get_status (void) |
Standard device request to get device status. More... | |
static bool | udc_req_std_dev_get_str_desc (void) |
Standard device request to get device string descriptor. More... | |
static bool | udc_req_std_dev_set_address (void) |
Standard device request to set device address. More... | |
static bool | udc_req_std_dev_set_configuration (void) |
Standard device request to enable a configuration. More... | |
static bool | udc_req_std_dev_set_feature (void) |
Standard device request to set a feature. More... | |
static bool | udc_req_std_ep_clear_feature (void) |
Standard endpoint request to clear endpoint feature. More... | |
static bool | udc_req_std_ep_get_status (void) |
Standard endpoint request to get endpoint status. More... | |
static bool | udc_req_std_ep_set_feature (void) |
Standard endpoint request to halt an endpoint. More... | |
static bool | udc_req_std_iface_get_setting (void) |
Standard interface request to get the alternate setting number of an interface. More... | |
static bool | udc_req_std_iface_set_setting (void) |
Standard interface request to set an alternate setting of an interface. More... | |
static bool | udc_reqstd (void) |
Main routine to manage the standard USB SETUP request. More... | |
void | udc_reset (void) |
Reset the current configuration of the USB device, This routines can be called by UDD when a RESET on the USB line occurs. More... | |
void | udc_sof_notify (void) |
To signal that a SOF is occurred. More... | |
void | udc_start (void) |
Start the USB Device stack. More... | |
void | udc_stop (void) |
Stop the USB Device stack. More... | |
static bool | udc_update_iface_desc (uint8_t iface_num, uint8_t setting_num) |
Search an interface descriptor This routine updates the internal pointer udc_ptr_iface. More... | |
static void | udc_valid_address (void) |
Change the address of device Callback called at the end of request set address. More... | |
Variables | |
Internal variables to manage the USB device | |
static le16_t | udc_device_status |
Device status state (see enum usb_device_status in usb_protocol.h) More... | |
static COMPILER_WORD_ALIGNED uint8_t | udc_iface_setting = 0 |
Device interface setting value. More... | |
static COMPILER_WORD_ALIGNED uint8_t | udc_num_configuration = 0 |
Device Configuration number selected by the USB host. More... | |
static udc_config_speed_t UDC_DESC_STORAGE * | udc_ptr_conf |
Pointer on the selected speed device configuration. More... | |
static usb_iface_desc_t UDC_DESC_STORAGE * | udc_ptr_iface |
Pointer on interface descriptor used by SETUP request. More... | |
Internal structure to store the USB device main strings | |
#define | USB_DEVICE_MANUFACTURE_NAME_SIZE (sizeof(udc_string_manufacturer_name)-1) |
#define | USB_DEVICE_PRODUCT_NAME_SIZE (sizeof(udc_string_product_name)-1) |
#define | USB_DEVICE_SERIAL_NAME_SIZE (sizeof(USB_DEVICE_SERIAL_NAME)-1) |
static COMPILER_WORD_ALIGNED UDC_DESC_STORAGE usb_str_lgid_desc_t | udc_string_desc_languageid |
Language ID of USB device (US ID by default) More... | |
static uint8_t | udc_string_manufacturer_name [] = USB_DEVICE_MANUFACTURE_NAME |
USB device manufacture name storage String is allocated only if USB_DEVICE_MANUFACTURE_NAME is declared by usb application configuration. More... | |
static uint8_t | udc_string_product_name [] = USB_DEVICE_PRODUCT_NAME |
USB device product name storage String is allocated only if USB_DEVICE_PRODUCT_NAME is declared by usb application configuration. More... | |
static COMPILER_WORD_ALIGNED UDC_DESC_STORAGE struct udc_string_desc_t | udc_string_desc |
static const uint8_t * | udc_get_string_serial_name (void) |
Get USB device serial number. More... | |