- USB Hub Requirements:
- USB HUB IC chosen: SMSC USB2517
- USB2517 Basic Functional Description:
- USB Hub Circuit Design:
- Pin Connections (For detailed pin descriptions see table 5.2 in USB2517 datasheet)
- USBDM-DN[7:1]/PRT-DIS-M[7:1]
- USBDP-DN[7:1]/PRT-DIS-M[7:1]
- VDD33
- LED-A-N[7:1]/PRTSWP[7:1]
- LED-B-N[7:3]
- LED-B-N[2:1]/BOOST[1:0]
- OCS_N[7:1]
- PRTPWR[7:1]
- TEST
- CRFILT
- RESET_N
- VBUS_DET
- SUSP-IND/LOCAL-PWR/NON-REM[0]
- SDA/SMBDATA/NON-REM[1]
- SCL/SMBCLK/CFG_SEL[0]
- HS-IND/CFG-SEL[1]
- CFG-SEL[2]
- USBDP-UP
- USBDM-UP
- XTALIN/CLKIN
- XTALOUT
- PLLFILT
- RBIAS
- Component Selection:
- Pin Connections (For detailed pin descriptions see table 5.2 in USB2517 datasheet)
USB Hub Requirements:
- SHOULD be USB 2.0 compliant High Speed (480 Mbps)
- MUST handle (8,,) downstream devices (devices may be further hubs)
- SHOULD have hub status LEDs
USB HUB IC chosen: SMSC USB2517
Datasheet:
Evaluation-Board User Manual:
Evaluation-Board Schematic (for reference design):
SMSC-USB2517 Eval Board Schematic
Other Miscelaneous Reference Material:
SMSC-USB2517 Misc.
USB 2.0 Specification
USB2517 Basic Functional Description:
The SMSC-USB2517 hub controller comes in a 64 pin, 9x9mm QFN package. It is an OEM (Original Equipment Manufacturer) configurable integrated circuit which uses a multi-transaction translator (MTT) and is capable of supporting 7 downstream ports. The hub supports low, full and high speed devices on all of the enabled ports.
All required resistors on the downstream ports are integrated into the hub. This includes all series termination resistors on D+ and D- pins and all required pull-up and pull-down resistors on D+ and D- pins. The over-current sense pins for the downstream ports have internal pull-up resistors as well.
Some key features of the USB2517 include:
- low power dissipation, high performance, small footprint
- Fully compliant with USB 2.0 specification
- 3 options for hub configurations: I2C (via EEPROM), SMBus, and internal default configurations via strapping options
The USB2517 also offers a PortMap flexible port mapping ability, PortSwap which allows programming of USB differential pair pin locations, and PhyBoost which provides programmable USB signal drive strength.
For more information about these options follow link to datasheet.
USB Hub Circuit Design:
Pin Connections (For detailed pin descriptions see table 5.2 in USB2517 datasheet)
USBDM-DN[7:1]/PRT-DIS-M[7:1]
- These pins provide one of the two differential USB data signals to downstream ports 1-7
- each of these pins is connected to the pair of the USB_L pins of the respective power switch port connector
- Pulling any of these pins, along with the associated USBDP pin, up to 3.3V with a 10kOhm resistor disables the respective port
- Instead of pullup to 3.3V, we will connect these pins to the ARM giving it control of what ports are enabled
USBDP-DN[7:1]/PRT-DIS-M[7:1]
- This pins proved the other of the two differential USB data signals to downstream ports 1-7
- Each of these pins is connected to the pair of USB_H pins of the respective power switch port connector
- Pulling any of these pins, along with the associated USBDM pin, up to 3.3V with a 10kOhm resistor disables the respective port
- Instead of pullup to 3.3V, we will connect these pins to the ARM giving it control of what ports are enabled
VDD33
- There are a total of 7 of these pins, each connected to +3.3V
LED-A-N[7:1]/PRTSWP[7:1]
- These pins connect to LEDs which are used to indicate both connection status and port speed for each of teh 7 ports.
- This is done with a combination of a red and a green LED assigned to each port.
- See section 6.1.2 on page 29 of the USB2517 datasheet for more information
Also see LEDs in the component selection
These pins also are used to configure the portswapping option, which we are not using. To ensure port polarity swapping does not inadvertently occur, these pins must be low when RESET_N is asserted.
LED-B-N[7:3]
- These pins connect to amber LEDs which indiccate overcurrent conditions on downstream ports
- We are not using overcurrent sensing so these pins are not connected
LED-B-N[2:1]/BOOST[1:0]
- These multifunction pins can connect to amber LEDs which indicate overcurrent conditions on downstream ports
They are also sampled after RESET_N is asserted to determine the signal strength of the USB differential signals to downstream ports as follows:
- BOOST[1:0] = '00': Normal signal strength
- BOOST[1:0] = '01': approximate 4% signal boost
- BOOST[1:0] = '10': approximate 8% signal boost
- BOOST[1:0] = '11': approximate 12% signal boost
In my current design, the signal strength is set at normal strength so these pins are strapped to ground. However these pins could be connected to the ARM so that signal strength can becontrolled on-line
OCS_N[7:1]
- Overcurrent sense input pins. We are not using overcurrent sensing function of hub. Since these pins are pulled up internally, they are treated as no connects.
PRTPWR[7:1]
- These pins provide power to downstream ports.
- We are using a seperate power switch network so this pins are treated as no-connects
TEST
- Used by the manufacturer for IC testing. Must be connected to ground
CRFILT
- VDD core regulator filter capacitor.
- Datasheet states this pin must be connected to ground through a 0.1uF capacitor
RESET_N
- This active low pin resets the USB2517 after it is asserted for 1us
- After this pin is asserted, the configuration pins are sampled to determine how the hub is configured
- This pin is pulled up to 3.3V with a 10kOhm resistor and will also connect to the ARM so that configuration can be done on-line
VBUS_DET
- Detects upstream VBUS power
- The dtasheet states that in self powered applications, which ours is, this pin must be tied to 3.3V
SUSP-IND/LOCAL-PWR/NON-REM[0]
SUSP-IND:
- As I understand the datasheet, this function of the pin supports an LED which indicates whether the USB is configured.
- If asserted, the hub is configured and USB is active
- If negated, hub is unconfigured or configured and in USB suspend
- The active state of the LED is determined by the values of NON-REM[0] and NON-REM[1] (see below)
LOCAL-PWR:
- Detects availability of local power source
- Low = Self/local power source is NOT available (Hub is powered only with VBUS power)
- High = Self/local power source is available
NON-REM[0]
- This is a configuration strap option
- For this function, this pin along with NON-REM[1] is sampled at assertion of RESET-N to determine which, if any, of the downstream devices are removeable
- Which ports are removeable is determined as follows using NON-REM[0] and NON-REM[1]:
- NON-REM[1:0] = '00': All ports removeable, Suspend indicator LED active high
- NON-REM[1:0] = '01': Port 1 is non-removeable, Suspend indicator LED active low
- NON-REM[1:0] = '10': Ports 1 and 2 are non-removeable and LED is active high
- NON-REM[1:0] = '11': Ports 1, 2 and 3 are non-removeable and LED active low
LOCAL-PWR and NON-REM[0] seem to be contradictory for our purposes. At this point I have this pin permanently tied to ground along with NON-REM[1] so that the hub is permanently configured for removeable devices on all ports. However doing this would then tell the hub that self/local power is NOT available. My thought is that this pin will need a weak pullup and also be connected to the ARM which can drive the pin low at assertion of RESET-N. This way, the hub will be configured with all removeable devices and still detect local power, which is all we are using.
SDA/SMBDATA/NON-REM[1]
Another multifunction pin used for hub configuration
SDA
- Serial data signal
SMBDATA
- Server message block data signal
NON-REM[1]
- Used in conjunction with NON-REM[0] to determine which, if any devices attached to the downstream ports are removeable. See NON-REM[0] description for explanation
SCL/SMBCLK/CFG_SEL[0]
A multifunction pin used in hub configuration
SCL
- Serial clock signal
SMBCLK
- System management bus clock signal
CFG-SEL[0]
- Sampled at RESET-N assertion in conjunction with CFG-SEL[1] and CFG-SEL[2] to determine which internal default configuration of the hub is used. See CFG-SEL[2] description for further explanation of these options
I am assuming that we are not using a serial clock signal or system management bus clock so these signals are not used in the hub circuit at this time
HS-IND/CFG-SEL[1]
Another multifunction pin used in hub configuration
HS-IND:
- The pin can support an LED which indicates whether the hub is connected at high speed
- Asserted = hub connected at high speed
- Negated = hub is connected at full speed
CFG-SEL[1]
- Sampled at RESET-N assertion in conjunction with CFG-SEL[0] and CFG-SEL[2] to determine which internal default configuration of the hub is used. See CFG-SEL[2] description for further explanation of these options
- If CFG-SEL[1] = '0': HS-IND is active high
- If CFG-SEL[1] = '1': HS-IND is active low
CFG-SEL[2]
Sampled at RESET-N assertion in conjunction with CFG-SEL[0] and CFG-SEL[1] to determine which internal default configuration of the hub is used.
See table 8.2 on pages 33 and 34 of USB2517 datasheet for the different default configuration options which can be set using CFG-SEL[2:0]
For our design CFG-SEL[2:0] = '000' which means the following:
- Strap options enabled
- Self-power option enabled
- LED mode = speed
- Individual power switching
- individual over-current sensing
USBDP-UP
- One of 2 signals of the differential USB data signal from an upstream device
- This pin is connected to the USB-H pins on the connector to the flight computer (J2007)
USBDM-UP
- The second signal of the differential USB data signal from an upstream device
- This pin is connected to the USB-L pins on the connector to the flight computer (J2007)
XTALIN/CLKIN
- Connects to one terminal of the 24MHz external crystal
XTALOUT
- Connects to the other terminal of the external 24MHz crystal
PLLFILT
- PLL regulator filter capacitor
- As the datasheet directs, this pin is connected to ground through a 1.0uF capacitor
RBIAS
- This pin sets the USB tranceiver bias
- As the datasheet directs, this pin connects to a 12kOhm resistor to ground (R2065)
Component Selection:
Integrated Circuits:
U2008
- SMSC_USB2517 USB hub chip
- See above for explanations
Resistors:
R2064
- 1MOhm filter resistor for external clock
- This resistor was included in the circuit based on the smsc reference design. Not sure if this is needed
R2065
- 12kOhm bias resistor sets the internal bias of the hub chip
- 2517 datasheet specifies this value of resistor on RBIAS pin
- See RBIAS pin description for more information
R2066
- 10kOhm pullup resistor connected to the RESET-N pin
- This pullup to 3.3V ensures the USB hub reset function is negated unless asserted by the ARM
R2067-R2069
- 10kOhm pulldown resistors for CFG-SEL[2:0] pins
- This ensures that the default configuration scheme of the usb hub will be CFG-SEL[2:0] = '000'
- See CFG-SEL[2] pin description for explanation of settings associated with this configuration
- These pins are also connected to GPIO pins of the ARM so that the HUB can be re-configured by the micro-controller if so desired
R2070, R2071
- These resistors are attached to multifunctional pins on the hub
- R2070 is a 10kOhm pull-down resistor ensuring that NON-REM[1] has a default logic low level (We are not using the other functions associated with this pin. This pin is also conected to a GPIO of the ARM so that other options can be used if needed
R2071 is a 10kOhm pull-up resistor to ensure that SUSP-IND/LOCAL-PWR/NON-REM[0] pin has a default logic high level
- In the event that the HUB is reset, this pin will generally need to be driven low by the ARM along with NON_REM[1] to ensure that all 7 of the HUB's downstream ports are configured to support removeable devices. This configuration can be changed if need be as both pins are connected to GPIO pins of the ARM
- The pull-up is necessary because of the fact that a logic high is needed on this pin to tell the HUB that a local power source is present. If this is not a logic high, the HUB will think that all power is provided from the VBUS which we do not implement
- If the ARM should fail to drive this pin low upon a reset, port 1 will be considered a non-removeable port. This should not pose too much of a problem as the hub can be re-configured at any time.
R2072, R2073
- 10kOhm pull-down resistors connected to the BOOST[1:0] pins
- The pull-downs ensure that the default setting of the HUB's signal strength for downstream ports will be 'no-boost'
- These pins also connect to GPIO pins of the ARM so that the HUB can be reconfigured for signal boost if needed
- See BOOST[1:0] pin descriptions for more information
R2074-R2080
- 330 Ohm current limiting resistors to protect the LED port status indicators
- This value is questionable as the design uses 0605 LEDs and I'm not sure if such a small resistor provides enough protection.
Capacitors:
C2034,C2035
- 33pF bypass capacitors connected to the terminals of the external 24MHz clock
- These values were chosen based on the 2517 datasheet reference design
C2036
- 1uF capacitor connected from PLLFILT pin to ground, acts as a filter capacitor for the HUB's internal PLL
- This capacitor value is specified in the datasheet
C2037
- 0.1uF VDD core regulator filter capacitor, connectes from CRFILT pin to ground
- This value is specified in the 2517 datasheet
C2038-C2044
- 0.1uF bypass capacitors to filter high frequency noise on the 7 VDD pins
LEDs
LED2008-LED2014
- Green LED status indicators indicating the status of the 7 downstream ports
- These indicators provide downstream port connection status and work in conjunction with red LEDs (LED2015-LED2021) to indicate connection speed
- See LED2015-LED2021 description for more information about connection speed indication, also see section 6.1 in 2517 datasheet for detailed description of LED functionality
- The green status LEDs function in accordance with section 11.5.3 of USB 2.0 specification
LED2015-LED2021
- Red LEDs which work in conjunction with green LEDs (LED2008-LED2014) to indicate speed of the devices attached to the 7 downstream ports
- These and the green LEDs are connected to the LED-A-N[7:1] pins in such a way that they function as follows:
- When any of the pins is driven to a logic low, the corresponding green LED will light up which indicates that a lowspeed device is attached to the respective port
- When any of the pins is driven to a logic high, the corresponding red LED will light up indicating that a full speed device is attached to the respective port
- When any of the pins outputs a 1kHz square wave, both LEDs will be pulsed on and off. The datasheet notes that the green/red LEDs should be in a single package so that this condition will result in an orange color, however we are using seperate 0605 LEDs so it will simply appear as both the red and green LEDs are on. This indicates that a high speed device is attached to the respective downstream port
- When nothing is driven out on an LED-A-N pin, the pin floats to a "tri-state" condition and neither of the LEDs light up. This indicates that the respective port is either disabled or nothing is attached
Diodes:
D2000
- This diode ensures that when any of the LED-A-N pins float to a tri-state condition, the LEDs do not light up, correctly inicating the respective downstream is disabled or nothing is connected
Crystals:
X2000
- External 24MHz external crystal which provides the clock signal to the USB hub