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.
Hi Ti Team,
My customer found abnormal sound output from TLV320DAC3101 when changing audio channels. Is there any solution?
Hello , Could you provide more and specific information ? any other information you can provide> What is "an abnormal sound"? do they hear it on the original channel or on the one they change to?
we need more specific information to understand the issue.
Regards,
Arash
Hi Arash,
1. At present, my customer has 3 channels of audio signals input to TLV320DAC3101, WIFI and BLE two channels of audio signals are input from I2S, and AIN1/AIN2 are connected to mobile phones or local music.
2. The two audio signals of WIFI and BLE are input from I2S,There is no problem with this channel. When the signal is switched to AIN1/AIN2,there will be POP sound. Try to switch the Analog output Mute first and then switch AIN1/AIN2 to Analog When the output is turned on, the POP sound still exists when the Analog output is turned on. At the same time, the POP sound will be emitted when the music is played.
3. Turn off Class D Power and then switch AIN1/AIN2 to turn on Class D Power. The POP sound still exists when Class D Power is turned on. At the same time, POP sound will be emitted at the beginning of playing music.
4. The two methods of Analog output Mute and Class D Power Down did not find POP tones in the TI EVM test, but the POP tones can be reproduced 100% on the customer board. Please help to see if there is a problem with the schematic and code
void tlv320dac3101_init(void)//i2s mode { I2C_WriteOneByte(TLV3101_ADDR, 0x00, 0x00); //page0 I2C_WriteOneByte(TLV3101_ADDR, 0x01, 0x01); //Software Reset I2C_WriteOneByte(TLV3101_ADDR, 0x04, 0x03); //Program clock settings��PLL_clkin = MCLK,codec_clkin = PLL_CLK I2C_WriteOneByte(TLV3101_ADDR, 0x05, 0x91); //PLL divider P=1�� PLL multiplier R = 2 I2C_WriteOneByte(TLV3101_ADDR, 0x06, 0x08); //Program clock settings��PLL multiplier J = 8 I2C_WriteOneByte(TLV3101_ADDR, 0x07, 0x00); //PLL D-Value MSB I2C_WriteOneByte(TLV3101_ADDR, 0x08, 0x00); //PLL D-Value LSB I2C_WriteOneByte(TLV3101_ADDR, 0x0B, 0x88); //DAC NDAC divider = 8 I2C_WriteOneByte(TLV3101_ADDR, 0x0C, 0x82); //DAC MDAC divider = 2 I2C_WriteOneByte(TLV3101_ADDR, 0x0D, 0x00); //DOSR = 128, DOSR(9:8) = 0, DOSR(7:0) = 128 I2C_WriteOneByte(TLV3101_ADDR, 0x0D, 0x80); //DOSR = 128, DOSR(9:8) = 0, DOSR(7:0) = 128 I2C_WriteOneByte(TLV3101_ADDR, 0x1B, 0x00); //mode is i2s, wordlength is 16, slave mode I2C_WriteOneByte(TLV3101_ADDR, 0x3C, 0x07); //Select Processing Block PRB_P07 //page8 I2C_WriteOneByte(TLV3101_ADDR, 0x00, 0x08); //page8 I2C_WriteOneByte(TLV3101_ADDR, 0x01, 0x04); //Adaptive filtering enabled in DAC processing block //page0 I2C_WriteOneByte(TLV3101_ADDR, 0x00, 0x00); //page0 I2C_WriteOneByte(TLV3101_ADDR, 0x74, 0x00); // DAC => volume control thru pin disable //page1 I2C_WriteOneByte(TLV3101_ADDR, 0x00, 0x01); //page1 I2C_WriteOneByte(TLV3101_ADDR, 0x20, 0x06); I2C_WriteOneByte(TLV3101_ADDR, 0x26, 0x7f); //mute Left Analog Volume to SPL -9dB I2C_WriteOneByte(TLV3101_ADDR, 0x27, 0x7f); //mute Right Analog Volume to SPR -9dB I2C_WriteOneByte(TLV3101_ADDR, 0x23, 0x44); //LDAC routed to the left-channel mixer amplifier, RDAC routed to right-channel mixer amplifier. I2C_WriteOneByte(TLV3101_ADDR, 0x20, 0xC6); //Power-up Class-D driver I2C_WriteOneByte(TLV3101_ADDR, 0x1F, 0x04); //Program common-mode voltage (defalut = 1.35 V) I2C_WriteOneByte(TLV3101_ADDR, 0x21, 0x4e); //Program headphone-specific depop settings (in case headphone driver is used) De-pop, Power on = 800 ms, Step time = 4 ms I2C_WriteOneByte(TLV3101_ADDR, 0x22, 0x70); //I2C_WriteOneByte(TLV3101_ADDR, 0x23, 0x66); //LDAC routed to the left-channel mixer amplifier��AN1, RDAC routed to right-channel mixer amplifier��AN2. I2C_WriteOneByte(TLV3101_ADDR, 0x24, 0x7f); //Disable HPL output analog volume I2C_WriteOneByte(TLV3101_ADDR, 0x25, 0x7f); //Disable HPR output analog volume I2C_WriteOneByte(TLV3101_ADDR, 0x28, 0x00); //HPL driver is muted. I2C_WriteOneByte(TLV3101_ADDR, 0x29, 0x02); //HPR driver is muted. I2C_WriteOneByte(TLV3101_ADDR, 0x26, 0x7f); //mute Left Analog Volume to SPL -9dB I2C_WriteOneByte(TLV3101_ADDR, 0x27, 0x7f); //mute Right Analog Volume to SPR -9dB I2C_WriteOneByte(TLV3101_ADDR, 0x2A, 0x00); //SPL Driver gain 24dB I2C_WriteOneByte(TLV3101_ADDR, 0x2B, 0x00); //SPR Driver gain 24dB //page0 I2C_WriteOneByte(TLV3101_ADDR, 0x00, 0x00); //page0 I2C_WriteOneByte(TLV3101_ADDR, 0x25, 0x99); //DAC ,class-D driver powered up I2C_WriteOneByte(TLV3101_ADDR, 0x3F, 0xD4); //Powerup DAC left and right channels (soft step enabled) I2C_WriteOneByte(TLV3101_ADDR, 0x41, 0xD4); //DAC Left gain = -22 dB I2C_WriteOneByte(TLV3101_ADDR, 0x42, 0xD4); //DAC Right gain = -22 dB I2C_WriteOneByte(TLV3101_ADDR, 0x40, 0x00); //Unmute DAC left and right channels //page1 I2C_WriteOneByte(TLV3101_ADDR, 0x00, 0x01); //page1 I2C_WriteOneByte(TLV3101_ADDR, 0x26, 0x92); //Left Analog Volume to SPL -9dB I2C_WriteOneByte(TLV3101_ADDR, 0x27, 0x92); //Right Analog Volume to SPR -9dB I2C_WriteOneByte(TLV3101_ADDR, 0x2A, 0x1C); //SPL Driver gain 24dB I2C_WriteOneByte(TLV3101_ADDR, 0x2B, 0x1C); //SPR Driver gain 24dB } void AIN_OPEN(void) { printf("AIN_OPEN OK\n\r"); I2C_WriteOneByte(TLV3101_ADDR, 0x00, 0x01); //page1 I2C_WriteOneByte(TLV3101_ADDR, 0x23, 0x66); } void AIN_CLOSE(void) { printf("AIN_CLOSE OK\n\r"); I2C_WriteOneByte(TLV3101_ADDR, 0x00, 0x01); //page1 I2C_WriteOneByte(TLV3101_ADDR, 0x23, 0x44); } void MUTE(void) { I2C_WriteOneByte(TLV3101_ADDR, 0x00, 0x01); //page1 I2C_WriteOneByte(TLV3101_ADDR, 0x26, 0x7f); //mute Left Analog Volume to SPL -9dB I2C_WriteOneByte(TLV3101_ADDR, 0x27, 0x7f); //mute Right Analog Volume to SPR -9dB I2C_WriteOneByte(TLV3101_ADDR, 0x20, 0x06); printf("MUTE OK\n\r"); } void UNMUTE(void) { printf("UNMUTE OK\n\r"); I2C_WriteOneByte(TLV3101_ADDR, 0x00, 0x01); //page1 I2C_WriteOneByte(TLV3101_ADDR, 0x20, 0xC6); //Power-up Class-D driver I2C_WriteOneByte(TLV3101_ADDR, 0x1F, 0x04); //Program common-mode voltage (defalut = 1.35 V) I2C_WriteOneByte(TLV3101_ADDR, 0x21, 0x4e); //Program headphone-specific depop settings (in case headphone driver is used) De-pop, Power on = 800 ms, Step time = 4 ms I2C_WriteOneByte(TLV3101_ADDR, 0x24, 0x7f); //Disable HPL output analog volume I2C_WriteOneByte(TLV3101_ADDR, 0x25, 0x7f); //Disable HPR output analog volume I2C_WriteOneByte(TLV3101_ADDR, 0x28, 0x00); //HPL driver is muted. I2C_WriteOneByte(TLV3101_ADDR, 0x29, 0x02); //HPR driver is muted. I2C_WriteOneByte(TLV3101_ADDR, 0x26, 0x92); //Left Analog Volume to SPL -9dB I2C_WriteOneByte(TLV3101_ADDR, 0x27, 0x92); //Right Analog Volume to SPR -9dB I2C_WriteOneByte(TLV3101_ADDR, 0x2A, 0x1C); //SPL Driver gain 24dB I2C_WriteOneByte(TLV3101_ADDR, 0x2B, 0x1C); //SPR Driver gain 24dB }
Hi, We're currently going through your description and configuration script, we'll provide further comments today by the end of the day.
Best regards,
-Ivan Salazar
Applications Engineer
Hi, Is my understanding correct, based on bullet #4, that you're not getting the pop on the EVM, but only on custom board?
Can you share some more details on the analog input connection on the schematic? What are the differences compared to the EVM? The schematic shows very little from the audio signal paths.
Does the pop occur when you change change to analog input? Or when powering up the output? I'm not clear if it's always the same or the pop happens at different moments depending on the test. If you can provide a list of the tests you're doing, and when pop is observed, it would be helpful.
However if pop is not observable on the EVM it may be hard to debug on our side.
Best regards.
-Ivan Salazar
Applications Engineer
Hi Ivan,
1,Is my understanding correct, based on bullet #4, that you're not getting the pop on the EVM, but only on custom board?
Yes,POP only on custom board.
2,Can you share some more details on the analog input connection on the schematic? What are the differences compared to the EVM? The schematic shows very little from the audio signal paths.
Please see the attachment for the detailed path
3,Does the pop occur when you change change to analog input? Or when powering up the output? I'm not clear if it's always the same or the pop happens at different moments depending on the test. If you can provide a list of the tests you're doing, and when pop is observed, it would be helpful.
As long as you switch AN1/AN2, there will be POP
Hi, Thanks, I understand pop is present when using AN1/AN2, is it happening when enabling this feature? Or when powering or unmuting the output driver? If I can't reproduce the issue I need as much details as possible to understand what is the behavior.
I'll check the additional information and provide further comments in a couple more days.
Best regards.
-Ivan Salazar
Applications Engineer
Hi, From the additional information from your attached file, it seems there are no coupling capacitors at all between the audio decoder and the analog inputs of TLV320DAC3101. Please place a couple of series capacitors in these lines for AC-coupling, pop may be caused by conflict between the internal bias of both devices.
Best regards,
-Ivan Salazar
Applications Engineer