Microchip® Advanced Software Framework

 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
USB host operating mode configuration

Modules

 USB host custom actions
 

Macros

#define CLASS_SUBCLASS_PROTOCOL
 CLASS/SUBCLASS/PROTOCOL supported table list. More...
 
#define DEVICE_ADDRESS   0x05
 The address that will be assigned to the connected device. More...
 
#define HOST_AUTO_CFG_ENDPOINT   ENABLE
 Try to configure the host pipe according to the device descriptors received. More...
 
#define HOST_CONTINUOUS_SOF_INTERRUPT   DISABLE
 Host Start-of-Frame interrupt always enabled. More...
 
#define HOST_ERROR_RESTART   ENABLE
 When host error state detected, go to detached state. More...
 
#define HOST_STRICT_VID_PID_TABLE   DISABLE
 The host controller will be limited to the strict VID/PID list. More...
 
#define ID_PIN_CHANGE_GENERATE_RESET   ENABLE
 Force CPU reset upon ID pin change. More...
 
#define MAX_EP_PER_INTERFACE   2
 The maximal number of endpoints per interface supported. More...
 
#define MAX_INTERFACE_SUPPORTED   0x08
 The maximal number of interfaces that can be supported (composite device) More...
 
#define NAK_RECEIVE_TIMEOUT   0x0FFF
 Number of NAK handshakes before time-out for receive functions (up to 0xFFFF) More...
 
#define NAK_SEND_TIMEOUT   0x0FFF
 Number of NAK handshakes before time-out for transmit functions (up to 0xFFFF) More...
 
#define NAK_TIMEOUT_ENABLE   DISABLE
 Enable cpt NAK time-out for host transfer. More...
 
#define PIPE_AUDIO_IN   pipe_audio_in
 
#define SIZEOF_DATA_STAGE   1024
 The size of RAM buffer reserved for descriptor handling. More...
 
#define TIMEOUT_DELAY   10
 Delay 1/4 s (250 ms) before time-out value. More...
 
#define TIMEOUT_DELAY_ENABLE   ENABLE
 Enable time-out delay for host transfer. More...
 
#define USB_HOST_PIPE_INTERRUPT_TRANSFER   DISABLE
 USB host pipes transfers use USB communication interrupt (allows to use non-blocking functions) More...
 
#define VID_PID_TABLE   {ATMEL_VID, 1, AUDIO_MIC_EXAMPLE_PID}
 VID/PID supported table list. More...
 

Functions

void host_sof_action (void)
 host_sof_action More...
 
void host_suspend_action (void)
 
bool host_user_check_class (const uint8_t *descriptor)
 This function is called by the standard USB host_check_class() function when the Host is analyzing the configuration descriptor previously sent by a USB Device. More...
 
void host_user_check_class_init (void)
 Initialization. More...
 

Variables

volatile bool audio_connected
 
volatile bool audio_new_device_connected
 
uint8_t pipe_audio_in
 

#define CLASS_SUBCLASS_PROTOCOL
Value:
#define NO_PROTOCOL
Definition: usb_ids.h:87
#define AUDIO_CLASS
Definition: usb_ids.h:100
#define AUDIOCONTROL_SUBCLASS
Definition: usb_ids.h:101
#define AUDIOSTREAMING_SUBCLASS
Definition: usb_ids.h:102

CLASS/SUBCLASS/PROTOCOL supported table list.

This table contains the CLASS/SUBCLASS/PROTOCOL that are supported by the reduced-host application. This table definition allows to extend the reduced application device support to an entire CLASS/ SUBCLASS/PROTOCOL instead of a simple VID/PID table list.

CLASS_SUBCLASS_PROTOCOL format definition:
#define CLASS_SUBCLASS_PROTOCOL {CLASS1, SUB_CLASS1, PROTOCOL1,
...
CLASSn, SUB_CLASSn, PROTOCOLn}

#define DEVICE_ADDRESS   0x05

The address that will be assigned to the connected device.

Referenced by usb_host_task().

#define HOST_AUTO_CFG_ENDPOINT   ENABLE

Try to configure the host pipe according to the device descriptors received.

#define HOST_CONTINUOUS_SOF_INTERRUPT   DISABLE

Host Start-of-Frame interrupt always enabled.

#define HOST_ERROR_RESTART   ENABLE

When host error state detected, go to detached state.

#define HOST_STRICT_VID_PID_TABLE   DISABLE

The host controller will be limited to the strict VID/PID list.

When enabled, if the device VID/PID does not belong to the supported list, the host controller software will not go to deeper configuration, but to error state.

#define ID_PIN_CHANGE_GENERATE_RESET   ENABLE

Force CPU reset upon ID pin change.

#define MAX_EP_PER_INTERFACE   2

The maximal number of endpoints per interface supported.

Referenced by host_check_class().

#define MAX_INTERFACE_SUPPORTED   0x08

The maximal number of interfaces that can be supported (composite device)

Referenced by host_check_class(), and host_user_check_class().

#define NAK_RECEIVE_TIMEOUT   0x0FFF

Number of NAK handshakes before time-out for receive functions (up to 0xFFFF)

Referenced by host_get_data().

#define NAK_SEND_TIMEOUT   0x0FFF

Number of NAK handshakes before time-out for transmit functions (up to 0xFFFF)

Referenced by host_send_data().

#define NAK_TIMEOUT_ENABLE   DISABLE

Enable cpt NAK time-out for host transfer.

#define PIPE_AUDIO_IN   pipe_audio_in

Referenced by host_audio_task().

#define SIZEOF_DATA_STAGE   1024

The size of RAM buffer reserved for descriptor handling.

Referenced by host_check_class().

#define TIMEOUT_DELAY   10

Delay 1/4 s (250 ms) before time-out value.

Referenced by host_get_data(), host_send_data(), and usb_general_interrupt().

#define TIMEOUT_DELAY_ENABLE   ENABLE

Enable time-out delay for host transfer.

#define USB_HOST_PIPE_INTERRUPT_TRANSFER   DISABLE

USB host pipes transfers use USB communication interrupt (allows to use non-blocking functions)

#define VID_PID_TABLE   {ATMEL_VID, 1, AUDIO_MIC_EXAMPLE_PID}

VID/PID supported table list.

This table contains the VID/PID that are supported by the reduced-host application.

VID_PID_TABLE format definition:
#define VID_PID_TABLE {VID1, number_of_PIDs_for_VID1, PID11_value, ..., PID1X_Value,
...
VIDn, number_of_PIDs_for_VIDn, PIDn1_value, ..., PIDnY_Value}

void host_sof_action ( void  )

host_sof_action

This function increments the sof_cnt counter each time the USB Start-of-Frame interrupt subroutine is executed (1 ms). Useful to manage time delays

void host_suspend_action ( void  )
Todo:
Implement this on the silicon version

References Enable_global_interrupt.

bool host_user_check_class ( const uint8_t *  descriptor)

This function is called by the standard USB host_check_class() function when the Host is analyzing the configuration descriptor previously sent by a USB Device.

The function will be called for each descriptor found in the configuration descriptor.

void host_user_check_class_init ( void  )

Initialization.

volatile bool audio_connected
volatile bool audio_new_device_connected

Referenced by host_audio_task().

uint8_t pipe_audio_in

Referenced by host_audio_task().