USB_Host_Shield_2.0
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
Classes | Macros | Functions
usbhub.h File Reference
#include <inttypes.h>
#include <avr/pgmspace.h>
#include "avrpins.h"
#include "max3421e.h"
#include "usbhost.h"
#include "usb_ch9.h"
#include "Usb.h"
#include <WProgram.h>
Include dependency graph for usbhub.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  HubDescriptor
 
struct  HubEvent
 
class  USBHub
 

Macros

#define USB_DESCRIPTOR_HUB   0x09
 
#define bmREQ_CLEAR_HUB_FEATURE   USB_SETUP_HOST_TO_DEVICE|USB_SETUP_TYPE_CLASS|USB_SETUP_RECIPIENT_DEVICE
 
#define bmREQ_CLEAR_PORT_FEATURE   USB_SETUP_HOST_TO_DEVICE|USB_SETUP_TYPE_CLASS|USB_SETUP_RECIPIENT_OTHER
 
#define bmREQ_CLEAR_TT_BUFFER   USB_SETUP_HOST_TO_DEVICE|USB_SETUP_TYPE_CLASS|USB_SETUP_RECIPIENT_OTHER
 
#define bmREQ_GET_HUB_DESCRIPTOR   USB_SETUP_DEVICE_TO_HOST|USB_SETUP_TYPE_CLASS|USB_SETUP_RECIPIENT_DEVICE
 
#define bmREQ_GET_HUB_STATUS   USB_SETUP_DEVICE_TO_HOST|USB_SETUP_TYPE_CLASS|USB_SETUP_RECIPIENT_DEVICE
 
#define bmREQ_GET_PORT_STATUS   USB_SETUP_DEVICE_TO_HOST|USB_SETUP_TYPE_CLASS|USB_SETUP_RECIPIENT_OTHER
 
#define bmREQ_RESET_TT   USB_SETUP_HOST_TO_DEVICE|USB_SETUP_TYPE_CLASS|USB_SETUP_RECIPIENT_OTHER
 
#define bmREQ_SET_HUB_DESCRIPTOR   USB_SETUP_HOST_TO_DEVICE|USB_SETUP_TYPE_CLASS|USB_SETUP_RECIPIENT_DEVICE
 
#define bmREQ_SET_HUB_FEATURE   USB_SETUP_HOST_TO_DEVICE|USB_SETUP_TYPE_CLASS|USB_SETUP_RECIPIENT_DEVICE
 
#define bmREQ_SET_PORT_FEATURE   USB_SETUP_HOST_TO_DEVICE|USB_SETUP_TYPE_CLASS|USB_SETUP_RECIPIENT_OTHER
 
#define bmREQ_GET_TT_STATE   USB_SETUP_DEVICE_TO_HOST|USB_SETUP_TYPE_CLASS|USB_SETUP_RECIPIENT_OTHER
 
#define bmREQ_STOP_TT   USB_SETUP_HOST_TO_DEVICE|USB_SETUP_TYPE_CLASS|USB_SETUP_RECIPIENT_OTHER
 
#define HUB_REQUEST_CLEAR_TT_BUFFER   8
 
#define HUB_REQUEST_RESET_TT   9
 
#define HUB_REQUEST_GET_TT_STATE   10
 
#define HUB_REQUEST_STOP_TT   11
 
#define HUB_FEATURE_C_HUB_LOCAL_POWER   0
 
#define HUB_FEATURE_C_HUB_OVER_CURRENT   1
 
#define HUB_FEATURE_PORT_CONNECTION   0
 
#define HUB_FEATURE_PORT_ENABLE   1
 
#define HUB_FEATURE_PORT_SUSPEND   2
 
#define HUB_FEATURE_PORT_OVER_CURRENT   3
 
#define HUB_FEATURE_PORT_RESET   4
 
#define HUB_FEATURE_PORT_POWER   8
 
#define HUB_FEATURE_PORT_LOW_SPEED   9
 
#define HUB_FEATURE_C_PORT_CONNECTION   16
 
#define HUB_FEATURE_C_PORT_ENABLE   17
 
#define HUB_FEATURE_C_PORT_SUSPEND   18
 
#define HUB_FEATURE_C_PORT_OVER_CURRENT   19
 
#define HUB_FEATURE_C_PORT_RESET   20
 
#define HUB_FEATURE_PORT_TEST   21
 
#define HUB_FEATURE_PORT_INDICATOR   22
 
#define HUB_PORT_TEST_MODE_J   1
 
#define HUB_PORT_TEST_MODE_K   2
 
#define HUB_PORT_TEST_MODE_SE0_NAK   3
 
