Page 1 of 1

How to add LRCLK high width in TDM, but not shift data timing

Posted: Mon Aug 13, 2018 9:14 am
by susanyin0501
Dear all.

In our project, we need LRCLK high width 32BCLK, i fix the following code in deliver( ) of audio.xc,

LRCLK width changed to 32BCLKs width, but the stream data shift 32BCLKs too, please refer to attached file.

i'd like to just change LRCLK width, not shift data timing, on other words, there is data during LRCLK high,

How to do it? please help us, thanks!

#ifndef CODEC_MASTER
#ifdef I2S_MODE_TDM
if(frameCount == (I2S_CHANS_PER_FRAME-2))
p_lrclk <: 0xFFFFFFFF;
// p_lrclk <: 0x80000000;
else
p_lrclk <: 0x00000000;
#else
p_lrclk <: 0x7FFFFFFF;
#endif
#endif

index = 0;
#pragma xta endpoint "i2s_output_r"
#if (I2S_CHANS_DAC != 0) && (NUM_USB_CHAN_OUT != 0)
/* Output "odd" channel to DAC (i.e. right) */
#pragma loop unroll
for(int i = 1; i < I2S_CHANS_DAC; i+=I2S_CHANS_PER_FRAME)
{
p_i2s_dac[index++] <: bitrev(samplesOut[frameCount + i]);
}
#endif

#ifndef CODEC_MASTER
doI2SClocks(divide);
#endif