Sometimes FX3 enumerates as "Unknown USB Device (Invalid Configuration Descriptor)" under USB controllers section of the Device Manager. When you double-click of the device in Device Manager, the following window appears:
To resolve this issue, check the following:
- Check the Configuration Descriptor Size: See Table 9-21 Section 9.6.3 of the USB 3.1 specification. Make sure that wTotalLength is as per the specification.
2. Check the Endian System: The MaxPacketSize should be written LSB first. A Bulk Endpoint descriptor is mentioned here for reference:
/* Endpoint Descriptor for BULK type*/
0x07, /* Descriptor size */
0x04, /* Endpoint Descriptor Type */
0x83, /* Endpoint address and description */
0x02, /* BULK End point */
0x00, /* EP MaxPcktSize: 1024B */
0x04, /* EP MaxPcktSize: 1024B */
0x00, /* Servicing interval for data transfers */
For the bMaxPacketSize value of the other endpoint types, see Table 9-24 Section 9.6.6 of the USB 3.1 specification.
Note: The value entered in this field must be as per the specification. In Windows 10, if this value is incorrect, the device enumerates as an Unknown USB Device.
For example, for bulk endpoint, the value must be 0x0400.
- Check the Interface Descriptor Order: The order of interface descriptors matters in Windows 10. For example, if there are three interfaces, they must be placed in the following order: Interface 0, then Interface 1, Interface 2. An incorrect order causes the Invalid USB Device error..
If you are unable to resolve this issue with these steps, see sections 9.5 and 9.6 of the USB 3.1 Specification.