Resample dev modules.

Yes. It didn't work. The USB frames invariably overurn the buffer because hosts clock is different to the I2S clock.

Other options are Isochronous with feedback to at least get the hosts help in not sending too much/too little. Haven't got it to work yet. If I can get a sensible reliable USB endpoint in code in the STM32 I won't need basic DVD quality ICs I'll just use the STM32s they are cheaper!

There is also synchronous which I believe uses a sync mechanism in the SOF responses to allow the device to push the clock on the host. Again, not got it working 🙂

Anyway, I'm bummed. I killed an STM32F411 connecting a UART to an open drain pin ( found out afterwards) and the PCM2706 dev board I got delivered today is DOA. Port Reset Failed. Inspected in detail and nothing appears wrong... except possibly that hte chip lettering is PAINTED ON. Grrr... Probably a fake or just broken. Tested multiple cables, multiple ports, multiple PCs. It is dead.

I do have the Atmel high end module to play with and the "highish" end BT-I2S cyress module, but my hearts not in it now anymore tonight.
 
I'm going to try and use one of the worst possible case scenarios with a derived clock deliberately out of like 0.5% and work on fixing the issue when it does arrive. That might at least cheer me up. That will be easier with 2xI2S endpoints that using the STM32 USB layer. Because I get full control over the buffer and can see in plain numbers ifs progressing towards a buffer issue and insert or remove a few samples.
 
Yes. It didn't work. The USB frames invariably overurn the buffer because hosts clock is different to the I2S clock.

Other options are Isochronous with feedback to at least get the hosts help in not sending too much/too little.
Of course I meant proper async mode, i.e. either with explicit (feedback-number-based) or implicit (IN-datarate based - not supported by the stock windows UAC2 driver) feedback.