This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

nRFX based PDM to PCM implementation (I2S example)

Hello,

I am currently interfacing my nRF52840 DK with i2S based MP34DT05 sensor. I am using nrfx i2s driver's for interfacing with sensor. I am using master clk of 2MHz, LCLK 16KHZ. 

My sensor output PDM data. In my project I am recording audio samples on left channel, so I am currently getting 2*16bit of left data per 32bits as shown in nrf docs. I have got 16bit recorded samples in buffer, but to how to convert this pdm data in pcm format. 

Normally we need to divide the PDM data with a decimation factor, but in I2S we already are dividing the bit sampling rate with ratio value. So is the output from the I2S itself is decimated PCM ?  

Or can anyone give a example of how to convert the PDM to PCM data. Any sort of help is dually appreciated. 

Parents
No Data
Reply
  • Thanks for the logic analyzer output for reference.

    In terms of electrical setup, wire length could be an issue.

    I am just using small insulated jumper wires for connections.

    In the logic analyzer trace made at the sensor, I also noticed that the two signals seems very similar. It's hard to tell from just this snippet, but could there be a short between the clock and data lines?

    I checked but there is no shorting between CLK and DIN lines. Also my bad that i sent screenshot of many samples, the output on data lines is having nearly (7-14%) duty cycle as compared to CLK 50% duty cycle.

    The logic analyzer output that you attached is far different from mine. My data line give me constant values, while the data lines in your attested pic show a proper PDM signal.

    Can it be a problem with my sensor ? It is outputting at PDM CLK rate but false data.  

Children
Related