I developed iMX6Solo board with Wolfson WM8983 audio codec.(connected to SSI I/F).
On a few of the boards, the noise is on the audio output.
I checked it and found the following:
- Sometimes, The TXD data from iMX are not correct.
For example, even if I play stereo audio that have only Left channel data,
the data is on Right timing (TXFS=High). Or the Left data isn't correct.
- I can resolve the noise, if I change the TXC clock from the codec.
TXC frequency = TXFS * 2 * 128 ... noise
TXC frequency = TXFS * 2 * 16 ... no noise
- If I change the TXC/TXFS pin's hysteresis or Pull-up/down setting,
the noise is changed or disappeared.
I think the problem is something to do with the sync of TCX/TXFS and TXD(transmit controller of iMX).
If I use the audio data with WL=16bit / 2ch, I must set TXC frequency to TXFS*2*16?
I've thought it's OK to set it over TXFS*2*16 for the oversampling.
Would you give me some advice for me about this problem?
[My Environment Detail]
iMX6 Solo : I2S Slave Mode
Wolfson WM8983 : I2S Master Mode (connected to SSI I/F)
OS = Windows Embedded Compact7
TXFS Clock = 44.1KHz
TXC Clock = 11.29MHz
Word Length = 16bit / 2ch
The SSI's registers were set according to RM "220.127.116.11 I2S Mode"
SSI Register Values (only related to transfer)
SSI2_SCR = 0x00000153
SSI2_STCR = 0x0000038D
SSI2_STCCR = 0x0000E100
I'm sorry I'm not good at English.