USB-Hub: unable to enumerate USB device

598 views
Skip to first unread message

Stefan Feilmeier

unread,
Nov 12, 2014, 4:25:28 PM11/12/14
to beagl...@googlegroups.com
Hello,

Please help me with the following problem. I am not much of a hardware-expert, but till now I was able to resolve quite all of my BeagleBone Black related problems with the extensive information available online. Only with this problem I am now stuck for days...

I got a custom (not by me) made board providing a USB-Hub (from SMSC) and a USB-to-RS485 (FTDI) converter. When I connect it to the the Beaglebone Black on its USB-Host interface I constantly get messages like the following, with the device number counting up forever:
[   17.600794] usb 1-1: new high-speed USB device number 25 using musb-hdrc
[   17.673073] hub 1-0:1.0: unable to enumerate USB device on port 1

Also no leds are turning on on the custom board. The Beaglebone is running on Debian with the following kernel - but I also tried without success another Beaglebone Black with a more recent kernel.
root@debian:~# uname -a
Linux debian 3.8.13-bone67 #1 SMP Wed Sep 24 18:32:44 UTC 2014 armv7l GNU/Linux

When I connect the same board via USB to a Linux laptop, it works perfectly fine with the following messages, including the custom boards' leds turning on:
usb 1-3: new high-speed USB device number 3 using ehci-pci
usb 1-3: New USB device found, idVendor=0424, idProduct=2514
usb 1-3: New USB device strings: Mfr=0, Product=0, SerialNumber=0
hub 1-3:1.0: USB hub found
hub 1-3:1.0: 4 ports detected
usb 1-3.4: new full-speed USB device number 4 using ehci-pci
usb 1-3.4: New USB device found, idVendor=0403, idProduct=6015
usb 1-3.4: New USB device strings: Mfr=1, Product=2, SerialNumber=3
usb 1-3.4: Product: FT230X Basic UART
usb 1-3.4: Manufacturer: FTDI
...

 Also on a Windows Machine the board works fine. Results of usbview.exe:
[Port2]  :  Generic USB Hub
External Hub: USB#VID_0424&PID_2514#6&109c578c&0&2#{f18a0e88-c30c-11d0-8815-00a0c906bed8}
Is Port User Connectable:         yes
Is Port Debug Capable:            no
Companion Port Number:            0
Companion Hub Symbolic Link Name:
Protocols Supported:
 USB 1.1:                         yes
 USB 2.0:                         yes
 USB 3.0:                         no
Hub Power:                    Self Power
Hub type:                     USB 2.0 Hub
Number of Ports:              4
Power switching:              Individual
Compound device:              Yes
Over-current Protection:      Individual
High speed capable:           Yes
High speed:                   Yes
Multiple transaction translations capable:                 Yes
Performs multiple transaction translations simultaneously: Yes
Hub wakes when device is connected:                        No
Hub is bus powered:           No
Hub is root:                  No
       ---===>Device Information<===---
ConnectionStatus:                 
Current Config Value:              0x01  -> Device Bus Speed: High (is not SuperSpeed or higher capable)
Device Address:                    0x02
Open Pipes:                           1
          ===>Device Descriptor<===
bLength:                           0x12
bDescriptorType:                   0x01
bcdUSB:                          0x0200
bDeviceClass:                      0x09  -> This is a HUB Device
bDeviceSubClass:                   0x00
bDeviceProtocol:                   0x02
bMaxPacketSize0:                   0x40 = (64) Bytes
idVendor:                        0x0424 = SMSC
idProduct:                       0x2514
bcdDevice:                       0x0BB3
iManufacturer:                     0x00
iProduct:                          0x00
iSerialNumber:                     0x00
bNumConfigurations:                0x01
          ---===>Open Pipes<===---
          ===>Endpoint Descriptor<===
bLength:                           0x07
bDescriptorType:                   0x05
bEndpointAddress:                  0x81  -> Direction: IN - EndpointID: 1
bmAttributes:                      0x03  -> Interrupt Transfer Type
wMaxPacketSize:                  0x0001 = 1 transactions per microframe, 0x01 max bytes
bInterval:                         0x0C
       ---===>Full Configuration Descriptor<===---
          ===>Configuration Descriptor<===
bLength:                           0x09
bDescriptorType:                   0x02
wTotalLength:                    0x0029  -> Validated
bNumInterfaces:                    0x01
bConfigurationValue:               0x01
iConfiguration:                    0x00
bmAttributes:                      0xE0  -> Self Powered
  -> Remote Wakeup
MaxPower:                          0x01 =   2 mA
          ===>Interface Descriptor<===
