Other Parts Discussed in Thread: TUSB8042
Tool/software:
I'm configuring the EEPROM for the TUSB4020 (full p/n TUSB4020BIPHP). We have two USB MCUs downstream with a USB-C connector upstream, and when I plug it into my PC, I get two COM ports as expected. I can inspect the "Bus reported device description" of each COM port and verify my custom product string. One of the MCUs is also wired to the TUSB4020 EEPROM I2C port so I can rewrite the EEPROM if desired.
I can enable custom strings in bit 7 of register 5 (Device Control), though TBH I can't find where in Windows to inspect whether I've changed the strings successfully, as opposed to the virtual COM ports. However, if I set bit 6 of register 5 to enable a custom serial number, the TUSB4020 fails to enumerate correctly; Windows throws an error.
Here's my EEPROM dump that works (custom strings but no custom serial number):
00000000: 55 51 04 25 80 90 00 03 03 00 22 00 00 00 00 00 | UQ.%......".....
00000010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................
00000020: 09 04 08 0C 0C 00 00 00 00 00 00 00 00 00 00 00 | ................
00000030: 31 32 33 34 35 36 37 38 00 00 00 00 00 00 00 00 | 12345678........
00000040: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................
00000050: 4D 61 6E 75 66 61 63 74 75 72 65 72 00 00 00 00 | Manufacturer....
00000060: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................
00000070: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................
00000080: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................
00000090: 50 72 6F 64 75 63 74 20 4E 61 6D 65 00 00 00 00 | Product Name....
000000A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................
000000B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................
000000C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................
000000D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................
000000E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................
000000F0: 00 00 00 FF FF FF FF FF FF FF FF FF FF FF FF FF | ................
And here's the dump with custom serial number enabled, which doesn't enumerate correctly:
00000000: 55 51 04 25 80 D0 00 03 03 00 22 00 00 00 00 00 | UQ.%......".....
00000010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................
00000020: 09 04 08 0C 0C 00 00 00 00 00 00 00 00 00 00 00 | ................
00000030: 31 32 33 34 35 36 37 38 00 00 00 00 00 00 00 00 | 12345678........
00000040: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................
00000050: 4D 61 6E 75 66 61 63 74 75 72 65 72 00 00 00 00 | Manufacturer....
00000060: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................
00000070: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................
00000080: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................
00000090: 50 72 6F 64 75 63 74 20 4E 61 6D 65 00 00 00 00 | Product Name....
000000A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................
000000B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................
000000C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................
000000D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................
000000E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................
000000F0: 00 00 00 FF FF FF FF FF FF FF FF FF FF FF FF FF | ................
The only byte (really, the only bit) that's different is bit 6 of register 0x05. Is there something special you're supposed to do to enable a custom serial number?
Dana M.