This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TAS5782M: Volume control

Part Number: TAS5782M

Hi there!

I would like to find more detailed application information for controling volume on TAS5782 applications. 

So far, I have found that there are two registers controlling the volume: 

1) 0x3D in book 0x7F

2) 0x44 in book 0x8C, page 0x1E

What would be the correct way of using these registers in order to achieve user-control over sound, as well as factory preset for different setups?

So far I am using 0x3D to give user a live control over loudness, and 0x44 as factory preset, however each time I want to change loudness in 0x3D I have to MUTE amplifier trough the hardware MUTE pin, otherwise it does not return i2c acknowledge for command. Is this intended to be so? 

void TAS5782_SetVolume(uint32_t volume, uint8_t addr)
{
	AMP_MUTE_ENABLE;
	//return to page 0
	TAS_tx_buff[0]=0x00;
	TAS_tx_buff[1]=0x00;
	I2C_Transmit_pack(TAS5782_1_I2C_ADDR, TAS_tx_buff, 2, pI2C);
	//select book 0
	TAS_tx_buff[0]=0x7f;
	TAS_tx_buff[1]=0x00;
	I2C_Transmit_pack(TAS5782_1_I2C_ADDR, TAS_tx_buff, 2, pI2C);
	//select register
	TAS_tx_buff[0]=0x3D;
	//transmit 4 bytes:
	TAS_tx_buff[1]=(volume)&0xFF;
	TAS_tx_buff[2]=(volume)&0xFF;

	I2C_Transmit_pack(TAS5782_1_I2C_ADDR, TAS_tx_buff, 3, pI2C);
	AMP_MUTE_DISABLE;
}

Any reccomendations? 

Thanks,

BR,

Tim