Skip to main content
Visitor II
February 21, 2024
Solved

IMP34DT05 returns only silence

  • February 21, 2024
  • 1 reply
  • 1737 views

Hi, I am reading from IMP34DT05 (master receive, PDM), and I always receive 0x00 0x7F 0xFF 0xFF ...and 0xFF's, ever after, until reset of SAI (disable-enable). Playing sound into mic has no effect. In debugger, immediately upon SAI enabled, FIFO is full and underrun flag is on, before any data is read. Here is my current ioc config:

deno1_0-1708522103520.png

And register values, just in case (WB55):

deno1_1-1708522425239.png

Mic L/R is on GND. Mclk is 50MHz.

I tried different configs with same result; frame synchro length, 8/16kHz, rising/falling edge.
Where am I wrong?

    This topic has been closed for replies.
    Best answer by deno1

    I solved it already, I had configured PDM filter wrongly and at the same time Cube mx was generating wrong frequency on SAI1_Ck2, it seems it was trying to match PCM frequency rather than PDM frequency. I measured 400 kHz, when it should have been 1MHz.

    Thanks anyway for the reply!

    EDIT: I am now setting MCKDIV register manually, overwriting value generated by Cube MX.

    1 reply

    Technical Moderator
    March 1, 2024

    Hi @deno1 ,

    Welcome to ST Community!

    To help you I need more information about your setup. Are you using MEMSMIC1 or are you generating the fw from CubeMX yourself?

     

    deno1AuthorAnswer
    Visitor II
    March 4, 2024

    I solved it already, I had configured PDM filter wrongly and at the same time Cube mx was generating wrong frequency on SAI1_Ck2, it seems it was trying to match PCM frequency rather than PDM frequency. I measured 400 kHz, when it should have been 1MHz.

    Thanks anyway for the reply!

    EDIT: I am now setting MCKDIV register manually, overwriting value generated by Cube MX.