I have a MEMS microphone (IM72D128V01, using this eval kit) with PDM output connected to a STM32U5 NUCLEO board.
(Background: it's connected to the ADF/Audo Digital Filter peripheral which I have configured to provide a 5th order CIC filter with a 32x decimation factor. ADF clocking is configured to output a 3,072,000Hz data clock to the MEMS sensor)
Every time I start my STM32 program I have to physically power cycle the MEMS IC or else I get a DC bias in the data register - the most significant byte of the 24bits in the data register (which includes the sign bit) is constantly 0x0 meaning the integer sample values are all positive.
As soon as I power cycle the MEMS IC I immediately start getting a mix of positive and negative integer sample values as I would expect. This persists until I terminate and relaunch in CubeIDE.
Why might this be? Is it common to need to implement switched power to a PDM MEMS IC to address this in a production design, or am I likely doing something wrong?