This is a new design prototype for a Bluetooth Speaker project. I'm driving this Amp from a TLV320 that is configured for 16 bit I2S output and the project is a respin to introduce the TAS5755M as a replacement for an Analog Devices Amp and it worked before so I'm pretty confident that the TLV320 is set up correctly. I can see 16 bit stereo I2S data going into the TAS5755M. I followed all the setup procedure for the Amp and can read the registers that I wrote to to confirm that they are set to what I requested. I own the TAS5755MEVM setup too. After advice on this forum and a test using the TAS5755MEVM boards, I fed the I2S Sclk signal into MClk and Sclk; LRClk and SDin are fed by their own signals. The register setup for the TAS5755M is as follows...
void setupTAS5755M(void) { // See notes on this at p61 of TAS5755M.pdf DS VbattSwEn_Write(0); // turn off +12V switched UART_UartPutString("Setting up TAS5755.. "); nPDN_Write(1); // disable PwrDowN nReset_Write(0); // enable Reset CyDelayUs(120); // info says wait at least 100 uS nReset_Write(1); // disable Reset CyDelay(15); // info says wait at least 13.5 mS VbattSwEn_Write(1); // turn on +12V switched I2C_Write1(TAS5755_ADDR, trimOscillator, 0x00); // perform Oscillator Trim CyDelay(52); // info says wait at least 50 mS I2C_Write1(TAS5755_ADDR, SerDataIF, 0x03); // I2S 16 bit I2C_Write1(TAS5755_ADDR, Sys_Ctrl2, 0x42); // Exit Shutdown procedure (p62 in DS) CyDelay(240); // info says could take up to 240 mS I2C_Write1(TAS5755_ADDR, Master_Vol, 0x80); // Set Mast Vol to sensible level I2C_Write2(TAS5755_ADDR, Chan_1_Vol, 0x08, 0x08); // Set L+R Vol to +20dB (2 bytes so it gets Left + Right) I2C_Write1(TAS5755_ADDR, Soft_Mute, 0x00); // unmute }
After I power up and give an input signal, I have I2C volume change commands that execute without (I2C) errors as follows...
I2C_Write1(TAS5755_ADDR, Master_Vol, MastVolVal); // write to master volume value register
Where MastVolVal is as low as 0x10 and Master_Vol is set to 0x07
I thought it may be because the TAS5755M defaults to 24 Bit I2S so I added the line that sets SerDataIF (Addr 0x04) to 0x03.
An I2C read back of the registers starting at 0x00 is...
0x6C 0x00 0x00 0xA0 0x03 0x42 0x00 0x7B 0x08 0x08
When the Amp is in a state that I think it should be producing sound.
Any ideas?