Crosstalk / distortion / layout issues with NXP TDA8920CTH

Status
This old topic is closed. If you want to reopen this topic, contact a moderator using the "Report Post" button.
I'm working on a powered speaker with an active crossover and 2 TDA8920CTH ICs. The PCB I made works pretty well, but there is some distortion audible when playing certain types of music like piano.

When I drive one channel of the IC directly with a 100hz sine wave I get distortion in the 2nd channel on the same IC, with both differential inputs of the 2nd channel connected to ground. The spectrum of the distortion looks like a comb and shifts upward in frequency as the amplitude of the test tone is increased. The distortion is in the audible spectrum when the amp is putting out ~3-10 VRMS. Above 10VRMS it shifts out of the audible spectrum.

Because the frequency of the distortion is amplitude dependent, the noise sweeps downward in frequency as notes decay, making it more audible. On most types of music I do not notice the distortion.

Some things i've tried that have worked:

-Adding a differential RC lowpass filter (7.8k, 220pf) to the input of the amp reduces the distortion 15db
-Removing the output RC filter and snubber makes the distortion inaudible (while slowly cooking the tweeter).
-Using the inductor only on the output filter sounds fine
-I tried the same test on a tda8922 pcb from ebay and the distortion was present but much less, almost inaudible with test tones.

Some things that did not work:

-Adding another pole to the RC input filter
-Replacing the X7R cap in the output filter with a film cap makes the distortion worse.
-Strapping the groundplane across the bottom of the IC makes the distortion worse.
-Contacting NXP has not yet worked (my request for assistance has been pending for a week and a half)
-Changing the inductor to a 7 amp toroid (from a bourns SRR1210-470M)
-Using two inductors in parallel (with an appropriate change in capacitance)
-Adjusting the Q of the RC filter
-Changing the clock from 333khz to 375khz
-Moving the ground connection of the capacitor of the RC output filter, moving the snubbers around;

Anyway, the layout is below with some markups for clarity. The circuit is essentially the same as the on the datasheet. On the left side is the crossover.

Any and all ideas are welcome, this as been driving me nuts for the last couple weeks.

An externally hosted image should be here but it was not working when we last tested it.
 
Last edited:
There is a lot of people who would love to get rid of that piano fuzz - including me. I have only heard of one cheap chinese board, that did not suffer from this. Also the cross over distortion is a known issue.

I can get it down somewhat, but I can't get rid of it. I have from YJ and Connex. The Connex modules are the best and tolerable, but it's still audible. My advce would be to find another chip - maybe the good old TA2022
 
There is a lot of people who would love to get rid of that piano fuzz - including me. I have only heard of one cheap chinese board, that did not suffer from this. Also the cross over distortion is a known issue.

I can get it down somewhat, but I can't get rid of it. I have from YJ and Connex. The Connex modules are the best and tolerable, but it's still audible. My advce would be to find another chip - maybe the good old TA2022

Thanks for the reply, piano fuzz is a good word for it. I'm not sure I'm ready to try something else at this point, as I've made some progress.

Because I could isolate the amplifier from the rest of my circuitry and produce the offending noise with test tones, I was convinced the layout of the amp was the culprit. It turns out the front end is exacerbating the effect somewhat.

I also had difficulty taking measurements near the inputs because of the heatsink and all the switching noise. I now have made a narrow heatsink so I can probe around with a really short ground wire on the scope.

I've found 2 problems so far:

1. Noise on the clock line was getting in through the crossover and enhancing the fuzz. Moving the clock line rectified that.

2. Crossover components between the last stage of the crossover and the amp (bad decision). The single ended treble signal ran through a voltage divider then to one differential input of the amp. The other input was grounded and I'm guessing an impedance imbalance was making things worse.

With both tweeter inputs connected to ground adding a low pass input filter improved things, but with the crossover attached it made things worse.
 
So I think part of my problem may be impedance matching issues on the differential inputs from adding filter components, possibly making the inputs more susceptible to common mode switching noise or noise from ground. Again, any suggestions are much appreciated. Some configurations I've tried:

The original setup was like this. Piano fuzz was obvious but not overwhelming on actual piano music, with test tones it sounded pretty bad:

An externally hosted image should be here but it was not working when we last tested it.


Then I borrowed a signal generator and drove the bass channel with 100hz sine, and connected treble inputs to ground. Again, audible fuzz, although probably not as loud in retrospect:

An externally hosted image should be here but it was not working when we last tested it.


