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.

PCM9211: How should I treat the 24bit PCM data I'm getting from the PCM9211?

Part Number: PCM9211

Hi,

I'm currently getting 24bit PCM data over an I2S interface from my PCM9211. What data type should I treat this data as (int, uint32_t, float)? I would ultimately like to transform the data into floating point format to run through the CMSIS-DSP real FFT function.

Thanks!

  • Hi Jackson,
    As you may already know, I2S is 2-channel stereo audio streams. The left or right channel audio data is defined by the state of the LRCK signal. The LRCK is the frame sync signal and defines the sample frequency for the data. I2S can accommodate any data size usually from 8 to 32 bits for each channel with the most significant bit (MSB) first. PCM9211 allows you to configure the format for all the blocks (DIR, DIT, ADC etc.). For ex: DIR is configured to output default 24-bit MSB first, I2S format (Reg 2Fh, RXFMT[2:0]).

    We typically support this device from internal configuration and routing and do not have much working knowledge of developing drivers/code base etc. But having said that, I think you can use uint32_t as you will get 32-bits per channel but depending on the configuration of the device, you will have to account for offset/padding in order to process the actual data bits.

    Thanks & best regards,
    Ravi