bLength:                           0x09
bDescriptorType:                   0x04
bInterfaceNumber:                  0x00
bAlternateSetting:                 0x00
bNumEndpoints:                     0x01
bInterfaceClass:                   0x09  -> HUB Interface Class
bInterfaceSubClass:                0x00
bInterfaceProtocol:                0x01
iInterface:                        0x00
          ===>Endpoint Descriptor<===
bLength:                           0x07
bDescriptorType:                   0x05
bEndpointAddress:                  0x81  -> Direction: IN - EndpointID: 1
bmAttributes:                      0x03  -> Interrupt Transfer Type
wMaxPacketSize:                  0x0001 = 1 transactions per microframe, 0x01 max bytes
bInterval:                         0x0C
          ===>Interface Descriptor<===
bLength:                           0x09
bDescriptorType:                   0x04
bInterfaceNumber:                  0x00
bAlternateSetting:                 0x01
bNumEndpoints:                     0x01
bInterfaceClass:                   0x09  -> HUB Interface Class
bInterfaceSubClass:                0x00
bInterfaceProtocol:                0x02
iInterface:                        0x00
          ===>Endpoint Descriptor<===
bLength:                           0x07
bDescriptorType:                   0x05
bEndpointAddress:                  0x81  -> Direction: IN - EndpointID: 1
bmAttributes:                      0x03  -> Interrupt Transfer Type
wMaxPacketSize:                  0x0001 = 1 transactions per microframe, 0x01 max bytes
bInterval:                         0x0C

If I plug in a ready-made powered USB-Hub into my Beaglebone, it's also working without problems:
[ 1011.864369] usb 1-1: new high-speed USB device number 79 using musb-hdrc
[ 1011.993478] usb 1-1: New USB device found, idVendor=04b4, idProduct=6560
[ 1012.003654] usb 1-1: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[ 1012.024643] hub 1-1:1.0: USB hub found
[ 1012.043653] hub 1-1:1.0: 4 ports detected

Only my custom board doesn't seem to work. Trying to compare the outputs of "usbview.exe" I found the following differences between the "ready-madepowered USB-Hub" and the "custom board": (ignoring the obviously different idVendor, idProduct and bcdDevice values)
Ready-madepowered USB-Hub:
Compound device:              No
MaxPower:                          0x32 = 100 mA
Custom board:
Compound device:              Yes
MaxPower:                          0x01 =   2 mA


Is it a power supply problem? How can I solve the problem? All your feedback and hints are very much appreciated.

Best regards,
Stefan

Stefan Feilmeier

unread,
Nov 24, 2014, 7:51:17 AM11/24/14
to beagl...@googlegroups.com
Hi,

I am still stuck with this problem. I found out, that the hardware is definitely working - even with a Raspberry Pi running a 3.6.11 kernel the USB hub is recogniced, so I am sure it is a software issue.

I updated to the latest kernel version in rcn-ee.net jessie repository ("3.18.0-rc6-bone1"). With this kernel, I don't receive those "unable to enumerate USB device" errors anymore, but while booting up I get the following timeout:
udevadm settle - timeout of 120 seconds reached, the event queue contains:
 
/sys/devices/ocp/47400000.usb/47401c00.usb/musb-hdrc.1.auto/usb1 (1431)
 
/sys/devices/ocp/47400000.usb/47401c00.usb/musb-hdrc.1.auto/usb1/1-0:1.0 (1432)

I see, that there is a USB-Hub cape available (http://elinux.org/USB_HUB_Cape). Does anybody know what chip they are using - or does anybody have experiences with a USB hub chip that is working with the BeagleBone Black? I found an I/O cape from Titan (http://www.titan.tw/product/USB_2COM_BB.html) which is built on a chip from Genesys Logic. The powered usb hub I have here and that is working well, is built on a chip from Cypress (CY7C65640-LFC). So I could just have a new pcb board designed which is built on one of those chips and forget about the SMSC chip, but I cannot believe, that one of the most popular usb hub chips of all is just not working with the BeagleBone Black.

I don't know anymore what else to try. I'd be glad for any advice...

Best regards,
Stefan

Stefan Feilmeier

unread,
Nov 24, 2014, 9:05:21 AM11/24/14
to beagl...@googlegroups.com
Hi,

sorry for spaming the mailinglist. Out of desperation I just tried one more experiment. If I attach the "powered usb hub" directly to the BeagleBone and connect my "custom made usb hub" on the "powered usb hub", I receive the following messages:
[   49.784746] usb 1-1.1: device not accepting address 11, error -71
[   50.794745] usb 1-1.1: device not accepting address 14, error -71
...
[   55.144832] hub 1-1.1:1.0: hub_port_status failed (err = -71)
[   55.151082] hub 1-1.1:1.0: hub_port_status failed (err = -71)
...
[   55.399949] hub 1-1.1:1.0: activate --> -19

Any clue?

Thanks for any answer.

Best regards,
Stefan
Reply all
Reply to author
Forward
0 new messages