1
\$\begingroup\$

Following on from my previous questions, I'm still trying to get this USB hub to work. My circuit now looks like this:

enter image description here

Note that this is only providing USB access to other on-board devices and so I'm ignoring the downstream bus power pins (for now, anyway).

For now I've hand-soldered a 1.5k resistor between USBDM and 3.3V (the R? in the diagram above - note that TSTMODE is tied to earth for 6MHz operation, though I've also tried connecting this resistor to USBDP). Now when I plug the device into a USB port, I see a bunch of signalling on USBDM (and I assume USBDP, though I don't have easy access to get a scope probe on it) but the hub still doesn't appear in the USB device enumeration on the host (ie the output of lsusb). I've captured this signalling on a scope but can't for the life of me figure out how to get it off the scope in anything other than RCD format, whatever that is. At any rate, the signal levels all look good and the corners are all nice and clean, no noticeable ringing etc.

As far as I can tell, the hub device should be supported by the Linux kernel without further configuration.

Can anyone point me to what I'm doing wrong?

Edit: Here's the RCD file. I have no practical way of looking at this (UltraScope won't install correctly on Win10 and won't display an RCD trace under Wine) so I've no real idea how useful it is.

Edit 2: Here's a relevant-looking snippet from dmesg:

[91417.181536] usb 1-1.4: new low-speed USB device number 65 using dwc_otg
[91417.281536] usb 1-1.4: device descriptor read/64, error -32
[91417.501465] usb 1-1.4: device descriptor read/64, error -32
[91417.721464] usb 1-1.4: new low-speed USB device number 66 using dwc_otg
[91417.821544] usb 1-1.4: device descriptor read/64, error -32
[91418.041534] usb 1-1.4: device descriptor read/64, error -32
[91418.161562] usb 1-1-port4: attempt power cycle
[91418.821546] usb 1-1.4: new low-speed USB device number 67 using dwc_otg
[91419.261548] usb 1-1.4: device not accepting address 67, error -32
[91419.361551] usb 1-1.4: new low-speed USB device number 68 using dwc_otg
[91419.801527] usb 1-1.4: device not accepting address 68, error -32
[91419.801667] usb 1-1-port4: unable to enumerate USB device

I'm still a little confused over what speed I should be selecting for this thing. The datasheet talks about 6MHz and 48MHz mode which I had mentally correlated with USB Low- and Full-Speed modes - but now I look at it again, I think this is only talking about the clock source for the device and in either mode it's a USB Full-Speed device - is that right? In which case I should switch R? back to the D+ line.

\$\endgroup\$
8
  • \$\begingroup\$ Take a smartphone picture of your scope screen, and post it here. \$\endgroup\$ Commented Jul 12, 2018 at 18:29
  • \$\begingroup\$ Anything in the system log? \$\endgroup\$
    – CL.
    Commented Jul 12, 2018 at 19:11
  • \$\begingroup\$ please post the RCD file \$\endgroup\$
    – jsotola
    Commented Jul 12, 2018 at 20:59
  • \$\begingroup\$ Why don't you plug your hub into a known-good USB host like Windows 7, and see what's happening on D+/D-? \$\endgroup\$ Commented Jul 13, 2018 at 0:45
  • \$\begingroup\$ @jsotola I've added a link to the RCD file. \$\endgroup\$
    – Tom
    Commented Jul 13, 2018 at 8:59

1 Answer 1

1
\$\begingroup\$

Hubs must be (at least) full-speed devices, so the 1.5 kΩ pullup must be on the D+ line.

The crystal can be used at any speed; the datasheet says:

When TSTMODE is low, the output of the internal APLL circuitry is selected to drive the internal core of the device. […] the TUSB2046x can use a 6-MHz crystal input. […] An internal PLL then generates the 48-MHz clock used to sample data from the upstream port and to synchronize the 12 MHz used for the USB clock.

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.