Thanks for those comments/questions, Jan. You are quite correct in pointing out that there is no Set_Configuration request. Nor is there a composite device evident, at that aborted stage of enumeration. I may be wrong, but my understanding is that with any device having more than one interface, it first calls it a composite device and then re-labels it later in the transactions. In any case, when I look in Device Manager, it shows a composite device 'installed' at the appropriate USB port and supposedly working normally, but it also shows an audio device in the 'games and media' section, with the yellow exclamation mark and 'Error -- device cannot start' in the properties. I assume from this that the control interface (EP0) has installed correctly, but the isochronous audio streaming interface (EP1) has not. Does that sound right?
Yes, I did test the Microchip 'audio microphone demo' firmware, and it does work correctly (as far as it goes). But it is only an emulator program, which sends a short voice message ("Hello") when you press a button on the demo board. It sends the message in mono only, and at a sampling rate of 8kHz. Because my project is to operate in stereo and at a sampling rate of 48kHz, I made the following changes (almost entirely in the usb_descriptors.c file):
1. I changed the bNrChannels parameter in the Input Terminal descriptor and the Microphone Type I Format descriptor from 0x01 to 0x02.
2. I changed the wChannelConfig parameter from 0x00,0x00 to 0x03,0x00.
3. I changed the tSamFreq parameter in the Type I Format descriptor to 0x80,0xBB,0x00 to specify the new sample rate.
4. I changed the manufacturer and product text strings.
Just in case you would be prepared to check the enumeration log for the Microchip demo firmware and compare it with the one for my device, I'm attaching it. I'm blessed if I can see why that one works, yet mine doesn't...
Thanks again for your help, Jan.
[attachment deleted by admin]