Why does HX3 enumerate in Vendor Command Class with a different PID in I2C Master Boot mode?
When the boot mode is selected as I2C master mode (MODE_SEL=01), and the I2C slave (for example, EEPROM) is corrupted, HX3 bootloader can go into Vendor Command Class. HX3 will then enumerate with a PID different from the default one mentioned in the HX3 Kits User Guide and bind to the vendor driver. This can happen when one of the following conditions occur:
There is no EEPROM present or the connected I2C EEPROM is blank.
The connected I2C EEPROM has firmware with invalid signature.
The connected I2C EEPROM has firmware has invalid contents.
In the case of the first two conditions, HX3 will enumerate as a USB 2.0 hub with a Vendor mode PID that is programmed into the e-Fuse. See the HX3 datasheet for the default vendor PIDs for different parts.
In the case of the third condition, HX3 enumerates with a PID that is calculated from the programmed I2C USB 3.0 PID+0x03.
To avoid this, the boot mode can be selected as internal ROM mode (MODE_SEL=11) in which case HX3 will enumerate with the default PID as per the part number.