Using the PSoC6 PDM to PCM converter to convert data input from two digital MEMS microphones in PDM format to 16 bit PCM. The PDM clock is determined by dividing a high frequency clock (16307.692kHz) by 8 = 2038.46kHz, which is further divided by 64 to determine the PCM sampling rate = 31.85kHz. This PCM data is then downsampled by a factor of 4, and written to the I2S TX_FIFO where 16 bit words are output at a frame rate of 7.963kHz. More specifically, two separate DMA transfers are used to transfer data output by the PDM to PCM converter to an audio buffer, and from the audio buffer to the I2S TX_FIFO. When I listen to the I2S audio output, it is as expected for the first 1-2 minutes after program execution, but then I hear static, indicating that data is being read from the audio buffer faster than it is being written to. This problem does not occur if there is no downsampling and the same value is used for the PCM sampling rate and I2S frame rate. Any suggestions on how to ensure correct synchronization of the PDM to PCM converted data and I2S audio output when the data is downsampled first?
matlab pdm转pcm_Solved: PDM to PCM conversion and I2S audio output - Cypress Developer Community
最新推荐文章于 2023-08-21 11:11:23 发布