STM32Cube_FW_F4_V1.13.0 supports I2S Full Duplex with Circular mode using DMA. An application may provide customised versions of the call-backs; HAL_I2S_TxHalfCpltCallback, HAL_I2S_RxHalfCpltCallback, HAL_I2S_TxCpltCallback and HAL_I2S_RxCpltCallback. These callbacks enable the application to transfer data to and from the TX and RX data buffers in an efficient seamless manner without disrupting the transfer of data on the I2S interface. We use it in an audio product with MAX9860 codec and STM32F407 processor.
STM32Cube_FW_F4_V1.15.0 (and V1.16.0) no longer supports I2S Full Duplex with Circular mode using DMA. The code is no longer there. There is no provision for half completion callbacks.
1. So how is one meant to continuously transfer data between an audio codec and STM32F4 processor with full-duplex in a somewhat efficient manner which doesn't hopelessly chew up clock cycles and disrupt the audio?
2. Does this change to HAL indicate some underlying problem with the STM32 F4 processor? Should we be looking at an alternate processor family for audio applications?