What are frames and slots when reading from a PDM microhpone with SAI?
I am trying to configure a single microphone with a pulse-density modulation (PDM) output on my microcontroller (STM32U575ZIT). It's a CMM-4030DT-261280-TR MEMS microphone.
But I can't seem to figure out the basics. The SAI settings mention "Frame Length", "Data Size" and "Slot Size". What even are slots and frames in this context?
I think I understand PDM and it makes sense to define a data size: how many bits should be counted together to form a single data point. The other notions however confuse me.
Attached is my SAI config from CubeMX.

I logged the clock and data using a logic analyzer some testing code on the MCU hoping to figure this out. The code:
HAL_SAI_Init(&hsai_BlockA1);
std::array<uint8_t, 8> data;
data.fill(0);
auto ok = HAL_SAI_Receive(&hsai_BlockA1, data.data(), data.size(), 100);
HAL_SAI_DeInit(&hsai_BlockA1);The analyzer output and the content of data after this block:

For one I am surprised to see 37 rising edges, instead of 8 * 8 = 64. How where these bytes composed?



