USB Host Shield 2.0
Classes | Macros | Functions
usbhub.h File Reference
#include "Usb.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

◆ USB_DESCRIPTOR_HUB

#define USB_DESCRIPTOR_HUB   0x09

Definition at line 22 of file usbhub.h.

◆ bmREQ_CLEAR_HUB_FEATURE

Definition at line 25 of file usbhub.h.

◆ bmREQ_CLEAR_PORT_FEATURE

Definition at line 26 of file usbhub.h.

◆ bmREQ_CLEAR_TT_BUFFER

Definition at line 27 of file usbhub.h.

◆ bmREQ_GET_HUB_DESCRIPTOR

Definition at line 28 of file usbhub.h.

◆ bmREQ_GET_HUB_STATUS

Definition at line 29 of file usbhub.h.

◆ bmREQ_GET_PORT_STATUS

Definition at line 30 of file usbhub.h.

◆ bmREQ_RESET_TT

Definition at line 31 of file usbhub.h.

◆ bmREQ_SET_HUB_DESCRIPTOR

Definition at line 32 of file usbhub.h.

◆ bmREQ_SET_HUB_FEATURE

Definition at line 33 of file usbhub.h.

◆ bmREQ_SET_PORT_FEATURE

Definition at line 34 of file usbhub.h.

◆ bmREQ_GET_TT_STATE

Definition at line 35 of file usbhub.h.

◆ bmREQ_STOP_TT

Definition at line 36 of file usbhub.h.

◆ HUB_REQUEST_CLEAR_TT_BUFFER

#define HUB_REQUEST_CLEAR_TT_BUFFER   8

Definition at line 39 of file usbhub.h.

◆ HUB_REQUEST_RESET_TT

#define HUB_REQUEST_RESET_TT   9

Definition at line 40 of file usbhub.h.

◆ HUB_REQUEST_GET_TT_STATE

#define HUB_REQUEST_GET_TT_STATE   10

Definition at line 41 of file usbhub.h.

◆ HUB_REQUEST_STOP_TT

#define HUB_REQUEST_STOP_TT   11

Definition at line 42 of file usbhub.h.

◆ HUB_FEATURE_C_HUB_LOCAL_POWER

#define HUB_FEATURE_C_HUB_LOCAL_POWER   0

Definition at line 45 of file usbhub.h.

◆ HUB_FEATURE_C_HUB_OVER_CURRENT

#define HUB_FEATURE_C_HUB_OVER_CURRENT   1

Definition at line 46 of file usbhub.h.

◆ HUB_FEATURE_PORT_CONNECTION

#define HUB_FEATURE_PORT_CONNECTION   0

Definition at line 47 of file usbhub.h.

◆ HUB_FEATURE_PORT_ENABLE

#define HUB_FEATURE_PORT_ENABLE   1

Definition at line 48 of file usbhub.h.

◆ HUB_FEATURE_PORT_SUSPEND

#define HUB_FEATURE_PORT_SUSPEND   2

Definition at line 49 of file usbhub.h.

◆ HUB_FEATURE_PORT_OVER_CURRENT

#define HUB_FEATURE_PORT_OVER_CURRENT   3

Definition at line 50 of file usbhub.h.

◆ HUB_FEATURE_PORT_RESET

#define HUB_FEATURE_PORT_RESET   4

Definition at line 51 of file usbhub.h.

◆ HUB_FEATURE_PORT_POWER

#define HUB_FEATURE_PORT_POWER   8

Definition at line 52 of file usbhub.h.

◆ HUB_FEATURE_PORT_LOW_SPEED

#define HUB_FEATURE_PORT_LOW_SPEED   9

Definition at line 53 of file usbhub.h.

◆ HUB_FEATURE_C_PORT_CONNECTION

#define HUB_FEATURE_C_PORT_CONNECTION   16

Definition at line 54 of file usbhub.h.

◆ HUB_FEATURE_C_PORT_ENABLE

#define HUB_FEATURE_C_PORT_ENABLE   17

Definition at line 55 of file usbhub.h.

◆ HUB_FEATURE_C_PORT_SUSPEND

#define HUB_FEATURE_C_PORT_SUSPEND   18

Definition at line 56 of file usbhub.h.

◆ HUB_FEATURE_C_PORT_OVER_CURRENT

#define HUB_FEATURE_C_PORT_OVER_CURRENT   19

Definition at line 57 of file usbhub.h.

◆ HUB_FEATURE_C_PORT_RESET

#define HUB_FEATURE_C_PORT_RESET   20

