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.

AM5728: TUSB8041 detection issue

Part Number: AM5728
Other Parts Discussed in Thread: TUSB8041,

Hi,

I am using TUSB8041 in my design of AM5728 which is connected to USB3.0 port of processor.Initially i had a issue of detecting devices connected to USB hub.It was power en pin of hub which was not proper once corrected it started working.

But now hub itself is not getting detected following are the logs-

root@am57xx-evm:~# lsusb
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
root@am57xx-evm:~# dmesg | grep usb
[    0.841665] palmas-pmic 48070000.i2c:tps659038@58:tps659038_pmic: Looking up ldousb-in-supply from device tree
[    0.841677] palmas-pmic 48070000.i2c:tps659038@58:tps659038_pmic: Looking up ldousb-in-supply property in node /ocp/i2c@48070000/tps659038@58/tps659038_pmic failed
[    0.861024] ldousb: 3300 mV
[    0.912562] ldousb: could not add device link phy-4a084000.phy.0 err -2
[    0.912924] ldousb: could not add device link phy-4a085000.phy.1 err -2
[    5.823063] usbcore: registered new interface driver usbfs
[    5.828663] usbcore: registered new interface driver hub
[    5.834154] usbcore: registered new device driver usb
[    5.851466] usbcore: registered new interface driver ftdi_sio
[    5.857318] usbserial: USB Serial support registered for FTDI USB Serial Device
[    9.857426] palmas-usb 48070000.i2c:tps659038@58:tps659038_usb: GPIO lookup for consumer id
[    9.857434] palmas-usb 48070000.i2c:tps659038@58:tps659038_usb: using device tree for GPIO lookup
[    9.857452] of_get_named_gpiod_flags: can't parse 'id-gpios' property of node '/ocp/i2c@48070000/tps659038@58/tps659038_usb[0]'
[    9.857466] of_get_named_gpiod_flags: can't parse 'id-gpio' property of node '/ocp/i2c@48070000/tps659038@58/tps659038_usb[0]'
[    9.857475] palmas-usb 48070000.i2c:tps659038@58:tps659038_usb: using lookup tables for GPIO lookup
[    9.857482] palmas-usb 48070000.i2c:tps659038@58:tps659038_usb: No GPIO consumer id found
[    9.857489] palmas-usb 48070000.i2c:tps659038@58:tps659038_usb: GPIO lookup for consumer vbus
[    9.857494] palmas-usb 48070000.i2c:tps659038@58:tps659038_usb: using device tree for GPIO lookup
[    9.857508] of_get_named_gpiod_flags: can't parse 'vbus-gpios' property of node '/ocp/i2c@48070000/tps659038@58/tps659038_usb[0]'
[    9.857534] of_get_named_gpiod_flags: parsed 'vbus-gpio' property of node '/ocp/i2c@48070000/tps659038@58/tps659038_usb[0]' - status (0)
[   10.741956] phy_omap_usb2: exports duplicate symbol omap_usb2_set_comparator (owned by kernel)
[   10.841507] phy_omap_usb2: exports duplicate symbol omap_usb2_set_comparator (owned by kernel)
[   10.980386] phy_omap_usb2: exports duplicate symbol omap_usb2_set_comparator (owned by kernel)
[   11.100786] phy_omap_usb2: exports duplicate symbol omap_usb2_set_comparator (owned by kernel)
[   11.765251] phy_omap_usb2: exports duplicate symbol omap_usb2_set_comparator (owned by kernel)
[   11.866664] phy_omap_usb2: exports duplicate symbol omap_usb2_set_comparator (owned by kernel)
[   12.134072] phy_omap_usb2: exports duplicate symbol omap_usb2_set_comparator (owned by kernel)
[   12.321022] phy_omap_usb2: exports duplicate symbol omap_usb2_set_comparator (owned by kernel)
[   16.578846] dwc3 48890000.usb: Failed to get clk 'ref': -2
[   16.609898] dwc3 488d0000.usb: Failed to get clk 'ref': -2
[   17.069669] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 4.19
[   17.095753] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[   17.179018] usb usb1: Product: xHCI Host Controller
[   17.445239] usb usb1: Manufacturer: Linux 4.19.94-rt39-ga242ccf3f1 xhci-hcd
[   17.457046] usb usb1: SerialNumber: xhci-hcd.1.auto
[   17.503956] usb usb2: We don't know the algorithms for LPM for this host, disabling LPM.
[   17.507729] usb usb2: New USB device found, idVendor=1d6b, idProduct=0003, bcdDevice= 4.19
[   17.507739] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[   17.507745] usb usb2: Product: xHCI Host Controller
[   17.507751] usb usb2: Manufacturer: Linux 4.19.94-rt39-ga242ccf3f1 xhci-hcd
[   17.507757] usb usb2: SerialNumber: xhci-hcd.1.auto
[   17.933628] usb 1-1: new high-speed USB device number 2 using xhci-hcd
[   18.113713] usb 1-1: device descriptor read/64, error -71
[   18.393965] usb 1-1: device descriptor read/64, error -71
[   18.663643] usb 1-1: new high-speed USB device number 3 using xhci-hcd
[   18.823687] usb 1-1: device descriptor read/64, error -71
[   19.093657] usb 1-1: device descriptor read/64, error -71
[   19.223821] usb usb1-port1: attempt power cycle
[   19.933628] usb 1-1: new high-speed USB device number 4 using xhci-hcd
[   19.940260] usb 1-1: Device not responding to setup address.
[   20.165848] usb 1-1: Device not responding to setup address.
[   20.393626] usb 1-1: device not accepting address 4, error -71
[   20.543623] usb 1-1: new high-speed USB device number 5 using xhci-hcd
[   20.573990] usb 1-1: unable to get BOS descriptor or descriptor too short
[   20.581020] usb 1-1: unable to read config index 0 descriptor/start: -71
[   20.588354] usb 1-1: can't read configurations, error -71
[   20.594088] usb usb1-port1: unable to enumerate USB device


