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.

TUSB4041I: TUSB4041I Hub communication issues with the USB host laptop

Part Number: TUSB4041I

Hello TI members,

We are using TUSB4041I USB Hub in our project, which is connected to a PSoC MCU using D+ and D- pins of USB, i.e., the downstream port of the USB Hub is connected to the MCU (a USB Device) and the upstream port is User Laptop (a USB Host). Below, find our findings, because the MCU USB device is not able to communicate with the USB host device.

1. When the USB hub upstream port is not connected to the User laptop (USB host device), the D+ and D- pins are asserted low, while the MCU (USB device) USB pins have D+ as logic 1 (3V3) while D- as logic 0 (0V). Please share your thoughts that why there are different logic levels of USB pins at USB Hub and MCU devices.

2. When the USB cable is connected between the USB hub port and the User laptop (USB host), then both USB devices (MCU and USB hub) have pins states as D+ (0V) and D- (0V). But still, the User's laptop is not able to detect the USB hub and MCU USB device. Every time, the windows laptop shows the information "Device Descriptor Request Failed". When we try to reset the MCU device, then sometimes, the User's laptop is able to detect both devices. 

I am attaching the schematic of the USB hub. Please share your thoughts on this, and try to solve this issue.



Thanks and Regards,
Vivek Karna

  • Vivek

    How do you control the GRST pin? Do you have a 1uF pulldown capacitor on it? 

    Please make sure the TUSB4041I power-up sequence is met and there is a valid 24MHz clock going into the hub.

    Thanks

    David

  • Hello David,

    No, there is no 1uF pull-down capacitor attached to the GRSTZ pin of the USB Hub device. The GRSTZ pin is connected to a control device (an MCU), we are asserting this pin low and then again asserting high after applying power to this device. We have checked the 24MHz clock input to this device, it's working correctly.

    Can you please elaborate on the power-up sequence of this USB hub device, we have read the datasheet, but the words seem to be a bit confusing. Please elaborate on the steps again.

    Thanks.
    Vivek Karna

  • Vivek 

    Please see section 7.7 for the power up sequence. Is it possible to switch from MCU driving the GRST to having a 1uF capacitor on it?

    Can you also make sure the HUB_VBUS voltage is around 500mV?

    Thanks

    David

  • Hello David,

    I tried the same procedure but was not able to solve the problem. Please share some more thoughts. Would like to put light on something, I have the same circuit working on a different board, i.e., the USB hub is detecting and the USB device is connected to it also, but the same other 4 circuits/ PCBs are not working, which is very strange to see.

    Is there any way that we can measure the test points on the USB hub or D+ and D- pin.

    Thank you,
    Vivek Karna

  • Vivek

    Did you see a valid 24MHz clock from the oscillator?

    You can measure the VBUS, D+, and D-, and you should see the below waveform,

    Thanks

    David

  • Hello David,

    Thanks for the advice. We have followed your timing diagram and along with that, we have captured the signals for the GRSTZ and 1V1 of the USB hub. 



    the yellow channel is GRSTZ pin state and the blue channel is 1V1 power rail. As given in the power-up sequence of the USB hub, we can conclude that the GRSTZ pin is high after 1V1 is given to the USB hub, but the slope of the GRSTZ pin, going from low to high is very high, as compared to the timing diagram in the datasheet of the USB hub. 

    Please share your thoughts on this issue. If possible, we can have a 1-to-1 video meeting, and we can solve the issue if it is comfortable for you. 

    Thank you.

    Regards,
    Vivek Karna 

  • Vivek:

       David is out for holiday . we can have a call if you want.

    Regards

    Brian

  • Hi Brian, 

    Yes, we are comfortable with the call if you want. We are in India, so our daytime will not match. I can share to you my personal email with you then we can have a Teams meeting or whatever suits us better.

    Please accept my friend request and my message.

    Thanks & Regards,
    Vivek Karna

  • I just sent email to you.

    Regards

    brian

  • Hello @Brain and @David,

    we tried to read the registers of the USB hub using the SMBus protocol. We pulled down the SMBUSZ pin to the ground (0V). The communication between the USB Hub and MCU (SMBus master) worked and we were able to read all the registers from 0x00 to 0xFF of the USB Hub. The registers dump of the USB hub is attached below. Most of the registers are showing 0 values except UUID and Serial Number. The LSB bit of register 0xF8 (Value is 0x12) of USB Hub is zero (cgfActive) while the smbusRst bit is high. 


    While doing the SMBus communication between the devices, we pulled high the GRSTZ to 3.3V (de-asserted). 

    Before doing the SMBus communication between the devices, we used to get the notification of USB Hub on the user laptop as "Device Descriptor Request Failed" but after doing the SMBus communication, there is no notification on the laptop, and D+ and D- pin of the USB hub is low always.

    @Brain, last time as suggested by you, we pulled down the VBUS of the USB of the MCU device (a downstream device), but still, the USB hub is not working.

    As already we have told you that one of our PCB is working fine with the USB hub, i.e., it is detecting the user's laptop as well as it is recognizing one downstream device which is MCU in our case, but if we are connecting the low-speed USB devices to other ports of the USB, it is not recognizing them, it is only recognizing the full-speed devices.

    Please share the solution for this.

    Thanks & Regards,
    Vivek Karna 

  • Please find the register dump of the USB Hub, found using SMBus communication.

    Reg   Reg
    is    is
    ter 	ter
    In	Val
    dex	ue
    
    0x0	0x51
    0x1	0x4
    0x2	0x40
    0x3	0x81
    0x4	0x10
    0x5	0x3
    0x6	0xf
    0x7	0x0
    0x8	0x0
    0x9	0x30
    0xa	0x0
    0xb	0x0
    0xc	0x0
    0xd	0x0
    0xe	0x0
    0xf	0x2
    0x10	0xc0
    0x11	0x14
    0x12	0x9
    0x13	0x46
    0x14	0xd4
    0x15	0x5d
    0x16	0x66
    0x17	0x83
    0x18	0x18
    0x19	0xf2
    0x1a	0x67
    0x1b	0x28
    0x1c	0x2d
    0x1d	0x3
    0x1e	0x0
    0x1f	0x9
    0x20	0x4
    0x21	0x18
    0x22	0x0
    0x23	0x0
    0x24	0x0
    0x25	0x0
    0x26	0x0
    0x27	0x0
    0x28	0x0
    0x29	0x0
    0x2a	0x0
    0x2b	0x0
    0x2c	0x0
    0x2d	0x0
    0x2e	0x0
    0x2f	0x34
    0x30	0x0
    0x31	0x34
    0x32	0x0
    0x33	0x30
    0x34	0x0
    0x35	0x31
    0x36	0x0
    0x37	0x30
    0x38	0x0
    0x39	0x38
    0x3a	0x0
    0x3b	0x36
    0x3c	0x0
    0x3d	0x39
    0x3e	0x0
    0x3f	0x41
    0x40	0x0
    0x41	0x37
    0x42	0x0
    0x43	0x35
    0x44	0x0
    0x45	0x30
    0x46	0x0
    0x47	0x0
    0x48	0x0
    0x49	0x0
    0x4a	0x0
    0x4b	0x0
    0x4c	0x0
    0x4d	0x0
    0x4e	0x0
    0x4f	0x0
    0x50	0x0
    0x51	0x0
    0x52	0x0
    0x53	0x0
    0x54	0x0
    0x55	0x0
    0x56	0x0
    0x57	0x0
    0x58	0x0
    0x59	0x0
    0x5a	0x0
    0x5b	0x0
    0x5c	0x0
    0x5d	0x0
    0x5e	0x0
    0x5f	0x0
    0x60	0x0
    0x61	0x0
    0x62	0x0
    0x63	0x0
    0x64	0x0
    0x65	0x0
    0x66	0x0
    0x67	0x0
    0x68	0x0
    0x69	0x0
    0x6a	0x0
    0x6b	0x0
    0x6c	0x0
    0x6d	0x0
    0x6e	0x0
    0x6f	0x0
    0x70	0x0
    0x71	0x0
    0x72	0x0
    0x73	0x0
    0x74	0x0
    0x75	0x0
    0x76	0x0
    0x77	0x0
    0x78	0x0
    0x79	0x0
    0x7a	0x0
    0x7b	0x0
    0x7c	0x0
    0x7d	0x0
    0x7e	0x0
    0x7f	0x0
    0x80	0x0
    0x81	0x0
    0x82	0x0
    0x83	0x0
    0x84	0x0
    0x85	0x0
    0x86	0x0
    0x87	0x0
    0x88	0x0
    0x89	0x0
    0x8a	0x0
    0x8b	0x0
    0x8c	0x0
    0x8d	0x0
    0x8e	0x0
    0x8f	0x0
    0x90	0x0
    0x91	0x0
    0x92	0x0
    0x93	0x0
    0x94	0x0
    0x95	0x0
    0x96	0x0
    0x97	0x0
    0x98	0x0
    0x99	0x0
    0x9a	0x0
    0x9b	0x0
    0x9c	0x0
    0x9d	0x0
    0x9e	0x0
    0x9f	0x0
    0xa0	0x0
    0xa1	0x0
    0xa2	0x0
    0xa3	0x0
    0xa4	0x0
    0xa5	0x0
    0xa6	0x0
    0xa7	0x0
    0xa8	0x0
    0xa9	0x0
    0xaa	0x0
    0xab	0x0
    0xac	0x0
    0xad	0x0
    0xae	0x0
    0xaf	0x0
    0xb0	0x0
    0xb1	0x0
    0xb2	0x0
    0xb3	0x0
    0xb4	0x0
    0xb5	0x0
    0xb6	0x0
    0xb7	0x0
    0xb8	0x0
    0xb9	0x0
    0xba	0x0
    0xbb	0x0
    0xbc	0x0
    0xbd	0x0
    0xbe	0x0
    0xbf	0x0
    0xc0	0x0
    0xc1	0x0
    0xc2	0x0
    0xc3	0x0
    0xc4	0x0
    0xc5	0x0
    0xc6	0x0
    0xc7	0x0
    0xc8	0x0
    0xc9	0x0
    0xca	0x0
    0xcb	0x0
    0xcc	0x0
    0xcd	0x0
    0xce	0x0
    0xcf	0x1e
    0xd0	0x1e
    0xd1	0x1e
    0xd2	0x1e
    0xd3	0x1e
    0xd4	0x0
    0xd5	0x0
    0xd6	0x0
    0xd7	0x18
    0xd8	0x18
    0xd9	0x18
    0xda	0x18
    0xdb	0x18
    0xdc	0x0
    0xdd	0x0
    0xde	0x0
    0xdf	0x4
    0xe0	0x4
    0xe1	0x4
    0xe2	0x4
    0xe3	0x4
    0xe4	0x0
    0xe5	0x0
    0xe6	0x0
    0xe7	0x77
    0xe8	0x77
    0xe9	0x77
    0xea	0x77
    0xeb	0x77
    0xec	0x0
    0xed	0x0
    0xee	0x0
    0xef	0x0
    0xf0	0x0
    0xf1	0x0
    0xf2	0x0
    0xf3	0x80
    0xf4	0x80
    0xf5	0x80
    0xf6	0x80
    0xf7	0x1
    0xf8	0x12
    0xf9	0x0
    0xfa	0x0
    0xfb	0x0
    0xfc	0x0
    0xfd	0x0
    0xfe	0x0
    0xff	0x0

  • Vivek

    Have you checked the solder coverage of the TUSB4041I thermal pad and make sure there is 100% coverage as required in the datasheet? 

    Thanks

    David

  • Hello David, 

    Thanks for the information.

    I did check that and the solder coverage is the same as the reference. No issues with that.

    Did you get a chance to review the register read by our SMBus master from USB Hub?

    Other than that, I forgot to mention some points as follows:

    1. When I am enabling the SMBus communication with the USB Hub, then the USB Hub does not do any communication with the user's laptop, i.e., there is no exchange of descriptors between the USB hub and the user's laptop. Why is it so? 
     

    2. When we de-assertion the GRSTZ pin of the USB Hub (low to high), then only the SMBus communication takes place.

    3. When we read the 0xF8 register of the USB hub, we get the 0x12 data from the 0xF8 register, i.e., the smbusRst bit of this register is set, but as per the datasheet, this bit should be cleared by the hardware on reset of the USB hub.

    4. Can you please share some reference values of the internal registers of the USB hub, read using SMBus communication? 

    Thanks,
    Vivek Karna

  • Vivek 

    The hub is designed to be pin configured by default. I2C or SMBUS is completely optional. If SMBUS is not used make sure SMBUSz is not low in the system or the hub will hang in SMBUS mode until a SMBUS host configures it.

    I do not see an issue with the design itself. The fact you have one board working also would indicate the design itself is ok. But there is something different from board to board that causes the 2nd board not working and this is why I question the thermal pad coverage. Do you have the x-ray picture of the thermal pad coverage itself? 

    I do not have a reference value of the USB hub internal registers. The hub will work with its default value.

    Thanks

    David