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 is not recognised by Windows 10, if it is configured by EEPROM

Part Number: TUSB4041I

Dear TI Team,

Last year I developed a PCB board using 3 pcs of TUSB4041I USB hub ICs and a 4-port USB-UART and a USB-I2C converter. I asked some questions on Jan 25, 2019 (TUSB4041I EEPROM Programming Tool) related to my project. The PCB became ready last spring and it worked very well with Windows 7, thanks for great support again. My problem started when I wanted to use it with Windows 10. I have tried it with different PC hardwares (Asus, Dell PP39L, Lenovo Y50-70 laptops, Intel NUC7i7BN and a desktop computer with Asus P8H77M motherboard). I found their behavior very different. The desktop recognised TUSB4041I hub ICs on my board, if I connected it to its USB2.0 ports, but not if I connected it to USB3.0 port. The Dell could also reciognise them, but the others not at all. All of mentioned computers were installed with 64-bit version of Windows 10 Pro. It seemed for me the newer the computer (and its USB driver), the worse its behavior with my board.

Alexey Tyutin sent a message into TUSB4041I Windows 10 topic on Jul 12, 2019 and he uploaded a schematic too. His problem was similar to mine and he found that removing a resistor from his board, the recognition problem disappears. Looking at his schematic, the removed resistor is the pull-up resistor of the clock signal of the configuration EEPROM. This removal means, that no high level of clock signal and TUSB4041I will not see the EEPROM, which means the configuration will be the default config. My board is also EEPROM configured, because I had to use the USB DP-DM polarity change feature in case of some downstream ports and I wanted to use some other features too. I have also tried Alexey's idea and my experience is the same: the recognition problem disappeared in all cases I have tried.

I think, the drivers for Windows 7 are written in correct way and as I found the board works flawlessly with EEPROM configuration too. My suspect is that Window 10 drivers don't handle EEPROM configuration well, because I cannot find any logical explanation to the behavior detailed above.

Please help me to solve this problem.

Thank you in advance.

Best regards,

Balazs Soregi

  • Hi Balazs,

    I'm sending you a friend request, can you send me the EEPROM file you are using via direct message?  I would like to try it in my lab.

    Regards,

    JMMN

  • Hi JMMN,

    Thanks for your reply,

    we are not using EEPROM is it necessary to connect EEPROM.

    Regards,

    pravallika.

  • Hello Pravalilka,

    EEPROM is not necessary for the TI USB hubs.

    Regards,

    JMMN

  • Hi Balazs,

    I was able to duplicate the behavior you reported and it appears that the Windows 10 does not like the string descriptors but a check of the USB protocol trace shows they were implemented correctly.  I am trying to find more information on why it is failing on the Windows platform, but a response may take time.

    Regards,

    JMMN

  • Hi JMMN,

    Thank you for your reply and I am waiting for the final result. Have a success soon!

    Regards,

    Balazs Soregi

  • Hi Balazs,

    It looks like the latest version of Windows is enforcing the spec requirements that USB string descriptors be in UNICODE UTF_16LE format.  You will need to change your strings to that format to get them to appear in Device Manager.  It looked like a quick fix, if you don't need the strings to appear in Device Manager, is to change all the string lengths to even values, that seemed to address the problem in my testing.

    Regards,

    JMMN

  • Hi JMMN,

    I used a file (4041_from_TI.TXT) as a reference what I found in Interface Forum last year. I modified that one to make my EEPROM files. Unfortunately I didn't take care to convert them to UNICODE UTF_16LE format. Today I did it and I programmed them to a 2nd piece of card. Unfortunately the result is the same: it is working with Windows 7 (in my desktop computer), but not with Windows 10 (in Intel NUC7i7BN). Please find some details in the attached files (made on NUC7i7BN). The NUC computer doesn't recognise TUSB4041I hub at all, it doesn't matter whether it has default config or EEPROM config. The Lenovo laptop mentioned in my first post works perfectly with default config, but produces the same behavior with EEPROM config as the NUC. We would like to use NUC computer, because it can be insert into a Eurocard rack, so it would be very important for us to solve this problem.

    Regards,

    Balazs Soregi

  • Hi Balazs,

    I sent you updated files that I tested in my lab, in addtion to changing the UNICODE format you need to make sure the string lengths are even values.

    I'm not sure why the hub is not loading on the NUC system, can you confirm if the hub is in programming mode still?  Can you download usbview.exe or usb device tree viewer and send me a screenshot of the hub connected to the NUC system?

    Regards,

    JMMN

  • Hi JMMN,

    The updated files work with Intel NUC7i7BN too. Modifying the string lengts to even number solved the very strange problem. Thank you very much for your efforts.

    Regards,

    Balazs Soregi