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 "Arduino.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 USB_DESCRIPTOR_HUB   0x09

Definition at line 35 of file usbhub.h.

Definition at line 38 of file usbhub.h.

Definition at line 39 of file usbhub.h.

Definition at line 40 of file usbhub.h.

Definition at line 41 of file usbhub.h.

Definition at line 42 of file usbhub.h.

Definition at line 43 of file usbhub.h.

Definition at line 44 of file usbhub.h.

Definition at line 45 of file usbhub.h.

Definition at line 46 of file usbhub.h.

Definition at line 47 of file usbhub.h.

Definition at line 48 of file usbhub.h.

Definition at line 49 of file usbhub.h.

#define HUB_REQUEST_CLEAR_TT_BUFFER   8

Definition at line 52 of file usbhub.h.

#define HUB_REQUEST_RESET_TT   9

Definition at line 53 of file usbhub.h.

#define HUB_REQUEST_GET_TT_STATE   10

Definition at line 54 of file usbhub.h.

#define HUB_REQUEST_STOP_TT   11

Definition at line 55 of file usbhub.h.

#define HUB_FEATURE_C_HUB_LOCAL_POWER   0

Definition at line 58 of file usbhub.h.

#define HUB_FEATURE_C_HUB_OVER_CURRENT   1

Definition at line 59 of file usbhub.h.

#define HUB_FEATURE_PORT_CONNECTION   0

Definition at line 60 of file usbhub.h.

#define HUB_FEATURE_PORT_ENABLE   1

Definition at line 61 of file usbhub.h.

#define HUB_FEATURE_PORT_SUSPEND   2

Definition at line 62 of file usbhub.h.

#define HUB_FEATURE_PORT_OVER_CURRENT   3

Definition at line 63 of file usbhub.h.

#define HUB_FEATURE_PORT_RESET   4

Definition at line 64 of file usbhub.h.

#define HUB_FEATURE_PORT_POWER   8

Definition at line 65 of file usbhub.h.

#define HUB_FEATURE_PORT_LOW_SPEED   9

Definition at line 66 of file usbhub.h.

#define HUB_FEATURE_C_PORT_CONNECTION   16

Definition at line 67 of file usbhub.h.

#define HUB_FEATURE_C_PORT_ENABLE   17

Definition at line 68 of file usbhub.h.

#define HUB_FEATURE_C_PORT_SUSPEND   18

Definition at line 69 of file usbhub.h.

#define HUB_FEATURE_C_PORT_OVER_CURRENT   19

Definition at line 70 of file usbhub.h.

#define HUB_FEATURE_C_PORT_RESET   20

Definition at line 71 of file usbhub.h.

#define HUB_FEATURE_PORT_TEST   21

Definition at line 72 of file usbhub.h.

#define HUB_FEATURE_PORT_INDICATOR   22

Definition at line 73 of file usbhub.h.

#define HUB_PORT_TEST_MODE_J   1

Definition at line 76 of file usbhub.h.

#define HUB_PORT_TEST_MODE_K   2

Definition at line 77 of file usbhub.h.

#define HUB_PORT_TEST_MODE_SE0_NAK   3

Definition at line 78 of file usbhub.h.

#define HUB_PORT_TEST_MODE_PACKET   4

Definition at line 79 of file usbhub.h.

#define HUB_PORT_TEST_MODE_FORCE_ENABLE   5

Definition at line 80 of file usbhub.h.

#define HUB_PORT_INDICATOR_AUTO   0

Definition at line 83 of file usbhub.h.

#define HUB_PORT_INDICATOR_AMBER   1

Definition at line 84 of file usbhub.h.

#define HUB_PORT_INDICATOR_GREEN   2

Definition at line 85 of file usbhub.h.

#define HUB_PORT_INDICATOR_OFF   3

Definition at line 86 of file usbhub.h.

#define bmHUB_PORT_STATUS_PORT_CONNECTION   0x0001

Definition at line 89 of file usbhub.h.