#define HUB_PORT_TEST_MODE_PACKET   4
 
#define HUB_PORT_TEST_MODE_FORCE_ENABLE   5
 
#define HUB_PORT_INDICATOR_AUTO   0
 
#define HUB_PORT_INDICATOR_AMBER   1
 
#define HUB_PORT_INDICATOR_GREEN   2
 
#define HUB_PORT_INDICATOR_OFF   3
 
#define bmHUB_PORT_STATUS_PORT_CONNECTION   0x0001
 
#define bmHUB_PORT_STATUS_PORT_ENABLE   0x0002
 
#define bmHUB_PORT_STATUS_PORT_SUSPEND   0x0004
 
#define bmHUB_PORT_STATUS_PORT_OVER_CURRENT   0x0008
 
#define bmHUB_PORT_STATUS_PORT_RESET   0x0010
 
#define bmHUB_PORT_STATUS_PORT_POWER   0x0100
 
#define bmHUB_PORT_STATUS_PORT_LOW_SPEED   0x0200
 
#define bmHUB_PORT_STATUS_PORT_HIGH_SPEED   0x0400
 
#define bmHUB_PORT_STATUS_PORT_TEST   0x0800
 
#define bmHUB_PORT_STATUS_PORT_INDICATOR   0x1000
 
#define bmHUB_PORT_STATUS_C_PORT_CONNECTION   0x0001
 
#define bmHUB_PORT_STATUS_C_PORT_ENABLE   0x0002
 
#define bmHUB_PORT_STATUS_C_PORT_SUSPEND   0x0004
 
#define bmHUB_PORT_STATUS_C_PORT_OVER_CURRENT   0x0008
 
#define bmHUB_PORT_STATUS_C_PORT_RESET   0x0010
 
#define bmHUB_STATUS_LOCAL_POWER_SOURCE   0x01
 
#define bmHUB_STATUS_OVER_CURRENT   0x12
 
#define bmHUB_STATUS_C_LOCAL_POWER_SOURCE   0x01
 
#define bmHUB_STATUS_C_OVER_CURRENT   0x12
 
#define USB_STATE_HUB_PORT_CONFIGURING   0xb0
 
#define USB_STATE_HUB_PORT_POWERED_OFF   0xb1
 
#define USB_STATE_HUB_PORT_WAIT_FOR_POWER_GOOD   0xb2
 
#define USB_STATE_HUB_PORT_DISCONNECTED   0xb3
 
#define USB_STATE_HUB_PORT_DISABLED   0xb4
 
#define USB_STATE_HUB_PORT_RESETTING   0xb5
 
#define USB_STATE_HUB_PORT_ENABLED   0xb6
 
#define HUB_ERROR_PORT_HAS_BEEN_RESET   0xb1
 
#define bmHUB_PORT_STATUS_ALL_MAIN   ((0UL | bmHUB_PORT_STATUS_C_PORT_CONNECTION | bmHUB_PORT_STATUS_C_PORT_ENABLE | bmHUB_PORT_STATUS_C_PORT_SUSPEND | bmHUB_PORT_STATUS_C_PORT_RESET) << 16) | bmHUB_PORT_STATUS_PORT_POWER | bmHUB_PORT_STATUS_PORT_ENABLE | bmHUB_PORT_STATUS_PORT_CONNECTION | bmHUB_PORT_STATUS_PORT_SUSPEND)
 
#define bmHUB_PORT_STATE_CHECK_DISABLED   (0x0000 | bmHUB_PORT_STATUS_PORT_POWER | bmHUB_PORT_STATUS_PORT_ENABLE | bmHUB_PORT_STATUS_PORT_CONNECTION | bmHUB_PORT_STATUS_PORT_SUSPEND)
 
#define bmHUB_PORT_STATE_DISABLED   (0x0000 | bmHUB_PORT_STATUS_PORT_POWER | bmHUB_PORT_STATUS_PORT_CONNECTION)
 
#define bmHUB_PORT_EVENT_CONNECT   (((0UL | bmHUB_PORT_STATUS_C_PORT_CONNECTION) << 16) | bmHUB_PORT_STATUS_PORT_POWER | bmHUB_PORT_STATUS_PORT_CONNECTION)
 
#define bmHUB_PORT_EVENT_DISCONNECT   (((0UL | bmHUB_PORT_STATUS_C_PORT_CONNECTION) << 16) | bmHUB_PORT_STATUS_PORT_POWER)
 
