This post is for custom I2S applications (i.e. not Audio lib based)
I spent a week or so chasing some problems with my application, where the I2S-DMA combo ceased to function when float FFT was in use.
In the end it turned out, that the MCLK chosen to obtain bit clock, was with 96 MHz far too high. My ADC does not need a MCLK feed so I have chosen a convenient MCLK for my bit rate clock. After designing my bit-clock calculation around 48 Mhz the program runs (so far) without obvious I2S-DMA issues. 48 MHz is still about twice the "Up to 25 MHz" note in the K66 datasheet, so one may have to go a little bit slower, if further stability problem occur.
I question remain, why this instability is connected with float FFT. A guess is, that the FPU, which need more power than the integer CPU, generates too much heat for I2S MCLK PLL to function correctly.
I spent a week or so chasing some problems with my application, where the I2S-DMA combo ceased to function when float FFT was in use.
In the end it turned out, that the MCLK chosen to obtain bit clock, was with 96 MHz far too high. My ADC does not need a MCLK feed so I have chosen a convenient MCLK for my bit rate clock. After designing my bit-clock calculation around 48 Mhz the program runs (so far) without obvious I2S-DMA issues. 48 MHz is still about twice the "Up to 25 MHz" note in the K66 datasheet, so one may have to go a little bit slower, if further stability problem occur.
I question remain, why this instability is connected with float FFT. A guess is, that the FPU, which need more power than the integer CPU, generates too much heat for I2S MCLK PLL to function correctly.