|
Hi,
I believe from the description when you add alternate interface setting, the device does not even enumerate. If so, please ensure that every desriptor starts on a WORD-aligned boundary. In the descriptor file that you had attached, I noticed that the configuration descriptor has odd number of bytes. You need to ensure all of the descriptor (device desc, device qual desc, config descr, etc) starts at WORD-ALIGNED boundary.
The following two KB articles would be useful in that case: http://www.cypress.com/?id=4&rID=31681and http://www.cypress.com/?id=4&rID=31685.
You may also refer CYStreamer firmwar example that comes as part of Cypress SuiteUSB 3.4.7 (http://www.cypress.com/?rID=34870). In this also there are multiple alternate settings added in dscr,a51. Please refer the same. In that you can see that "org (($ / 2) +1) * 2" has been added prior to every descriptor start. Please modify your dscr.a51 accordingly to start every descriptor at WORD-ALIGNED boundary, and let us know if that fixes the issue.
Once it enumerates, you may issue the command to set the alternate interface setting using CyConsole. But you have to add handler that will handle the SET_INTERFACE command, for configuring teh appropriate endpoint config registers, You may refer the same example, CYSTREAMER and look at the DR_SetInterface() function to undertsand the same.
regards,
Gayathri
|