#define bmHUB_PORT_EVENT_RESET_COMPLETE   (((0UL | bmHUB_PORT_STATUS_C_PORT_RESET) << 16) | bmHUB_PORT_STATUS_PORT_POWER | bmHUB_PORT_STATUS_PORT_ENABLE | bmHUB_PORT_STATUS_PORT_CONNECTION)
 
#define bmHUB_PORT_EVENT_LS_CONNECT   (((0UL | bmHUB_PORT_STATUS_C_PORT_CONNECTION) << 16) | bmHUB_PORT_STATUS_PORT_POWER | bmHUB_PORT_STATUS_PORT_CONNECTION | bmHUB_PORT_STATUS_PORT_LOW_SPEED)
 
#define bmHUB_PORT_EVENT_LS_RESET_COMPLETE   (((0UL | bmHUB_PORT_STATUS_C_PORT_RESET) << 16) | bmHUB_PORT_STATUS_PORT_POWER | bmHUB_PORT_STATUS_PORT_ENABLE | bmHUB_PORT_STATUS_PORT_CONNECTION | bmHUB_PORT_STATUS_PORT_LOW_SPEED)
 
#define bmHUB_PORT_EVENT_LS_PORT_ENABLED   (((0UL | bmHUB_PORT_STATUS_C_PORT_CONNECTION | bmHUB_PORT_STATUS_C_PORT_ENABLE) << 16) | bmHUB_PORT_STATUS_PORT_POWER | bmHUB_PORT_STATUS_PORT_ENABLE | bmHUB_PORT_STATUS_PORT_CONNECTION | bmHUB_PORT_STATUS_PORT_LOW_SPEED)
 

Functions

void PrintHubPortStatus (USB *usbptr, uint8_t addr, uint8_t port, bool print_changes=false)
 

Macro Definition Documentation

