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.

TUSB8020B: Communication problem with Kingston drive.

Part Number: TUSB8020B


Hi, there,

One of our network product implemented with TUSB8020B.

Software on our product is design based on Linux.

We're facing a problem with Kingston drive ,DataTraveler G4 16GB (Ether RD or customer side).

Symptoms are,

1. After system booted up, plug in Kingston drive (Before plugging any other USB drives), system is not able to recognize the drive (Observe from system console)

    And system is not able to recognize other USB drives afterward (Plugging in other brand of drives)

    (SoC is able to recognize TUSB8020B, but there's no USB drive on the root)

    The only way to solve it is resetting the system and do item 2.

2. If we plug in other brand of USB drives after system booted up (Before plugging Kingston one), it works fine with Kingston one aterward.

3. USB eye-diagram (Both 3.0 and 2.0) is measured and all are within the criteria.

4. USB power is stable during communication.

5. Schematic and layout were checked and confirmed by agent.

Here're our questions needs your help to clarify,

a. Is any other way to check where the problems are?

b. Are there any patches for TUSB8020B? And how to patch it (Thru I2C or USB)?

If you guys need any other more information or measurements, please feel free to let us know.

Thanks in advance.

Regards.

  • Hi Russ,

    We've tested our hubs with the Kingston drives in the past and have not seen any compatibility issues, can we get debug logs from the failed connection?

    Regards,

    JMMN

  • Hi, JMMN,

    Good day and thank you for your reply.

    Below the system log for your reference (I'm sorry, I'm not sure what kind of log you need).

    On the left side of the picture, we plugged SanDisk drive first and it works fine with either SanDisk and Kingston.

    And the other side of picture, we plugged Kingston drive first and no USB drive is detected.

    It's tested on the same system.

    We also tested TUSB8020B EVM with other product which is not implemented with USB hubs. (Plug EVM into the USB port of the product)

    And the symptom is the same as described. (No drive is detected if we plug Kingston in first after booted up)

    Furthermore, we measured and compared waveform of both USB drive.

    Attached another pic below, waveform seem different between initial communication on these two USB drive.

    (The measuring point is TUSB8020B downstream port)

    It will be helpful if you have any idea about this defect.

    Please refer to the information.

    Thank you and regards.

    Russ

  • Hi Russ,

    Which Linux kernel are you using?  It looks like the Kingston drive has it USB 3.0 receiver terminations on but doesn't respond for a long time, that could lead to the hub reporting some unexpected port status to the host controller that the driver doesn't handle well.  Can you try the same test with a different operating system?

    Thanks,

    JMMN

  • Hi, JMMN,

    Good day, apologize for the late update.

    Linux version is 4.14.76-release1.3.0.

    And we're confirming whether it will occur on other operation system (Android....etc.)

    Will update when the result comes up.

    Thank you and regards.

    Russ

  • Hi, JMMN,

    Good day.

    We've tested on another platform of product which is based on Android 7.1.2

    And the symptoms are the same.

    Plugging Kingston DataTraveler G4 16GB first after booting up, downstream port of TUSB8020B is not working.

    (But the other downstream port is working if we plug other brand of USB drive).

    All are tested with TUSB8020B EVM.

    So, there're two failures on our products (One Linux 4.14.76-release1.3.0., and Android 7.1.2)

    Please help to clarify our confusions.

    Thanks in advance and regards.

    Russ

  • Hi Russ,

    Linux and Android have very similar USB hub drivers.  Can you run USBMON and send the debug output?  Can you try plugging into a Windows or Mac machine and see if the problem still occurs.

    Regards,

    JMMN

  • Hi, JMMN,

    Good day.

    A. We tried TUSB8020B EVM on Windows 10 laptop, and the symptom are,

    1. When plugging in Kingston drive first, it can be recognized. But if we plug other USB drives after, USB drive will not be recognized. 

    And plug Kingston drive into the same downstream USB port of EVM, it works fine.

    2. If we plug other drives first, all works fine.

    B. For USB packets, please refer to attached excel file for two different USB drive plugged on our system.

    'Cause the file size of the file is huge, so there're only 2000 data reserved.

    If you need whole data, please feel free to let me know (Single file size is around 15MB)

    SanDisk_3.0_Kernel_Cut.xlsx

    Kingston_3.0_Kernel_Cut.xlsx

    Thank you again and regards.

    Russ

  • Hi Russ,

    These look like LeCroy protocol traces, can you send me the .usb files?  That will make debug very quick.  I will send you a friend request so you can send them directly.  You should be able to just zip them and send them, if not I can send you an upload link.

    Thanks!

    JMMN

  • Hi, JMMN,

    Good day.

    Yes, we checked with Lecory Advistor T3.

    Attached is the analysis file (By .usb).

    Please refer.

    https://e2e.ti.com/cfs-file/__key/communityserver-discussions-components-files/138/IEI_5F00_TUSB8020B_5F00_Kingston_5F00_Issue_5F00_20200615.7z

    Thank you and regards.

    Russ

  • Hi Russ,

    The hub port where the Kingston drive is connected is going to USB Compliance Mode.  For some reason the Kingston drive incorrectly turns on it USB 3.0 RX terminations but does not respond for 360 ms which causes the hub port to enter compliance mode.  If the operating system does not address the port entry to compliance mode with a warm reset, the port would become non-functional until reset.  The entry to compliance mode can be prevented by setting the dsportEcrEn bit in register 0Ah of the TUSB8020B.

    Regards,

    JMMN

  • Hi, JMMN,

    Good day and thank you very much for your lecture.

    I'd like to further confirm,

    1. Setting the register by I2C or USB?

    2. The dsportEcrEn bit is to reset HUB or to turn off compliance mode? Are there any potential impact for user?

    Again, thank you for your support.

    Regards.

    Russ

  • Hi Russ,

    1. The register needs to be set by I2C EEPROM or SMBUS host, not USB. Let me know if you need the programming utility.

    2. The dsportEcrEn bit will only impact the hub's downstream port entry to compliance mode.  No other impact will be seen.  Please note that if USB 3.0 compliance testing is done on the hub, the command to enter compliance mode will need to be sent by the USB host.  

    Regards,

    JMMN

  • Hi, JMMN,

    Thank you.

    I believe the reply resolved our confusions.

    And we'll have internal discussion on this topic.

    I'm going to close this topic for now.

    Again, thank you very much for your support.

    Regards.

    Russ