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.

TLV320AIC3204: TLV320AIC3204 interfacing with TPA3113D2PWPR, Audio pop issue

Part Number: TLV320AIC3204

Dear Support Team,

We are interfacing TLV320AIC3204 interfacing with TPA3113D2PWPR in our design and have connected LOL and LOR pins to two TPA3113D2PWPR for stereo confirguration. Attached is the schematic for the same. 

We are facing the issue when we play and stop the audio clip, we see a pop noise on the output of the speaker amplifier which is audible in the speaker. Can you please let us know what is the changes required either on the codec side or on the amplifier side to remove this pop noise from our design. We are working to solve this issue from last one month and have tried following options in the design:

1. Changed the value of C141 to 1uF to remove the hiss noise.

2. Changed the status of the C159 and C160 to Do not populate.

3. Changed the value of R221 and R222 to 0E to see if there is any improvement or not.

4. Changed the bit clock of codec from 48KHz to 44.1KHz.

5. Added a 10K pull down resistor on the C142 (AVDD supply).

6. Isolated the speaker amplifier and observed on the audio codec but the pop noise is still there.

7. Changed the Gain setting from the software and tried but still the pop noise is available.

Attached is the schematic, register dump when the codec is idle and when the playback is done on the codec.

If you have any working design in which TLV320AIC3204 is interfaced with TPA3113D2PWPR then please help to share the same. Also, please let us know if we can modify the software to remove this pop noise.

Regards,

Khemraj

+91-7737690749

