I2S No operation what so ever.
I have 2 I2S ports. I have a masterclock from an external source.
My clock config is set for external 24.576Mhz I2S clock.
I have set up I2S1 in half duplex slave mode for an ADC. It is receiving data in DMA.
I have setup I2S2 in half duplex master mode for a DAC. It does absolutely nothing, except set the registers up exactly as per the reference manual.
I2S is enabled in master. DMA has transfered the first byte to the output DR. Everythng is waiting on TXE to fire and I2S to send the byte, but... it doesn't.
Further, it produces no BCK and hold LRCLK HIGH. Why HIGH? It's setup in standard I2S which expects the left (LOW) channel first. Why is it holding that line high? It should be low.
I have run the logic analyser on it and the ONLY signal I see is the master clock, which is not from the STM32. NONE of the I2S pins move. The only way I can get any of them to even trigger on an edge to hit NRST.
I have had it working in master before, when it was generating the MCK output.
My suspicion is that the configuration of GPIO PA2 as MCLK input is broken and can only be applied to ONE AFR5. Either SPI1 or SPI2. Trying to use it for both fails. I just can't confirm it or fix it. I can only see it Init'ing pin PA2 once. For GPIO_AF5_SPI1. I have tried swapping that to GPIO_AF5_SPI2 but this had no effect.
The I2S interface is, for some reason, not being driven by the external clock.
Note. If I connect another set of jumpers between an ADC and the same I2S pins for the DAC... music comes out. So both ADC and DAC are configured correctly. I2S2 is innert completely non-functional. All the lights on, but nobody is home. Has to be the MCLK.
