I am coding a proof of concepts for a future hardware, using the STM32F4 Discovery board. I need to import data from an external hardware using the I2S feature, but am having the following problem.
Can I2S3 be configured as Rx slave, with an external clock ? RM0090 says nothing on the contrary, but looking at the stm32f4xx_rcc.h include file I see this definition, which relates to I2S2, but there is not a similar one for I2S3...
#define RCC_I2S2CLKSource_Ext ((uint8_t)0x01)
I need to use I2S3 to avoid a DMA conflict that I would have should I use I2S2, so I coded this statement :
// Enable the I2Sx/I2Sx_ext clock RCC_I2SCLKConfig(RCC_I2S2CLKSource_Ext)
In other words, I used the RCC_I2S2CLKSource_Ext specification, lacking a similar one for I2S3. Everything works, but there are erratic losses of sync on the data, as if I2S3 actually did not use the external clock as sync source.
Which is in error, the RM0090 manual, or the include file ? Or may be the culprit is on me, who failed to understand how things work ?
TNX