According to this, I can capture 16K 16bit mono data. But the data is incorrect like this, “16bit-valid-data, 16bit-0xFFFFF, 16bit-valid-data, 16bit-0xFFFFF, …”.
Measured i2s ws(word select) clock and data, the data(from codec) appears in the left channel of ws, and no data in the right channel of ws. It means the codec sends the correct data.
If I try to force the codec to send two channels data(both left and right channel of ws have data), then the captured data becomes “16bit-valid-data, 16bit-valid-data, 16bit-valid-data, 16bit-valid-data, …”. But the sound is distorted.
I guess in mono capturing, hisilicon captures first sample from I2S-L and captures the second sample from I2S-R and captures the third sample from I2S-L and captures the fourth sample from I2S-R…
Did you meet this before? And how to fix it?