2013-11-22 02:57 AM
The stm32 chip has a error for I2S in slave mode (stm32f40x Errata sheet 2.4.1).
2.4.1 In I2S slave mode, WS level must be set by the external master when enabling the I2S Description In slave mode, the WS signal level is used only to start the communication. If the I2S (in slave mode) is enabled while the master is already sending the clock and the WS signal level is low (for I2S protocol) or is high (for the LSB or MSB-justified mode), the slave starts communicating data immediately. In this case, the master and slave will be desynchronized throughout the whole communication. Workaround The I2S peripheral must be enabled when the external master sets the WS line at: High level when the I2S protocol is selected/public/STe2ecommunities/mcu/Lists/cortex_mx_stm32/Attachments/35638/I2STiming.png
By the I2S format , I can see it's very easy: 1.SCLK is the bit clock. 2.WS is frame clock, low to start, left channel first and turn it high to right channel. 3.SD is the data stream, start by WS low delay 1 bit. ----------------------------------------------------------------- The errata sheet given workaround is too simple, hasdifficult
to understand
, using I2S slave mode what's its Timing? Has anyone can give me moredetails
. Thanks for your help.