Showing results for 
Search instead for 
Did you mean: 

Connecting two I2S data line from an audio codec using only one of the I2C's control clocks



I'm planing to receive audio data from an Audio codec (ak4619). I need to receive signals from 4 microphones and this device permit that through two left/right chanels.

In CubeIDE, I selected a MCU (STM32F446RET) and declared two I2S connections.

The Audio codec I2S IOs are like that:


I since there is 2 I2S data line but only one set of LRCLK, MCLK (clocked by a MCO on the MCU) and SD on the audio codec, can I use only one of the two I2S set of clocks and hope the synchronisation goes well?

Or should I use two separated devices with their own I2S set of signal and clock?

Thank you,


I can only say how I did it for a H723:

there the I2S have no internal sync option, so I need to set:

  • I2S A as master with all clock outputs, and the data input
  • another I2S B as slave, with clock inputs, and data input
  • route all clocks from I2S A to I2S B

Attention! MCO is NOT the I2S MCLK ! (at least for F7 / H7)

That's a little dangerous naming on ST's side.

MCO is mostly a divided CPU clock, whereas I2S's MCLK is derived from the I2S peripheral input clock (might be from yet another input, usually called "I2SCKIN" or so) with the MCKDIV divider.

Check datasheet / RM!