I2S + DMA configuration
I have NUCLEO-F756ZG board with STM32F765ZG and I have hooked up ICS43434 mic into I2S1 bus. Now I have been scratching my head for a day to figure out how to get data out from that puppy. Or actually getting data out is simple, but to make it sane is not. I have configured I2S and DMA like below


Then I allocate some buffers and write DMA callbacks and send the data to freeRTOS task for processing. Now if I play 1kHz sound and dump the raw data from DMA buffers I get something like this
113,58880,0,0,116,43008,0,0,123,4608,0,0,134,42496,0,0If I draw the 113, 166 so every 4th sample to graph it is the sine wave what I am playing. My friend the AI said that the data format is left_high, left_low, right_high, righ_low. That might very well be, but I don't want that. If the mic sends 24 bit of data in 32 bit frames it feels insane that I have to spend 2*32bits of memory for it.
I just can't figure out what am I missing. It does not help HAL_I2S_Receive_DMA is one big red herring, but I believe it probably isn't the problem. I did try to configure DMA to half word in hope to get the 24 bits into 2*16bit, but that didn't fly. I might have missed something in this though.
Any ideas anyone?

