Multiple configuration descriptors with FX2 | Cypress Semiconductor
Multiple configuration descriptors with FX2
I would like to use multiple configuration descriptors. One of them would have a DirectSound interface (and that interface would not receive data from the Cypress driver), the other would not have that interface and instead the Cypress driver would provide the data that DirectSound would have using the vendor-defined interface.
I have added the extra configuration descriptor (and associated interface/endpoint descriptors) to dscr.a51. I also modified SetupCommand(void) so that SC_GET_DESCRIPTOR / GD_CONFIGURATION (and GD_OTHER_SPEED_CONFIGURATION) will return the correct descriptors. I also modified the ISR's Ures and Highspeed so that they correctly handle switching the configuration types from CONFIG_DSCR to OTHERSPEED_DSCR.
If I manully enter the commands for getting the DirectSound descriptor, I get back the correct descriptor. However, when I send the command for setting the DirectSound descriptor, nothing happens; I don't see a DirectSound device and no data flows to the FX2.
When I look in the CyConsole or the USB Control Center, I can see two configurations, but they're both "configuration 1". I know that my DirectSound config descriptor is set correctly - recall that get descriptor works fine, and shows configuration 2.
Do I need to disconnect and reconnect from the USB using USBCS in order for the new DirectSound configuration descriptor to be seen? Why can't the Control Center or Console see the other configuration descriptor?