#define bmHUB_PORT_STATUS_PORT_ENABLE   0x0002

Definition at line 90 of file usbhub.h.

#define bmHUB_PORT_STATUS_PORT_SUSPEND   0x0004

Definition at line 91 of file usbhub.h.

#define bmHUB_PORT_STATUS_PORT_OVER_CURRENT   0x0008

Definition at line 92 of file usbhub.h.

#define bmHUB_PORT_STATUS_PORT_RESET   0x0010

Definition at line 93 of file usbhub.h.

#define bmHUB_PORT_STATUS_PORT_POWER   0x0100

Definition at line 94 of file usbhub.h.

#define bmHUB_PORT_STATUS_PORT_LOW_SPEED   0x0200

Definition at line 95 of file usbhub.h.

#define bmHUB_PORT_STATUS_PORT_HIGH_SPEED   0x0400

Definition at line 96 of file usbhub.h.

#define bmHUB_PORT_STATUS_PORT_TEST   0x0800

Definition at line 97 of file usbhub.h.

#define bmHUB_PORT_STATUS_PORT_INDICATOR   0x1000

Definition at line 98 of file usbhub.h.

#define bmHUB_PORT_STATUS_C_PORT_CONNECTION   0x0001

Definition at line 101 of file usbhub.h.

#define bmHUB_PORT_STATUS_C_PORT_ENABLE   0x0002

Definition at line 102 of file usbhub.h.

#define bmHUB_PORT_STATUS_C_PORT_SUSPEND   0x0004

Definition at line 103 of file usbhub.h.

#define bmHUB_PORT_STATUS_C_PORT_OVER_CURRENT   0x0008

Definition at line 104 of file usbhub.h.

#define bmHUB_PORT_STATUS_C_PORT_RESET   0x0010

Definition at line 105 of file usbhub.h.

#define bmHUB_STATUS_LOCAL_POWER_SOURCE   0x01

Definition at line 108 of file usbhub.h.

#define bmHUB_STATUS_OVER_CURRENT   0x12

Definition at line 109 of file usbhub.h.

#define bmHUB_STATUS_C_LOCAL_POWER_SOURCE   0x01

Definition at line 112 of file usbhub.h.

#define bmHUB_STATUS_C_OVER_CURRENT   0x12

Definition at line 113 of file usbhub.h.

#define USB_STATE_HUB_PORT_CONFIGURING   0xb0

Definition at line 117 of file usbhub.h.

#define USB_STATE_HUB_PORT_POWERED_OFF   0xb1

Definition at line 118 of file usbhub.h.

#define USB_STATE_HUB_PORT_WAIT_FOR_POWER_GOOD   0xb2

Definition at line 119 of file usbhub.h.

#define USB_STATE_HUB_PORT_DISCONNECTED   0xb3

Definition at line 120 of file usbhub.h.

#define USB_STATE_HUB_PORT_DISABLED   0xb4

Definition at line 121 of file usbhub.h.

#define USB_STATE_HUB_PORT_RESETTING   0xb5

Definition at line 122 of file usbhub.h.

#define USB_STATE_HUB_PORT_ENABLED   0xb6

Definition at line 123 of file usbhub.h.

#define HUB_ERROR_PORT_HAS_BEEN_RESET   0xb1

Definition at line 126 of file usbhub.h.

#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)

Definition at line 129 of file usbhub.h.

#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)

Definition at line 132 of file usbhub.h.

#define bmHUB_PORT_STATE_DISABLED   (0x0000 | bmHUB_PORT_STATUS_PORT_POWER | bmHUB_PORT_STATUS_PORT_CONNECTION)

Definition at line 135 of file usbhub.h.

#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 138 of file usbhub.h.

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

Definition at line 139 of file usbhub.h.

#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)

Definition at line 140 of file usbhub.h.

#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)

Definition at line 142 of file usbhub.h.

#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)

Definition at line 143 of file usbhub.h.

#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)

Definition at line 144 of file usbhub.h.

Function Documentation

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