Hello Ivan,
I am confused by the way the TAS2555 is behaving when I send it a finite stream of audio data over I2S. I am hoping you can help me understand what is going on.
The test program streams a table of 192 L/R samples of a 4kHz sine wave of increasing amplitude. After all 192 L/R samples are transferred to the TAS2555, the I2S is turned off. The first sample of the table is a zero value, but after that, the table values immediately begin generate the 4kHz sine wave of increasing magnitude.
I should also mention that I have placed a 100mS delay between the Amp Init() call (ROM MODE 1) and the DMA/I2S init to ensure that the Amp should be ready for input (see code below).
Amp_I2CInit(); //ROM MODE 1
DelayMsWatchdog(100, WDT_MAIN);
DMA_AMP_Init();
Cy_DMA_Channel_Enable(DMA_AMP_HW, DMA_AMP_DW_CHANNEL);
I2S_AMP_Start();
In the scope trace below, the YELLOW TRACE shows the I2S WCLK and the BLUE TRACE shows the TAS2555 audio output.
I have two questions:
1) I would expect to see the amp's audio output respond essentially "in sync" with the I2S input. However, the audio output appears to be significantly delayed (relative to the I2S stream) by about 1mS. Can you explain that delay?
2) After the I2S value stream comes to an end, I would expect to see a DC audio signal because no new I2S values are being transmitted into the amp. Instead, the amp's audio output appears to continue driving a segment of the 4kHz signal forever? Can you explain that?
Thanks,
Rich