This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

I2S 24 bit output problem on CC1310

Other Parts Discussed in Thread: CC1310

I am trying to use the I2S of CC1310 to use a ICS-43432 digital microphone. I would like to store my digitized audio values in a DMA buffer.
The digital microphone output word length is in 24 bits, 2's complements, thus I can only save the output in a int32_t array. I am getting some int32_t values in my array, but it does not seem right to me.

Since the mic output is in 24 bits, I have set the register settings for the I2S module to be of MEM_LEN_24 = 1 and WORD_LEN = 24, and have set the I2S format configuration to be that of I2S I am expecting to see an output of, for instance, 0000 0000 1111 1111 11111 11111 1111 1111 in binary, with the first 8 bits zero.

Is my understanding wrong? Am I not setting any registers correctly?

My BCLK is 3.072MHz, and WCLK is 48kHz. The digital mic requires 64BCLK periods in a WCLK period.