why this error "usb 1-1: device descriptor read/64, error -71" is coming.I replaced hub and still the issue persists.

regards,
vijay
  • Hi Vijay,

    We see couple of issues from the log:

    -1-

    [   16.578846] dwc3 48890000.usb: Failed to get clk 'ref': -2
    [   16.609898] dwc3 488d0000.usb: Failed to get clk 'ref': -2

    Do you know the reason for this? Please check and fix this.

    -2-

    [   18.113713] usb 1-1: device descriptor read/64, error -71

    There are errors seen like above. This is mostly due to the device (in this case the connected hub) not responding to the device descriptors requests from the host controller during the device enumeration. Hence there could be many things to check:

     - Could be a bad hub. But since you are seeing the same with different hub. This may not be the case.

     - Check if it is self powered or host powered hub. We suspect if it is due to the hub may needing external power. 

     - If it host powered, please check if you are getting 5V on the VBUS pin.

    Thanks

  • Hi Praveen,

    Thank you for your reply.

    The hub's downstream ports are connected to USB to serial converter(CP2108) and touch controller(AR1100) and one is normal USB 3.0 port to which mouse or keyboard are can be connected.

     While debugging with the board i observed one thing, the hub TUSB8041 is getting detected intermittently. And when hub is detected i observed CP2108 is getting detected and no Touch controller is detected.Whenever i connect any mouse to the external USB3.0 port.CP2108 is getting detached and in the processor terminal

    - this error starts coming. (usb 1-1: device descriptor read/64, error -71)

    and TUSB8041 will still be there but no enumeration of the downstream port devices.

    some times hub itself will not be detected.







    Regards,
    Vijay
  • Hi Vijay,

    Reading through your description above, it is clear that the issue is not USB host related and hence not a AM5728 issue. 

    We have to look further why the hub (TUSB8041) is failing enumeration in certain scenarios. To proceed further, would like you provide below info:

    - Share the board schematics on how the hub is connected to AM5728.

    - Suggest you to provided USB trace data for the issue case.. Collect trace data for upstream ( b/n Am5728 and the hub) .

    Thanks.

  • Hi praveen,

    Below is the schematic of HUB-

    Trace length on PCB-

    DP-7249 mil

    DN-7235 mil

    TXP-6926 mil

    TXN-6925 mil

    RXP-7034 mil

    RXN-7038 mil

    Regards,

    Vijay

  • Hi Vijay,

    Thanks for the schematic. BTW, this is a new board design? Want to check if you had contacted your TI representative and go the schematics verified?

    If not, we need to get this pass to our h/w apps team to check if there any obvious issue with it? Do let me know.

    Thanks,

  • Hi Praveen,

    Thank you for your reply.

    Yes this is new custom board based on AM5728.

    Please check with H/W apps team to resolve this hardware issue.

    Regards,

    Vijay

  • Hi Vijay,

    We suggest you to contact the team who designed the customer board and check if they verified the USB schematics.

    In the interim, I will ask our h/w apps to give their feedback.

    Thanks.

  • Hi Vijay,

    Nothing looks amiss on the USB data lines.  I'd like to see the layout to detect any routing issues.  And where are these signals going?  Are they probe points?  Again, a layout would help.

    Also, double check that the USB_VBUS pad on the HUB is around 0.5V.

    I'm not the HW Applications expert for the Hub, and it might help to contact that person and get their input, but looking at the non-data pins of the upstream connection:

    GRSTz:  Connected to ground with a capacitor.  The hub datasheet says "There is no power-on relationship between VDD33 and VDD unless GRSTz is only connected to a capacitor to GND. Then VDD must be stable minimum of 10 μs before the VDD33"  And I don't see from your schematic if or how this would happen at power up.  It looks like VDD_3V3 is powering the VDD_1V1 regulator.  Have you confirmed the power on sequence with a scope?

    USB_R1: Connected to ground with an 8.25K resistor.  The hub datasheet says "Precision resistor reference. A 9.53-kΩ ±1% resistor should be connected between USB_R1 and GND."  The customer could swap this resistor out for a 9.53kΩ ±1% resistor and see if that helps.

    In summary:

    1) The USB data lines look okay, but seeing the full layout is necessary to know for sure.

    2) Confirm that the USB_VBUS pad on the HUB is around 0.5V.

    3) Confirm that VDD_1V1 is stable 10us before VDD_3V3.

    4) If possible, try swapping out the USB_R1 resistor for a 9.53-kΩ ±1% resistor.

    Best Regards,

    Zack

  • Hi Zack,

    Thank you very much for your reply.

    1.Those marked signals are going to a connector where i can check usb 3.0 interface independently without mounting HUB.

    2.USB_VBUS pad is getting 0.5V.

    3. VDD_1V1 is stable.

    Though  VDD_1V1 is derived from VDD_3v3.The HUB will draw current from VDD_1V1 only when the usb driver is loaded in the processor.I Checked it by giving external 1.1V to the HUB.

    Enabled 1.1V externally before VDD_3v3 then also there was no difference observed.

    4.I tried changing USB_R1 resistor with 9.53K value.Still it did not help me.

    Still i am getting that error.

    Regards,

    Vijay

  • Vijay,

    It looks like you thoroughly tried all of my suggestions.  The next thing I would like to do is review the layout.  You said:

    "Those marked signals are going to a connector where i can check USB 3.0 interface"

    Are the signals creating stubs?  What sort of connector is it?

    A few more requests:

    You say that HUB enumeration is intermittent, and that when the HUB does enumerate, the failure will occur when you plug in devices.  Does the setup ever enumerate the HUB and all the devices correctly?

    How many boards have you tested?  If you have tested multiple, Does failure rate vary between boards?  Do you find any boards that pass consistently?

    -Zack

  • Hi Zack,

    There are 2 cases of failure-

    1.HUB detection is intermittent.

    2.During intermittency, whenever hub is detected when i connect it will detect the device.but if i disconnect and reconnect the device (USB mouse) multiple times it starts throwing the error and hub will disappear.

    We have made 3 PCBs,  in which one was working fine but now its behavior is also same as remaining.

    1)USB HUB side

    2)HUB to processor AM5728

    3)HUB to connector

    Regards,

    Vijay

  • Vijay,

    Thank you, we will begin reviewing this layout.  Previously I asked about the connector between the SoC and the hub.  I don't see this connector anywhere in the layout.  Could you point it out for me?  Also, could you zoom in on the area just above C490 and C492?  Zoomed in like the first picture, but with the continuation of the traces highlighted like in the second picture.

    Thanks,

    Zack

  • Hi Vijay,

    After an initial review, I have a few more questions:

    1) To reiterate the question above, I'd like to see the layers that show the connector between the SoC and the hub, indicated in this part of the schematic:

    I'd like to see what this feature looks like in your layout.  Providing us with the full board design files would help us greatly.

    Additional questions that came up during review:

    2) I'm assuming that CP2108 and the Touch Controller are USB devices soldered onto the board, correct?  And that the last downstream device is the connector?  Try powering on the board with and the mouse plugged into the connector, and note the frequency with which the Hub fails to enumerate.  Do the same thing again with the mouse unplugged.  I suspect the issue may be with VBUS, and I want to know what.

    3) On a related note, I'd like to see the full schematics of the busses downstream from the Hub.  What is supplying the VBUS for those connections? 

    4) I also want to isolate the SoC to Hub connection.  If you can, try removing all devices downstream of the Hub, and see if the Hub is enumerated.  That will go a long way towards isolating the problem.

    Thanks,

    Zack

  • Hi Zack,

    Please find the attached pdf test.pdf

    2) Yes CP2108 and  AR1100(touch controller) are soldered on board.And last downstream port is connector and i am not using 1st downstream port of hub.

    i tried powering the board with mouse connected. Now i will note down the frequency of failure in mouse connected and not connected condition.

    3) Vbus for the downstream port devices is connected using TPS2561ADRC (schematic is in PDf attached)

    4)OK, i will disconnect all the downstream ports and check HUB will be detected continuously.

    How can i use this HUB as USB2.0 hub? only removing connection on RX and TX line will help or any other settings i have to do?

    Regards,

    Vijay

  • Vijay,

    From the pdf you sent, it appears that your layout is creating stubs in the high speed differential pairs, which may be causing the problems.  Close to the hub, each of the data lines are forking, such that one set goes to the hub, and one set goes to the connector.  The lines going to the connector are stubs, which violate the layout guidelines for high speed differential pairs.  Please see this application report: https://www.ti.com/lit/an/spraar7h/spraar7h.pdfTable 4 applies to the SoC you are using.  It states that you can't have any stubs in your design.  You should continue with removing the downstream devices to isolate the issue, but if the Hub is still enumerating intermittently, consider removing the stubs going to the connector.

    -Zack

  • Hi Zack,

    Thank you for your reply.

    I will perform signal integrity on those lines and see those are creating any stubs. And reply you back.

    Regards,

    Vijay