AnsweredAssumed Answered

Using single I2S to read from two external stereo ADC ICs (2+2 channels)

Question asked by moshkin.georgy on Jul 4, 2017
Latest reply on Aug 13, 2017 by moshkin.georgy

Hello! Is it possible to use single I2S port to read from two external stereo audio ADC ICS?

I want to obtain 4-channel audio signal without any time offset.

My setup is:

1) STM32F407 x 1pcs

2) PCM1808 24bit ADC 2 channels x 2pcs

My idea is to configure I2S2 as master full-duplex receiver with master clock generation.

Connect all clock signals from mater I2S2 to two slaves PCM1808 in parallel

Then configure I2S2_EXT as I2S_MODE_SLAVE_RX

(by default STM32HAL firmware makes I2S2_EXT =- TX if I2S2 is set to RX)

Is there any problem with this approach?

Reference manual rm0090 and HAL i2s driver source code states that "Both I2Sx and I2Sx_ext can be configured as transmitters or receivers."


Another way is to use two I2S ports, but i am unsure if they will run synchronously. Maybe I can use I2S2 master with clock generation and I2S3 as slave. Then all I2S2 clock signals will be connected to pair of PCM1808 ICs and I2S3 input.

Please tell me which way is better. Currently I prefer first solution, although I did not tested it (using I2S2 receiver with one additional line I2S2_EXT as I2S_MODE_SLAVE_RX).


Thank for your attention.