Adding a 220pf cap across the input reduces the fuzz by 10db:

An externally hosted image should be here but it was not working when we last tested it.


Adding resistors to form a low pass filter (~~70khz) reduces the fuzz another 5db. Oddly the noise started out just as high, but lowered 5db ~1 min after the turning the amp on, so something could be oscillating/heating up. This treble input circuit is the same as on the TDA8922BTH datasheet, a slightly different IC from the same family.

An externally hosted image should be here but it was not working when we last tested it.


Hooked the amp back up to the crossover and the sound was not any better. Probing with the scope revealed an oscillation between the crossover and amp. On every switching transition of the amp there was a brief ~100ghz oscillation for 5-10 cycles, not seen elsewhere in the crossover. amplitude was >100mV. Tried several different opamps, some were a little better, some were much worse.

An externally hosted image should be here but it was not working when we last tested it.


Then I ditched the voltage divider and things got much better. Piano fuzz is still there but you have to listen hard to hear it. A 200hz sine wave still produces obvious harmonics at higher gain, other frequencies less so. Adding/removing the 220pf cap does not seem to change things. ~10mV switching noise spikes can be measured between the treble input and ground with the offending test tone cranked up.

An externally hosted image should be here but it was not working when we last tested it.


Next I want to try turning my low pass bass filter into a differential filter again in an effort to make the woofer input balanced. This configuration oscillates (sine wave, 60 khz) with the random TSH84 opamp thats on the board right now, but is believe its stable with tl074.

An externally hosted image should be here but it was not working when we last tested it.
 
Last edited:
Ex-Moderator
Joined 2005
What type of input coupling caps are you using? Surface mount ceramic caps are pretty poor for this. Ceramics with C0G/NP0 dielectric might be fine but film types would be better.

Are the coupling caps even needed? NXP doesn't give any details about the analog input circuitry, but you might not need them unless the inputs have a DC bias. If you get rid of them you'll need to make sure your preamp/crossover has a very low output offset voltage. The TL074 op amp isn't great in this regard.
 
Could you try to get the output scoped (Using some chained TP to recover most of the sound) and run this through an FFT? This would greatly help to chase the problem down.

Btw. Did you setup the system in "anti-phase"?

Edit: Okay, you did.

From the DS:

The audio inputs are fully differential ensuring a high common mode rejection ratio and maximum flexibility in the application.

Stereo operation: to avoid acoustical phase differences, the inputs should be in antiphase and the speakers should be connected in antiphase. This configuration:
– minimizes power supply peak current
– minimizes supply pumping effects, especially at low audio frequencies

You may also monitor your VDDA/VSSA by a scope to see any artifacts from the output conducting back into the analog supply. Consider to change the RC at the VDDA/VSSA from 10R+220n to 10R+1u+1n (or greater).

If there's some oscillation at the opamps output, put some 50R on the output within the feedback and check again. You may also try some 100k directly at the amp-ICs input.

