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.

TUSB8041: TUSB8401: EEPROM Program Not Sticking

Part Number: TUSB8041

I received the EEPROM for the TUSB8041RGEVM Board  REVD 6556574. The TI programmer appears to work fine, as seen on these screenshots.

My problem is that the data does NOT appear in Device Manager, even after a restart. Yes, I replaced the driver and put SDA/SCL back to normal positions before restarting the computer. I even turned the device on and off afterwards, still nothing.

Screenshot Showing Programming Configuration

Screenshot Showing After Programming (USB 2.0):

Screenshot After Programming Super Speed:

Just to make it easier on myself, I changed the VID to 0351 (as opposed to 0451) and the Product ID to 8042 (as opposed to 8142). I changed the Manufacturer and Product description, but nothing shows. There was a brief attempt, when I did not see the strings show up, but I did see the VID/PID show, but that is gone.

Here is the latest code:

01 51
02 04
03 42
04 81
05 90
06 00
07 00
08 0F
09 00
0A 22
20 09
21 04
22 00
23 1E
24 14
51 44
52 00
53 69
54 00
55 74
56 00
57 74
58 00
59 6F
90 00
91 44
92 00
93 69
94 00
95 74
96 00
97 74
98 00
99 6F
9A 00
9B 44
9C 00
9D 72
9E 00
F0 10

I deleted quite a few rows for compactness sake. I set unused data to zeroes.

Thoughts?

  • Hello Sarah,

    I have a couple questions. When you say here is the latest code, is this what you are writing to the EEPROM or what you are reading back from it? Have you checked after you write to the EEPROM that the registers you wrote to reflect the values were written? What is the part number of the EEPROM you are using?

    Best,
    Gerasimos
  • 1.  Is this what you are writing to the EEPROM or what you are reading back from it?

    Both, one and the same

    2. Have you checked after you write to the EEPROM that the registers you wrote to reflect the values were written?

    The programming tool does not have a function to monitor the actual registers. As such, I used Windows Device Manager, which shows the VID, PID, Manufacturer, and product strings.

    3. What is the part number of the EEPROM you are using?

    AT24C04D-PUM-NO

    IC EEPROM 4K I2C 1 MHz 8DIP

    See photos:

    Chip:

    Bag:

  • I just read back the data from EEPROM and did a comparison and the data is identical. I used a file comparison utility (Araxis Merge) and stripped off the third column. Here is the first part of the data showing the contents read back from EEPROM. Missing is my seeing this data in Device Manager. I would need to know the utility and where to download this utility to inspect the registers.

    00 55 01010101
    01 51 01010001
    02 03 00000011
    03 42 01000010
    04 80 10000000
    05 90 10010000
    06 00 00000000
    07 00 00000000
    08 0F 00001111
    09 00 00000000
    0A 22 00100010
    0B 00 00000000
    0C 00 00000000
    0D 00 00000000
    0E 00 00000000
    0F 00 00000000
    10 00 00000000
    11 00 00000000
    12 00 00000000
    13 00 00000000
    14 00 00000000
    15 00 00000000
    16 00 00000000
    17 00 00000000
    18 00 00000000
    19 00 00000000
    1A 00 00000000
    1B 00 00000000
    1C 00 00000000
    1D 00 00000000
    1E 00 00000000
    1F 00 00000000
    20 09 00001001
    21 04 00000100
    22 00 00000000
    23 1E 00011110
  • HI Sarah,

    As noted earlier, SW1_3 and SW1_4 must be on to enable the pullups to SDA and SCL or the EEPROM access will not work.

    After programming the EEPROM, the EVM must be power cycled.

    Regards,
    JMMN
  • Hi Sarah,

    My mistake, I didn't mean the registers, I meant the addresses of the EEPROM. Are you verifying that the information written to the EEPROM is there? In addition, after you make all the changes to the EEPROM, are you setting address 0x00 to 0x55?

    Best,
    Gerasimos
  • Hello,

    I did not realize that the 2 switches must be pulled up all the time for the chip to recognize the EEPROM. I thought that was just for programming.

    I see the VID/PID, as you can see from the screenshot below, however the manufacturer name and name at the top (Generic USB Hub) still says that. There is one field, which is in an Asian looking language. Is that the product description? If so, what is wrong and why not "DittoDrive"?

    00 55
    01 51
    02 03
    03 42
    04 80
    05 90
    06 00
    07 00
    08 0F
    09 00
    0A 22
    0B 00
    0C 00
    0D 00
    0E 00
    0F 00
    10 00
    11 00
    12 00
    13 00
    14 00
    15 00
    16 00
    17 00
    18 00
    19 00
    1A 00
    1B 00
    1C 00
    1D 00
    1E 00
    1F 00
    20 09
    21 04
    22 00

    23 1E
    24 14

    90 00
    91 44
    92 00
    93 69
    94 00
    95 74
    96 00
    97 74
    98 00
    99 6F
    9A 00
    9B 44
    9C 00
    9D 72
    9E 00
    9F 69
    A0 00
    A1 76
    A2 00
    A3 65
    A4 00
    A5 00
    A6 00
    A7 00
    A8 00
    A9 00
    AA 00
    AB 00
    AC 00
    AD 00
    AE 00
    AF 00

  • I attached a the read contents from the EEPROM. I did NOT alter the attached file in any way. I sent previously several times now what I would like.

    As I already said several times now too, the read back content and the programming data content are identical inclusive of the 0x55, however you can see that for yourself. The saved read back file has the binary expansion in the 3rd column. You can always tell a customer data file from a file saved by the programmer because of that.

    TUSB8040 EEPROM DATA.TXT

  • By the way, the first screenshot at the top shows 0x55 at location 0x00. Any custom changes would be in red.
  • 1. Is the "Bus reported device description" attribute reported the Windows Device Manager the TUSB8041 product string contained in location 0x90 to 0xCF?

    2. If the answer to #1 is true, does that mean that there is no way to modify "Generic USB Hub" and "Generic SuperSpeed USB Hub" to strings (a string) of my choosing?

    3. The manufacturer string as shown did not change. I expected to see "DittoDrive Inc.".
  • Hey Sarah,

    Sorry if the questions seemed repetitive, I was trying to be thorough with my understanding of the situation. Could you please download USBView and show what the TUSB8041 shows up as in USBView?

    docs.microsoft.com/.../usbview

    Best,
    Gerasimos
  • USBViewAll.xmlHi Gerasimos et al,

    Please see attached.

  • Solution:

    1. Product String = "Bus Reported Product Description"

    a) That means that it is not possible to change "Generic USB Hub" and "Generic SuperSpeed USB Hub".
    b) My Asian looking characters were because I had MSB and LSB swapped in the characters.

    2. I can successfully change VID and PID now. Unplugging the device (or turning off) for changes to take effect. Also, as noted earlier, SCL and SDA need to be pulled up all the time.

    My device is now properly configured, so issue closed. Thanks.