#define bmHUB_PORT_EVENT_CONNECT   (((0UL | bmHUB_PORT_STATUS_C_PORT_CONNECTION) << 16) | bmHUB_PORT_STATUS_PORT_POWER | bmHUB_PORT_STATUS_PORT_CONNECTION)
#define bmHUB_PORT_EVENT_DISCONNECT   (((0UL | bmHUB_PORT_STATUS_C_PORT_CONNECTION) << 16) | bmHUB_PORT_STATUS_PORT_POWER)
#define bmHUB_PORT_EVENT_LS_CONNECT   (((0UL | bmHUB_PORT_STATUS_C_PORT_CONNECTION) << 16) | bmHUB_PORT_STATUS_PORT_POWER | bmHUB_PORT_STATUS_PORT_CONNECTION | bmHUB_PORT_STATUS_PORT_LOW_SPEED)
#define bmHUB_PORT_EVENT_LS_PORT_ENABLED   (((0UL | bmHUB_PORT_STATUS_C_PORT_CONNECTION | bmHUB_PORT_STATUS_C_PORT_ENABLE) << 16) | bmHUB_PORT_STATUS_PORT_POWER | bmHUB_PORT_STATUS_PORT_ENABLE | bmHUB_PORT_STATUS_PORT_CONNECTION | bmHUB_PORT_STATUS_PORT_LOW_SPEED)
#define bmHUB_PORT_EVENT_LS_RESET_COMPLETE   (((0UL | bmHUB_PORT_STATUS_C_PORT_RESET) << 16) | bmHUB_PORT_STATUS_PORT_POWER | bmHUB_PORT_STATUS_PORT_ENABLE | bmHUB_PORT_STATUS_PORT_CONNECTION | bmHUB_PORT_STATUS_PORT_LOW_SPEED)
#define bmHUB_PORT_EVENT_RESET_COMPLETE   (((0UL | bmHUB_PORT_STATUS_C_PORT_RESET) << 16) | bmHUB_PORT_STATUS_PORT_POWER | bmHUB_PORT_STATUS_PORT_ENABLE | bmHUB_PORT_STATUS_PORT_CONNECTION)
#define bmHUB_PORT_STATE_CHECK_DISABLED   (0x0000 | bmHUB_PORT_STATUS_PORT_POWER | bmHUB_PORT_STATUS_PORT_ENABLE | bmHUB_PORT_STATUS_PORT_CONNECTION | bmHUB_PORT_STATUS_PORT_SUSPEND)
#define bmHUB_PORT_STATE_DISABLED   (0x0000 | bmHUB_PORT_STATUS_PORT_POWER | bmHUB_PORT_STATUS_PORT_CONNECTION)
#define bmHUB_PORT_STATUS_ALL_MAIN   ((0UL | bmHUB_PORT_STATUS_C_PORT_CONNECTION | bmHUB_PORT_STATUS_C_PORT_ENABLE | bmHUB_PORT_STATUS_C_PORT_SUSPEND | bmHUB_PORT_STATUS_C_PORT_RESET) << 16) | bmHUB_PORT_STATUS_PORT_POWER | bmHUB_PORT_STATUS_PORT_ENABLE | bmHUB_PORT_STATUS_PORT_CONNECTION | bmHUB_PORT_STATUS_PORT_SUSPEND)
#define bmHUB_PORT_STATUS_C_PORT_CONNECTION   0x0001
#define bmHUB_PORT_STATUS_C_PORT_ENABLE   0x0002
#define bmHUB_PORT_STATUS_C_PORT_OVER_CURRENT   0x0008
#define bmHUB_PORT_STATUS_C_PORT_RESET   0x0010
#define bmHUB_PORT_STATUS_C_PORT_SUSPEND   0x0004
#define bmHUB_PORT_STATUS_PORT_CONNECTION   0x0001
#define bmHUB_PORT_STATUS_PORT_ENABLE   0x0002
#define bmHUB_PORT_STATUS_PORT_HIGH_SPEED   0x0400
#define bmHUB_PORT_STATUS_PORT_INDICATOR   0x1000
#define bmHUB_PORT_STATUS_PORT_LOW_SPEED   0x0200
#define bmHUB_PORT_STATUS_PORT_OVER_CURRENT   0x0008
#define bmHUB_PORT_STATUS_PORT_POWER   0x0100
#define bmHUB_PORT_STATUS_PORT_RESET   0x0010
#define bmHUB_PORT_STATUS_PORT_SUSPEND   0x0004
#define bmHUB_PORT_STATUS_PORT_TEST   0x0800
#define bmHUB_STATUS_C_LOCAL_POWER_SOURCE   0x01
#define bmHUB_STATUS_C_OVER_CURRENT   0x12
#define bmHUB_STATUS_LOCAL_POWER_SOURCE   0x01
#define bmHUB_STATUS_OVER_CURRENT   0x12
#define HUB_ERROR_PORT_HAS_BEEN_RESET   0xb1
#define HUB_FEATURE_C_HUB_LOCAL_POWER   0
#define HUB_FEATURE_C_HUB_OVER_CURRENT   1
#define HUB_FEATURE_C_PORT_CONNECTION   16
#define HUB_FEATURE_C_PORT_ENABLE   17
#define HUB_FEATURE_C_PORT_OVER_CURRENT   19
#define HUB_FEATURE_C_PORT_RESET   20
#define HUB_FEATURE_C_PORT_SUSPEND   18
#define HUB_FEATURE_PORT_CONNECTION   0
#define HUB_FEATURE_PORT_ENABLE   1
#define HUB_FEATURE_PORT_INDICATOR   22
#define HUB_FEATURE_PORT_LOW_SPEED   9
#define HUB_FEATURE_PORT_OVER_CURRENT   3
#define HUB_FEATURE_PORT_POWER   8
#define HUB_FEATURE_PORT_RESET   4
#define HUB_FEATURE_PORT_SUSPEND   2
#define HUB_FEATURE_PORT_TEST   21
#define HUB_PORT_INDICATOR_AMBER   1
#define HUB_PORT_INDICATOR_AUTO   0
#define HUB_PORT_INDICATOR_GREEN   2
#define HUB_PORT_INDICATOR_OFF   3
#define HUB_PORT_TEST_MODE_FORCE_ENABLE   5
#define HUB_PORT_TEST_MODE_J   1
#define HUB_PORT_TEST_MODE_K   2
#define HUB_PORT_TEST_MODE_PACKET   4
#define HUB_PORT_TEST_MODE_SE0_NAK   3
#define HUB_REQUEST_CLEAR_TT_BUFFER   8
#define HUB_REQUEST_GET_TT_STATE   10
#define HUB_REQUEST_RESET_TT   9
#define HUB_REQUEST_STOP_TT   11
#define USB_DESCRIPTOR_HUB   0x09
#define USB_STATE_HUB_PORT_CONFIGURING   0xb0
#define USB_STATE_HUB_PORT_DISABLED   0xb4
#define USB_STATE_HUB_PORT_DISCONNECTED   0xb3
#define USB_STATE_HUB_PORT_ENABLED   0xb6
#define USB_STATE_HUB_PORT_POWERED_OFF   0xb1
#define USB_STATE_HUB_PORT_RESETTING   0xb5
#define USB_STATE_HUB_PORT_WAIT_FOR_POWER_GOOD   0xb2

Function Documentation

void PrintHubPortStatus ( USB usbptr,
uint8_t  addr,
uint8_t  port,
bool  print_changes = false 
)