Definition at line 58 of file usbhub.h.

◆ HUB_FEATURE_PORT_TEST

#define HUB_FEATURE_PORT_TEST   21

Definition at line 59 of file usbhub.h.

◆ HUB_FEATURE_PORT_INDICATOR

#define HUB_FEATURE_PORT_INDICATOR   22

Definition at line 60 of file usbhub.h.

◆ HUB_PORT_TEST_MODE_J

#define HUB_PORT_TEST_MODE_J   1

Definition at line 63 of file usbhub.h.

◆ HUB_PORT_TEST_MODE_K

#define HUB_PORT_TEST_MODE_K   2

Definition at line 64 of file usbhub.h.

◆ HUB_PORT_TEST_MODE_SE0_NAK

#define HUB_PORT_TEST_MODE_SE0_NAK   3

Definition at line 65 of file usbhub.h.

◆ HUB_PORT_TEST_MODE_PACKET

#define HUB_PORT_TEST_MODE_PACKET   4

Definition at line 66 of file usbhub.h.

◆ HUB_PORT_TEST_MODE_FORCE_ENABLE

#define HUB_PORT_TEST_MODE_FORCE_ENABLE   5

Definition at line 67 of file usbhub.h.

◆ HUB_PORT_INDICATOR_AUTO

#define HUB_PORT_INDICATOR_AUTO   0

Definition at line 70 of file usbhub.h.

◆ HUB_PORT_INDICATOR_AMBER

#define HUB_PORT_INDICATOR_AMBER   1

Definition at line 71 of file usbhub.h.

◆ HUB_PORT_INDICATOR_GREEN

#define HUB_PORT_INDICATOR_GREEN   2

Definition at line 72 of file usbhub.h.

◆ HUB_PORT_INDICATOR_OFF

#define HUB_PORT_INDICATOR_OFF   3

Definition at line 73 of file usbhub.h.

◆ bmHUB_PORT_STATUS_PORT_CONNECTION

#define bmHUB_PORT_STATUS_PORT_CONNECTION   0x0001

Definition at line 76 of file usbhub.h.

◆ bmHUB_PORT_STATUS_PORT_ENABLE

#define bmHUB_PORT_STATUS_PORT_ENABLE   0x0002

Definition at line 77 of file usbhub.h.

◆ bmHUB_PORT_STATUS_PORT_SUSPEND

#define bmHUB_PORT_STATUS_PORT_SUSPEND   0x0004

Definition at line 78 of file usbhub.h.

◆ bmHUB_PORT_STATUS_PORT_OVER_CURRENT

#define bmHUB_PORT_STATUS_PORT_OVER_CURRENT   0x0008

Definition at line 79 of file usbhub.h.

◆ bmHUB_PORT_STATUS_PORT_RESET

#define bmHUB_PORT_STATUS_PORT_RESET   0x0010

Definition at line 80 of file usbhub.h.

◆ bmHUB_PORT_STATUS_PORT_POWER

#define bmHUB_PORT_STATUS_PORT_POWER   0x0100

Definition at line 81 of file usbhub.h.

◆ bmHUB_PORT_STATUS_PORT_LOW_SPEED

#define bmHUB_PORT_STATUS_PORT_LOW_SPEED   0x0200

Definition at line 82 of file usbhub.h.

◆ bmHUB_PORT_STATUS_PORT_HIGH_SPEED

#define bmHUB_PORT_STATUS_PORT_HIGH_SPEED   0x0400

Definition at line 83 of file usbhub.h.

◆ bmHUB_PORT_STATUS_PORT_TEST

#define bmHUB_PORT_STATUS_PORT_TEST   0x0800

Definition at line 84 of file usbhub.h.

◆ bmHUB_PORT_STATUS_PORT_INDICATOR

#define bmHUB_PORT_STATUS_PORT_INDICATOR   0x1000

Definition at line 85 of file usbhub.h.

◆ bmHUB_PORT_STATUS_C_PORT_CONNECTION

#define bmHUB_PORT_STATUS_C_PORT_CONNECTION   0x0001

Definition at line 88 of file usbhub.h.

◆ bmHUB_PORT_STATUS_C_PORT_ENABLE

#define bmHUB_PORT_STATUS_C_PORT_ENABLE   0x0002

Definition at line 89 of file usbhub.h.

◆ bmHUB_PORT_STATUS_C_PORT_SUSPEND

#define bmHUB_PORT_STATUS_C_PORT_SUSPEND   0x0004

Definition at line 90 of file usbhub.h.

