This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TUSB2077A: USB 1.0 speeds on downstream ports

Part Number: TUSB2077A

Good afternoon,

We have a design that uses 1 x TUSB2077A in self-powered mode to communicate to 7 x downstream ports in self-powered mode. We use the hubs to program a device that hosts a PIC32MX270F512H on each of the 7 x downstream ports. The top-level TUSB2077A is connected via a USB A header to a Raspberry Pi Zero W.

When we try and program one of the PIC devices (we only have need to do them one at a time due to constraints of the Raspberry Pi Zero W), the PIC takes 4.5 minutes to have it's flash erased and be re-programmed.

When we try and program one of the PIC devices with a OTG USB Hub between the Raspberry Pi Zero W and the TUSB2077A, the USB speed increases from 1.0 low-speed (1.5Mbps) to 1.1 speeds (12Mbps) and the programming takes 1.5 minutes.

I've attached a schematic of the circuit we're currently using on our PCB. Can you offer and suggestions as to why this may be the case?

A few things we've tried:

- Verified the cable between the Pi and the PCB is a USB 2.0 cable

- Impedance matched PCB routing is correct

  • Hi Connor,

    Can you check if when the TUSB2077A is connected directly to the Raspberry Pi if the signaling upstream or downstream of the hub is actually at 1.5 Mbps instead of 12 Mbps?  The TUSB2077A hub doesn't support low speed on its upstream port and if the downstream devices are full speed (pullup on DP) there is no way they should be running at low speed either.  

    I don't see anything incorrect in your schematic but please be aware we have seen previous issues with Raspberry Pi not supporting full speed hubs properly.

    Regards,

    JMMN

  • Hi JMMN,

    When connected to the Raspberry Pi Zero directly, all ports are showing as Full Speed:

    We've also done the same test in Windows with USB Device Tree Viewer and all hubs show up as Full Speed. The only item we spotted that may be something to query is that when the PIC device (COM17) is plugged in to one of the downstream hubs, we get a descriptor error saying that the device is identifying as USB V2 but only capable of USB 1.1 speeds (which would make sense due to the TUSB2077A only supporting USB 1.1 speeds.

    An additional note, we've tried using our PCB with a generic USB 2.0 hub and a Raspberry Pi 3 & 4 communicating to the TUSB2077A and all of these program our PIC device in 1.5 minutes (they program faster than using a Raspberry Pi Zero).

    Do you have any suggestions as to how we can overcome this issue between the Raspberry Pi Zero and the TUSB2077A? If you've noticed problems before, is there any alternative parts that TI offer that could replace the TUSB2077A that fix this issue? Our short-term fix will be to add a generic USB 2.0 hub in-line between the Raspberry Pi Zero and the first TUSB2077A however, we can change the PCB design in the future to remove the first TUSB2077A that connects to the Raspberry Pi Zero and replace it with an alternative if you know of a device that works?

    Many thanks,

    Connor

  • Hi Connor,

    It looks like there is a limitation on the Raspberry Pi Zero and multiple FS/LS devices (see below), that impact seems to be lessened by adding USB 2.0 hub in the mix to handle the transaction translation.

    https://www.raspberrypi.com/documentation/computers/raspberry-pi.html#universial-serial-bus-usb

    The software overhead incurred when talking to low and full speed devices means that there are limitations on the number of simultaneously active low and full speed devices. Small numbers of these types of devices connected to a Pi will cause no issues.

    Regards,

    JMMN