|
|
|
@ -3,7 +3,7 @@ the CuVoodoo USB hub is a 7-port USB 2.0 hub meant for device testing. |
|
|
|
|
purpose |
|
|
|
|
======= |
|
|
|
|
|
|
|
|
|
most USB hub are super cheap and crappy, leading to poor connection and data transfer. |
|
|
|
|
most USB hubs are super cheap and crappy, leading to poor connection and data transfer. |
|
|
|
|
there are industrial USB hubs, but they are bulky and very expensive. |
|
|
|
|
to solve this issue I decided to design my own USB hub, tailored to my needs. |
|
|
|
|
|
|
|
|
@ -11,27 +11,26 @@ when developing and testing hardware, you often end with a lot of USB devices co |
|
|
|
|
USB allows to have up to 128 devices, but only with a maximum depth of 7. |
|
|
|
|
thus you are only allowed to have a maximum of 5 USB hubs between computer and devices, and I often have to plan my setup to not reach this limit. |
|
|
|
|
most 7-port USB hubs use two 4-port USB hub, the seconds being connected to the first. |
|
|
|
|
there are some exception to that, but they are rare, old, and often not advertised as such. |
|
|
|
|
this heavily limits the number of end devices. |
|
|
|
|
this device is a 7-port flat USB hub, preventing reaching this limit too often. |
|
|
|
|
there are some exceptions to that, but they are rare, old, and often not advertised as such. |
|
|
|
|
this heavily limits the actual number of end devices. |
|
|
|
|
the CuVoodoo USB hub is a 7-port flat USB hub, preventing reaching this limit too fast. |
|
|
|
|
|
|
|
|
|
the incoming and outgoing USB ports are individually ESD protected. |
|
|
|
|
this safety becomes important when developing, testing, and handling bare electronic devices. |
|
|
|
|
this also comes in handy against when connecting circuit with different ground potentials. |
|
|
|
|
this also comes in handy when connecting circuit with different ground potentials. |
|
|
|
|
ESD protections already saved my day twice this way. |
|
|
|
|
the issue is that they can blow without you noticing, but at least they protected the device once. |
|
|
|
|
|
|
|
|
|
each output port is current limited to 500 mA. |
|
|
|
|
no device should draw more that this specified limit. |
|
|
|
|
no USB 2.0 device should draw more that this specified limit. |
|
|
|
|
it if does, there is very probably an issue with the device. |
|
|
|
|
this protection allows to isolate the faulty device and not have it affect all other connected devices, or the hub itself. |
|
|
|
|
the fault is also detected and reported by the hub to the host computer. |
|
|
|
|
see `current limitation` below for more details. |
|
|
|
|
|
|
|
|
|
each output port is power controlled. |
|
|
|
|
this allows to remotely switch on an off individual devices. |
|
|
|
|
this allows to remotely switch on and off individual devices. |
|
|
|
|
this is an important requirement when developing and testing devices, which require a power cycle. |
|
|
|
|
|
|
|
|
|
additionally, a switch next to the power can force the power off state. |
|
|
|
|
additionally, a switch next to the USB port can force the power off state. |
|
|
|
|
|
|
|
|
|
the USB hub can be self-powered (through the USB input port), externally powered by 5V, or externally powered by anything between 6 and 40V. |
|
|
|
|
this allows to use higher voltage power supplies to provide enough current to all ports. |
|
|
|
@ -39,12 +38,12 @@ the 5V are not feed back to the host. |
|
|
|
|
|
|
|
|
|
each USB port comes with a high voltage output power port, connected to the high voltage input port. |
|
|
|
|
this allows to power devices which require more than 5V (e.g. 12V externally powered devices). |
|
|
|
|
these power outputs are controllable. |
|
|
|
|
these power outputs are controllable along the USB port. |
|
|
|
|
as with the 5V USB power output, this allows to remotely switch on an off individual devices. |
|
|
|
|
|
|
|
|
|
each port has status LEDs, indicating the speed and power status of the connected device. |
|
|
|
|
|
|
|
|
|
the board uses proper impedance and differential signal routing to provide clean USB signal transfer. |
|
|
|
|
the board uses proper impedance and differential signal routing to provide clean USB signals. |
|
|
|
|
|
|
|
|
|
design choice |
|
|
|
|
============= |
|
|
|
@ -53,8 +52,8 @@ USB 2.0 |
|
|
|
|
------- |
|
|
|
|
|
|
|
|
|
this hub is only for USB 2.0 devices. |
|
|
|
|
by far this are most of the devices I develop. |
|
|
|
|
is makes it simpler and keeps the cost reasonable. |
|
|
|
|
these are by far most of the devices I develop. |
|
|
|
|
it makes it simpler and keeps the cost reasonable. |
|
|
|
|
I often even disable USB 3.0 because of the 13-device limitation of the Intel xHCI. |
|
|
|
|
when I need USB 3.0 for the very few devices, I connected them to the computer directly. |
|
|
|
|
|
|
|
|
@ -63,7 +62,7 @@ USB2517 |
|
|
|
|
|
|
|
|
|
I wanted to use the FE2.1 7-port USB hub chip. |
|
|
|
|
it does not need an external voltage regulator or crystal. |
|
|
|
|
and it is easier to solder thanks to its TQFP package, and provides all required functionalities. |
|
|
|
|
it is easier to solder thanks to its TQFP package, and provides all required functionalities. |
|
|
|
|
sadly I could not find a source for the 64-pin packages, and the 48-pin variant does not provide all required functionalities. |
|
|
|
|
thus I had to fall back to the Microchip USB2517, which uses a harder to solder QFN package. |
|
|
|
|
|
|
|
|
@ -77,14 +76,15 @@ thus you can completely power off even larger target devices. |
|
|
|
|
current limitation |
|
|
|
|
------------------ |
|
|
|
|
|
|
|
|
|
very few USB hubs that have current limitation on the output. |
|
|
|
|
the USB hub has current limitation on the output. |
|
|
|
|
this does limit the current to 500 mA, but only in constant current mode. |
|
|
|
|
if well designed, the fault is also reported to the computer. |
|
|
|
|
sometimes the hub also turns off the power, or it is up to the user to power off the faulty port. |
|
|
|
|
following current limiters have been tested: |
|
|
|
|
|
|
|
|
|
on this hub, the fault is reported, and the power is automatically disabled, preventing damages on the device due to prolonged shorts. |
|
|
|
|
this is very useful when testing devices. |
|
|
|
|
the power is restored once the current limit is cleared. |
|
|
|
|
- 0.5A PPTC fuse: it takes too long to trigger (> 1s), and switch off is not reliably detected |
|
|
|
|
- MT9700: it has no over-current signal |
|
|
|
|
- SY6288AAAC: the (fixed) current limit is not 0.6A, but around 1.5A |
|
|
|
|
- TJ2242GSF6: over-current is only detected after 3s (instead of specified 100us, probably caused by thermal shutdown), and it is not signaled |
|
|
|
|
- DIO7553ST6: works as expected and wished |
|
|
|
|
|
|
|
|
|
the power distribution switch detects the over-current state and asserts the fault flag after 10 ms. |
|
|
|
|
after 0.1 ms (as set in OC_TIMER, in Configuration Data Byte 2, in EEPROM) the hub will switch off power. |
|
|
|
@ -93,14 +93,8 @@ after 100 ms the HUB will re-enable power. |
|
|
|
|
this loop will repeat indefinitely. |
|
|
|
|
no over-current is reported to the host in this case (when the over-current is cleared while power is off). |
|
|
|
|
it is only reported when the OCS is asserted for longer (unknown time, with OCS kept low also when powered off). |
|
|
|
|
|
|
|
|
|
following current limiters have been tested: |
|
|
|
|
|
|
|
|
|
- 0.5A PPTC fuse: it takes too long to trigger (> 1s), and switch off is not reliably detected |
|
|
|
|
- MT9700: it has no over-current signal |
|
|
|
|
- SY6288AAAC: the (fixed) current limit is not 0.6A, but around 1.5A |
|
|
|
|
- TJ2242GSF6: over-current is only detected after 3s (instead of specified 100us, probably caused by thermal shutdown), and it is not signaled |
|
|
|
|
- DIO7553ST6: works as expected and wished |
|
|
|
|
this is a flaw of the USB2517, where the over-current is only reported if it can't control the power state. |
|
|
|
|
I did not find a configuration option for this aspect in the datasheet. |
|
|
|
|
|
|
|
|
|
LED color |
|
|
|
|
--------- |
|
|
|
@ -118,7 +112,13 @@ instead the following color scheme is used: |
|
|
|
|
- red: low speed device connected |
|
|
|
|
- blue: full speed device connected |
|
|
|
|
- purple (red+blue): high speed device connected |
|
|
|
|
- red and blue off: disconnected |
|
|
|
|
- red and blue off: disconnected or in sleep |
|
|
|
|
|
|
|
|
|
power output |
|
|
|
|
------------ |
|
|
|
|
|
|
|
|
|
switching the power of the USB port also switches the 6-40V forward output. |
|
|
|
|
when the 6-40V input is not connected, current/voltage feedback from the outputs is blocked. |
|
|
|
|
|
|
|
|
|
usage |
|
|
|
|
===== |
|
|
|
@ -134,6 +134,7 @@ this will also turn the hub into self powered, not using any power from the UFP. |
|
|
|
|
alternatively, you can connect a 6 to 40V power supply on the other power input. |
|
|
|
|
the power for the hub and the 5V for the DFP will be derivate from this higher voltage supply. |
|
|
|
|
the same higher voltage will be available on the power output next to the individual DFPs. |
|
|
|
|
the hub will not switch on until the UFP USB port is connected. |
|
|
|
|
|
|
|
|
|
a switch next to each DFP allows to turn off the power output on the USB and power ports. |
|
|
|
|
the green LED is on when power output is available. |
|
|
|
@ -147,5 +148,3 @@ sudo uhubctl |
|
|
|
|
# switch of port |
|
|
|
|
uhubctl --action off --location 1-1.4 --ports 5 |
|
|
|
|
~~~ |
|
|
|
|
|
|
|
|
|
when too much current is drawn on the USB port, the error is reported to the host and the power output is automatically disabled. |
|
|
|
|