Showing results for 
Search instead for 
Did you mean: 

SAI peripheral: separate kernel clocks for Block A and Block B?


I am working on a project based on the STM32WB55VG. I am trying to use SAI Block A as a PDM interface to receive data from two digital microphones. I would also like to use SAI Block B as an I2S interface to output audio data to an amplifier.

In RM0434 Figure 376, the SAI functional diagram shows two separate kernel clocks for SAI Block A and SAI Block B:


However, looking at the clock tree in Figure 15, it appears that there is just one single kernel clock connected to the SAI peripheral:

0693W00000AOQoeQAH.pngI would like to use two separate kernel clocks so I can support two different audio frequencies for the input and output audio paths. How do I access the separate sai_a_ker_ck and sai_b_ker_ck?


You most probably can't.

The SAI diagram is drawn from the perspective of the module designer, as a separate block, which then can be integrated into the chip. And then, when the chip was actually integrated, those two clocks got connected together and connected to that single output from the RCC module.

The module interconnects description is severely lacking in the STM32 documentation, the Interconnection chapter -if it exists at all - is poorly constructed and missing many vital details, leaving the user with the only option, to guess like this.