◆ bmHUB_PORT_STATUS_C_PORT_OVER_CURRENT

#define bmHUB_PORT_STATUS_C_PORT_OVER_CURRENT   0x0008

Definition at line 91 of file usbhub.h.

◆ bmHUB_PORT_STATUS_C_PORT_RESET

#define bmHUB_PORT_STATUS_C_PORT_RESET   0x0010

Definition at line 92 of file usbhub.h.

◆ bmHUB_STATUS_LOCAL_POWER_SOURCE

#define bmHUB_STATUS_LOCAL_POWER_SOURCE   0x01

Definition at line 95 of file usbhub.h.

◆ bmHUB_STATUS_OVER_CURRENT

#define bmHUB_STATUS_OVER_CURRENT   0x12

Definition at line 96 of file usbhub.h.

◆ bmHUB_STATUS_C_LOCAL_POWER_SOURCE

#define bmHUB_STATUS_C_LOCAL_POWER_SOURCE   0x01

Definition at line 99 of file usbhub.h.

◆ bmHUB_STATUS_C_OVER_CURRENT

#define bmHUB_STATUS_C_OVER_CURRENT   0x12

Definition at line 100 of file usbhub.h.

◆ USB_STATE_HUB_PORT_CONFIGURING

#define USB_STATE_HUB_PORT_CONFIGURING   0xb0

Definition at line 104 of file usbhub.h.

◆ USB_STATE_HUB_PORT_POWERED_OFF

#define USB_STATE_HUB_PORT_POWERED_OFF   0xb1

Definition at line 105 of file usbhub.h.

◆ USB_STATE_HUB_PORT_WAIT_FOR_POWER_GOOD

#define USB_STATE_HUB_PORT_WAIT_FOR_POWER_GOOD   0xb2

Definition at line 106 of file usbhub.h.

◆ USB_STATE_HUB_PORT_DISCONNECTED

#define USB_STATE_HUB_PORT_DISCONNECTED   0xb3

Definition at line 107 of file usbhub.h.

◆ USB_STATE_HUB_PORT_DISABLED

#define USB_STATE_HUB_PORT_DISABLED   0xb4

Definition at line 108 of file usbhub.h.

◆ USB_STATE_HUB_PORT_RESETTING

#define USB_STATE_HUB_PORT_RESETTING   0xb5

Definition at line 109 of file usbhub.h.

◆ USB_STATE_HUB_PORT_ENABLED

#define USB_STATE_HUB_PORT_ENABLED   0xb6

Definition at line 110 of file usbhub.h.

◆ HUB_ERROR_PORT_HAS_BEEN_RESET

#define HUB_ERROR_PORT_HAS_BEEN_RESET   0xb1

Definition at line 113 of file usbhub.h.

◆ bmHUB_PORT_STATUS_ALL_MAIN

Definition at line 116 of file usbhub.h.

◆ bmHUB_PORT_STATE_CHECK_DISABLED

Definition at line 119 of file usbhub.h.

◆ bmHUB_PORT_STATE_DISABLED

#define bmHUB_PORT_STATE_DISABLED   (0x0000 | bmHUB_PORT_STATUS_PORT_POWER | bmHUB_PORT_STATUS_PORT_CONNECTION)

Definition at line 122 of file usbhub.h.

◆ bmHUB_PORT_EVENT_CONNECT

#define bmHUB_PORT_EVENT_CONNECT   (((0UL | bmHUB_PORT_STATUS_C_PORT_CONNECTION) << 16) | bmHUB_PORT_STATUS_PORT_POWER | bmHUB_PORT_STATUS_PORT_CONNECTION)

Definition at line 125 of file usbhub.h.

◆ bmHUB_PORT_EVENT_DISCONNECT

#define bmHUB_PORT_EVENT_DISCONNECT   (((0UL | bmHUB_PORT_STATUS_C_PORT_CONNECTION) << 16) | bmHUB_PORT_STATUS_PORT_POWER)

Definition at line 126 of file usbhub.h.

◆ bmHUB_PORT_EVENT_RESET_COMPLETE

Definition at line 127 of file usbhub.h.

◆ bmHUB_PORT_EVENT_LS_CONNECT

Definition at line 129 of file usbhub.h.

◆ bmHUB_PORT_EVENT_LS_RESET_COMPLETE

Definition at line 130 of file usbhub.h.

◆ bmHUB_PORT_EVENT_LS_PORT_ENABLED

Definition at line 131 of file usbhub.h.

Function Documentation

◆ PrintHubPortStatus()

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