We are facing the following issue with our application board based off ESP32 module. We are using PCM5102 from TI as a DAC running over a I2S interface. The DAC is connected to the TPA3136 amplifier which drives our speaker. Whenever we signal the ESP32 to play a sound, it play the sound with lots of noise and sometimes the noise randomly disappears. I am attaching the schematic of the power, ESP 32 and the codec sections for better understanding.

Power Section enter image description here ESP32 Section enter image description here Codec Section enter image description here

PS: This is the exact same circuit (with all the same components) that we use on one of the previous versions of the same board and we don't face any issues. It is our observation that removing TVS D24 solves the issue. Kindly share your thoughts on this. We appreciate all the help that this community provides!

Regards, Sarth

Update to this issue

Probing the BCLK line using an oscilloscope probe removes any noise whatsoever and adding a 1M resistor from BCLK to GND also resolves the problem.

One weird observation is that when the DAC chip and amplifier chip are heated a bit using a heat gun, the noise suddenly disappears. When the ICs cool off, the crackling sound starts to pop up again.

Any ideas on this weird observations?

  • \$\begingroup\$ Please describe "noise" or record and post it. Probe the I2S and decode it. How is it generated? Bitbang? \$\endgroup\$
    – winny
    Oct 31, 2023 at 13:08
  • \$\begingroup\$ And 'scope across D24. Is it causing the 3.3V to be noisy (oscillate?) \$\endgroup\$
    – rdtsc
    Oct 31, 2023 at 13:14
  • \$\begingroup\$ @winny "Noise" means junk sounds like something is cracking. The noise is completely random and not periodic. I'll try to find a recording and post. \$\endgroup\$
    – Sarth Dave
    Oct 31, 2023 at 13:18
  • \$\begingroup\$ @rdtsc Sure. I'll probe D24 as suggested. In general do you think that the TVS diode might have do something with this? our observation is that removing D24 solves the problem more or less but we are unable to yet understand why and how does D24 cause the power line to be noisy, if it does. \$\endgroup\$
    – Sarth Dave
    Oct 31, 2023 at 13:20
  • \$\begingroup\$ Crackling at random would lead me to focus on the I2S part. How it is generated? \$\endgroup\$
    – winny
    Oct 31, 2023 at 13:32

2 Answers 2


there are a few steps I would go through here:

  1. if you have two boards that have this issue, and you remove D24, does that one NEVER do it, and the other ALWAYS? i.e. is the D24 thing repeatable?

if YES:

  • check the 3V3 VERY carefully, especially look at where it forms the analogue supply for the codec chip. Also look at the audio out VERY carefully for signs of oscillation getting through, perhaps from the analogue supply. Use an analogue scope for preference! it is VERY easy to miss these things on a DSO. The oscillation you are looking for may not be audio band, but it is likely < 1MHz or so.

if NO:

  • it's perhaps not D24. Still do the checks above, but if nothing, look elsewhere. Possibly the I2C data. It could also be some other supply/stability issue. Note that the power amp is class D and these do some magic to get rid of switching frequency. This is all fine when everything else is analogue domain, but if some other component gets some HF content in there, the two can interact and make weird sounds.

I have had the same problem on a design.

It seems that the BCLK is not properly terminated so the signal is bouncing.

I had a proper resistor near the DAC on the BCLK. In my case, 300 ohms worked.

The {eating?} treatment of your DAC might modify the input characteristics and stop the noise.

  • \$\begingroup\$ 300 ohms from BLCK to GND? \$\endgroup\$
    – Sarth Dave
    Feb 27 at 6:06
  • \$\begingroup\$ Yes, try from 50 ohm to 500, in my case a too low resistor cause the dac stop working and a high value does not solve the problem \$\endgroup\$
    – Gotrune
    Feb 28 at 17:24

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.