Problem using FX3 as WinUSB device | Cypress Semiconductor
Problem using FX3 as WinUSB device
We want to use our next device (with includes an FX3) with the WinUSB device driver, including the 'WinUSB device' option when using Windows 8.0 and up.
On the DVK, this works fine with a slightly changed SlaveFifoSync sample firmware from the FX3 SDK. It handle the three calls that are necessary in CyFxSlFifoApplnUSBSetupCB.
- The Microsoft OS String Descriptor request
- The Extended Compat ID OS Feature Descriptor (wIndex = 0x04)
- The Extended Properties OS Feature Descriptor (wIndex = 0x05)
For 'Vendor Code' we used either the value 0xAB (which is what Cypress has in its sample) or 0x01 (which is what Microsoft has in its sample). The DVK with this firmware works fine both on Windows 7 and Windows 8.1
Now comes the strange part:
On our prototype, the WinUSB device recognition works fine on Windows 8.1 when using 0x01 as 'Vendor Code'. There is now a problem on Windows 7, the device fails during enumeration.
When using 0xAB as 'Vendor Code', the device works fine on Windows 7, but the WinUSB device recognition on Windows 8.1 does not work.
All this happens using the exact same code that we loaded in the DVK, and which works fine there.
We do not understand how identical code can act differently on both devices, since the connection between PC and FX3 is really straightforward.
Any ideas would be welcome.