register_dump_idle.txt
console:/ # i2cset -f -y 1 0x18 0x00 0x00                                      
console:/ # i2cdump -f -y 1 0x18                                               
No size specified (using byte-data access)
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f    0123456789abcdef
00: 00 00 60 00 03 11 08 07 80 00 00 02 08 00 80 02    ..`.?????..??.??
10: 00 08 02 08 80 01 00 04 00 00 01 00 00 01 04 00    .?????.?..?..??.
20: 00 00 00 00 88 00 11 00 00 00 00 00 00 00 00 00    ....?.?.........
30: 00 00 00 00 00 12 03 02 02 00 00 00 01 01 00 18    .....????...??.?
40: 0c 00 00 00 6f 38 00 00 00 00 00 ee 10 d8 7e e3    ?...o8.....???~?
50: 00 00 88 00 00 00 00 00 7f 00 00 00 00 00 00 00    ..?.....?.......
60: 7f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ?...............
70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
console:/ # 
console:/ # 
console:/ # 
console:/ # i2cset -f -y 1 0x18 0x00 0x01                                      
console:/ # i2cdump -f -y 1 0x18                                               
No size specified (using byte-data access)
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f    0123456789abcdef
00: 01 08 01 00 00 00 00 00 00 00 03 10 00 00 00 00    ???.......??....
10: 40 40 40 40 00 00 00 00 00 00 00 00 00 00 00 00    @@@@............
20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
30: 00 00 00 38 00 00 80 00 00 40 00 80 80 00 03 00    ...8..?..@.??.?.
40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
console:/ # i2cset -f -y 1 0x18 0x00 0x08                                      
console:/ # i2cdump -f -y 1 0x18                                               
No size specified (using byte-data access)
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f    0123456789abcdef
00: 08 00 00 00 00 00 00 00 00 00 00 00 01 17 00 00    ?...........??..
10: 01 17 00 00 7d d3 00 00 7f ff ff 00 00 00 00 00    ??..}?..?.......
20: 00 00 00 00 7f ff ff 00 00 00 00 00 00 00 00 00    ....?...........
30: 00 00 00 00 00 00 00 00 7f ff ff 00 00 00 00 00    ........?.......
40: 00 00 00 00 00 00 00 00 00 00 00 00 7f ff ff 00    ............?...
50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
60: 7f ff ff 00 00 00 00 00 00 00 00 00 00 00 00 00    ?...............
70: 00 00 00 00 7f ff ff 00 00 00 00 00 00 00 00 00    ....?...........
80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
90: 00 00 00 00 00 00 00 00 7f ff ff 00 00 00 00 00    ........?.......
a0: 00 00 00 00 7f ff ff 00 00 00 00 00 00 00 00 00    ....?...........
b0: 00 00 00 00 00 00 00 00 7f ff ff 00 00 00 00 00    ........?.......
c0: 00 00 00 00 00 00 00 00 00 00 00 00 7f ff ff 00    ............?...
d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
e0: 7f ff ff 00 00 00 00 00 00 00 00 00 00 00 00 00    ?...............
f0: 00 00 00 00 7f ff ff 00 00 00 00 00 00 00 00 00    ....?...........
register_dump_playback.txt
console:/ # i2cset -f -y 1 0x18 0x00 0x00                                      
console:/ # i2cdump -f -y 1 0x18                                               
No size specified (using byte-data access)
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f    0123456789abcdef
00: 00 00 60 00 03 91 08 07 80 00 00 82 88 00 80 02    ..`.?????..??.??
10: 00 08 82 88 80 01 00 04 00 00 01 00 00 01 84 00    .?????.?..?..??.
20: 00 00 00 00 88 cc 11 00 00 00 00 00 00 00 00 00    ....???.........
30: 00 00 00 00 00 12 02 02 02 00 00 00 01 01 00 d8    .....????...??.?
40: 00 bd bd 00 6f 38 00 00 00 00 00 ee 10 d8 7e e3    .??.o8.....???~?
50: 00 00 88 00 00 00 00 00 7f 00 00 00 00 00 00 00    ..?.....?.......
60: 7f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ?...............
70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
console:/ # i2cset -f -y 1 0x18 0x00 0x01                                      
console:/ # i2cdump -f -y 1 0x18                                               
No size specified (using byte-data access)
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f    0123456789abcdef
00: 01 08 01 00 00 00 00 00 00 0c 03 10 00 00 08 08    ???......???..??
10: 40 40 18 18 00 00 00 00 00 00 00 00 00 00 00 00    @@??............
20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
30: 00 00 00 38 00 00 80 00 00 40 00 80 80 00 03 30    ...8..?..@.??.?0
40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
130|console:/ # i2cset -f -y 1 0x18 0x00 0x08                                  
console:/ # i2cdump -f -y 1 0x18                                               
No size specified (using byte-data access)
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f    0123456789abcdef
00: 00 00 60 00 03 91 08 07 80 00 00 82 88 00 80 02    ..`.?????..??.??
10: 00 08 82 88 80 01 00 04 00 00 01 00 00 01 84 00    .?????.?..?..??.
20: 00 00 00 00 88 cc 11 00 00 00 00 00 00 00 00 00    ....???.........
30: 00 00 00 00 00 12 02 02 02 00 00 00 01 01 00 d8    .....????...??.?
40: 00 bd bd 00 6f 38 00 00 00 00 00 ee 10 d8 7e e3    .??.o8.....???~?
50: 00 00 88 00 00 00 00 00 7f 00 00 00 00 00 00 00    ..?.....?.......
60: 7f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ?...............
70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................

  • Hi, Khemraj,

    I will take a look to the codec's configuration to see if there is something which can be used to remove pop. However, I would like to know if you have tried isolating the amplifier from the codec and use a different source to identify if the pop issue is actually generated on the codec side.

    The line outputs of the codec does not have pop-fee operation, but the pop from the drivers should not be a huge problem.

    Best Regards,

      -Diego Meléndez López
       Audio Applications Engineer

  • Hello Diego,

    Thanks for your response. We have isolated the audio codec and connected the speaker directly on the Lineout pins but the pop noise is still there. However when we enable the audio playback we are able to see the sudden inrush in the voltage level on the Lineout pin which seems to be causing the pop noise.

    Can you please let us know how we can reduce the inrush into the output pins. Below is the waveform we get in the oscilloscope when we play and stop the file in AC coupling setting.

    Your immediate response on this would be highly appreciated.

    Regards,

    Khemraj

  • Hi, Khemraj,

    Thanks for the additional information. As I mentioned, Line outputs doesn't have a pop-reduction mechanism, as the headphone outputs. In order to minimize the effect of pop on the output of the line outputs of the codec, we recommend to follow a specific register write sequence when powering up the drivers. We recommend to power-up the DACs and Line drivers, the unmute the drivers and finally unmute the DACs. With this, the change from mute to the desired level will haven with a soft-transition, which should minimize the pop effect. What is the sequence you are using right now?. Regarding a system-level solution, we recommend to keep the amplifier connected to the line output muted until the codec line output is fully powered-on. 

    Best Regards,

      -Diego Meléndez López
       Audio Applications Engineer