(Putting 5k in line with the coupling-caps normally isnt a good idea as it rises startup-coupling-caps start time alot and can result in some inbalance due to additional feedback from the opamp.


What type of input coupling caps are you using? Surface mount ceramic caps are pretty poor for this. Ceramics with C0G/NP0 dielectric might be fine but film types would be better.

Never had issues with X7R in the past. (Of course, the bigger the package the bigger the microphonics. We did some measurements in the past to sort out the right caps, Murata X7R did best, noise pickup was like -80-90dB in the test system when stimulated with a 12" bass-chassis and pcb on top [50x50mm 0.8mm FR4]
 
Last edited:
Could you try to get the output scoped (Using some chained TP to recover most of the sound) and run this through an FFT? This would greatly help to chase the problem down.

Thank you for the detailed, thoughtful response.

I'm not sure what "chained TP" is but I have access to a scope with FFT function. If you can describe a setup that will recover more audio that would be very helpful.

When I fft the output of the woofer I only see the test tone with some ripples on it (far left). There is also the 333khz clock (not shown) and a mysterious 4.6khz spike that is visible, but not audible, when the amp is switching. The test tone is 200hz (blue). FFT bandwidth is 20khz with a 10khz center frequency.

An externally hosted image should be here but it was not working when we last tested it.


333khz output of the left bass channel (lower IC on layout), followed by the output between the amp and LC filter. No test tone. Flat spots line up with the switching transition.

An externally hosted image should be here but it was not working when we last tested it.

An externally hosted image should be here but it was not working when we last tested it.


Same for right channel, ripples are probably picked up from the ground loop:

An externally hosted image should be here but it was not working when we last tested it.

An externally hosted image should be here but it was not working when we last tested it.



Btw. Did you setup the system in "anti-phase"?

Edit: Okay, you did.

Yep. I also tried putting two bass channels on one IC and the treble channels on the other IC.

From the DS:

You may also monitor your VDDA/VSSA by a scope to see any artifacts from the output conducting back into the analog supply. Consider to change the RC at the VDDA/VSSA from 10R+220n to 10R+1u+1n (or greater).

I'll check that with the scope tomorrow, excellent idea.

If there's some oscillation at the opamps output, put some 50R on the output within the feedback and check again.

I'll give it a try.

You may also try some 100k directly at the amp-ICs input.

(Putting 5k in line with the coupling-caps normally isnt a good idea as it rises startup-coupling-caps start time alot and can result in some inbalance due to additional feedback from the opamp.

Good to know. I will give the 100k resistors a try.

Never had issues with X7R in the past. (Of course, the bigger the package the bigger the microphonics. We did some measurements in the past to sort out the right caps, Murata X7R did best, noise pickup was like -80-90dB in the test system when stimulated with a 12" bass-chassis and pcb on top [50x50mm 0.8mm FR4]

Interesting that the Murata are better than others. All the caps I'm using are X7R or C0G.
 
What type of input coupling caps are you using? Surface mount ceramic caps are pretty poor for this. Ceramics with C0G/NP0 dielectric might be fine but film types would be better.

Are the coupling caps even needed? NXP doesn't give any details about the analog input circuitry, but you might not need them unless the inputs have a DC bias. If you get rid of them you'll need to make sure your preamp/crossover has a very low output offset voltage. The TL074 op amp isn't great in this regard.

I'm using the lowly X7R.

I can replace the TL074, but I made the dumb mistake of using a TSSOP package, which has poor availability for other ICs. If you can suggest a quad opamp with low offset in tssop-14 I'll give it a whirl.

If I had to do it over again I would use dual soic package in a heartbeat.
 
Hmm, there's some crossoverover distortion at the output waveform. Not sure if from the NXP or your opamp.

The 100k is meant to be connected (signal-to-gnd, parallel to the input) to GND, not in series (like the shown 5k). You may "harden" the inputs by using ~<=1k direct at the inputs (or ferrites). I use them at my TPA3132D2 board to help preventing pickup of mobile phones noise.

Have you considered any phase-change/delay coming from your opamp filters? (Which interferes with the antiphase layout)

A TL074 replacement might be the MAX4478:

MAX4478 SOT23, Low-Noise, Low-Distortion, Wide-Band, Rail-to-Rail Op Amps - Maxim

(But limited to 2.7-5.5V single supply)

I'm not sure what "chained TP"

Oh sorry, i meant LP (low-pass), but have a peek into this:

http://www.ti.com/lit/an/sloa107/sloa107.pdf

Regards,

Christian
 
Hmm, there's some crossoverover distortion at the output waveform. Not sure if from the NXP or your opamp.

I can check.

The 100k is meant to be connected (signal-to-gnd, parallel to the input) to GND, not in series (like the shown 5k). You may "harden" the inputs by using ~<=1k direct at the inputs (or ferrites). I use them at my TPA3132D2 board to help preventing pickup of mobile phones noise.

I have some ferrites I can try. Will place the 100k to ground when I get a chance.

Have you considered any phase-change/delay coming from your opamp filters? (Which interferes with the antiphase layout)

The filter is 3rd order and the phase is very close to 180 degrees out, which does sort of defeat the purpose of the antiphase at the amp IC.

The problem I see is that I'm driving only one channel of each IC with the test tone anyway, so it shouldn't matter what the phase of the other channel is of the same IC is, right? Also, the antiphase is designed to prevent supply pumping, and the bass channels on the separate ICs are in antiphase.

I did try connecting both bass channels to one IC and both treble channels to the other, but there was no difference.



A TL074 replacement might be the MAX4478:

MAX4478 SOT23, Low-Noise, Low-Distortion, Wide-Band, Rail-to-Rail Op Amps - Maxim

(But limited to 2.7-5.5V single supply)

Supplies are +/- 5V, I can find an opamp later....

Oh sorry, i meant LP (low-pass), but have a peek into this:

http://www.ti.com/lit/an/sloa107/sloa107.pdf

Regards,

Christian
 
Last edited:
You may also monitor your VDDA/VSSA by a scope to see any artifacts from the output conducting back into the analog supply. Consider to change the RC at the VDDA/VSSA from 10R+220n to 10R+1u+1n (or greater).

Here's the switching noise measured across the 220n VDDA bypass cap. Looks the same on both ICs:

An externally hosted image should be here but it was not working when we last tested it.


And the switching noise measured across the 220n VSSA bypass cap:

An externally hosted image should be here but it was not working when we last tested it.


Both measured with a grounding clip, of course...

An externally hosted image should be here but it was not working when we last tested it.
 
What is the nominal VDD/VSS/A? May you check the FFT at different signal frequencies?

Ok, the amp is working again. The repair was a comedy of errors (fix one thing damage 2 more).

I only had time for a few measurements, tomorrow I will try to run down the list of things to check.

The nominal VDD is 28.3V and VSS is 28.8V (there is some other stuff running off of the positive rail). I forgot to check VSSA/VDDA.

I had time to take a few more measurements, all are made with the amp switching, no test signal. (I will take more with the test signal in the morning).

FFT of VSSA. 10mhz bandwidth, 10db/div.

An externally hosted image should be here but it was not working when we last tested it.


And FFT of VDDA, 10mhz bandwidth, 10db/div.

An externally hosted image should be here but it was not working when we last tested it.


More VSSA:

An externally hosted image should be here but it was not working when we last tested it.

An externally hosted image should be here but it was not working when we last tested it.


More VDDA:

An externally hosted image should be here but it was not working when we last tested it.

An externally hosted image should be here but it was not working when we last tested it.
 
Please try connecting the inputs in normal polarity instead of anti-phase as suggested by the datasheet and report your results. I found that it resulted in an order of magnitude reduction in distortion at very low levels with the 8950.

I don't think it will help, but it's easy enough to do so I'll give it a shot. I should have time to try it tomorrow, assuming I don't damage anything while I'm probing around.....
 
Hmm, there's some crossoverover distortion at the output waveform. Not sure if from the NXP or your opamp.

The crossover distortion is still there with the inputs shorted, so looks like it's in the amp.

I did notice something interesting: The crossover distortion on the two channels closest to the center of the board looks the same. Must have something to do with the asymmetry of the supply rails.

Inner both look like this:

An externally hosted image should be here but it was not working when we last tested it.


Outer both look like this:

An externally hosted image should be here but it was not working when we last tested it.


An externally hosted image should be here but it was not working when we last tested it.
 
Oh sorry, i meant LP (low-pass), but have a peek into this:

http://www.ti.com/lit/an/sloa107/sloa107.pdf

Ok, with only bypass capacitors between the treble section of the crossover and the amp, and the treble voltage divider moved back into the crossover there is almost no crosstalk. I'm embarrased I tried so many other configurations, but I think part of the problem was the clock line getting into the audio.

Distortion is still very audible from the woofer with test tones. If I eliminate the lowpass filter between the bass section and the amp there is no improvement.

I made a lowpass RLC filter for measurement with stuff laying around to recover more audio: 40R (in series), 150uH and 220n. I calculate 27khz with a Q of 0.65. Adding the inductance from the filter on the board doesn't change the filter much. That knocks the switching noise down to 20mV from 800mv.

When I FFT the output the noise floor is now lower, but I still don't see any harmonics. The 200hz test tone is 60db louder than anything else...

An externally hosted image should be here but it was not working when we last tested it.


Then I tried using a spectrum analyzer on my phone. 200 Hz test tone, 70db at 1 meter or so:

An externally hosted image should be here but it was not working when we last tested it.


Lower the gain a few db and the energy shifts downward. Looks like the frequencies stay the same w/ 200hz spacing:

An externally hosted image should be here but it was not working when we last tested it.


As a reality check, I measured a 200hz test tone from cheap computer speaker. Again, the level was about 70db at the mic:

An externally hosted image should be here but it was not working when we last tested it.


So I don't really understand the discrepancy. Some thoughts that spring to mind:

1. I have no idea how to properly use the FFT function on the scope.
2. I don't understand the limitations if FFT
3. The woofer is somehow generating the harmonics (although the noise sounds electronic, not mechanical)
4. I should light this board on fire and go outside.
 
Last edited:
Status
This old topic is closed. If you want to reopen this topic, contact a moderator using the "Report Post" button.