1
\$\begingroup\$

I have this circuit connected to an Arduino DUE.

MY_CIRCUIT

It is an audio application and it works, but I have a ton of noise in my project. I initially thought it was quantization noise because the ADCs are 12 bit.

After consulting forums, I was told it was probably due to lack of decoupling.

So I searched online, and while I did understand a lot of theoretical stuff, I have no practical clue as to how to decouple this circuit. What type of capacitors to place, where and what value should they have...?

My design has 3 external ICs:

  • TL072 (x2) These are the operation amplifiers. Each chip contains two op-amps, so for the 4 op-amps you see in the circuit, there are two chips.

  • TC1044 Charge pump DC-DC voltage converter, to generate the -5V rail.

Here are links to the datasheets: TL072 : http://www.ti.com/lit/ds/symlink/tl074b.pdf TC1044: http://ww1.microchip.com/downloads/en/DeviceDoc/21348a.pdf

\$\endgroup\$
10
  • \$\begingroup\$ (a) It may help readers if you can add links to your IC's datasheets (several different manufacturers make TL072 devices - I don't know which one you used, so I couldn't be sure to add the correct datasheet for you; and I can only find a TC1044S IC, so I don't know if that is what you mean by a TC1044). (b) Do you have an oscilloscope? (c) Is that schematic diagram accurate i.e. you have no decoupling capacitors anywhere? \$\endgroup\$
    – SamGibson
    Commented Nov 6, 2017 at 14:11
  • \$\begingroup\$ What type of capacitors to place, where and what value should they have...? Start with a 100 nF ceramic capacitor between the supply pin of each chip. Also add 100 nF between each supply (+5 V, - 5 V) and ground. Add a 10 uF electrolytic cap between 5 V and ground near the TC1044. If you're designing a PCB, just add places to add a cap on many places, you might not need to place all of them but it is convenient to have the option. \$\endgroup\$ Commented Nov 6, 2017 at 15:42
  • 1
    \$\begingroup\$ The TL072 might not be the best choice when using a +5/-5 V supply. Note how in the datasheet all parameters are for a +15/-15V supply, that's a 3x higher voltage! \$\endgroup\$ Commented Nov 6, 2017 at 15:46
  • \$\begingroup\$ Charge pump will generate fast edges. You do need to add decoupling caps, but layout is important too, especially regarding ground. Can you show a PCB layout? \$\endgroup\$
    – bobflux
    Commented Nov 6, 2017 at 16:17
  • \$\begingroup\$ @SamGibson a) I added the datasheets to the question b)no c) it is accurate. \$\endgroup\$ Commented Nov 7, 2017 at 15:16

2 Answers 2

3
\$\begingroup\$

With decoupling capacitors, you should always try and place them as close to the IC as possible. The majority of the time, datasheets will tell you recommended decoupling capacitors to use, and it is a good idea to follow that, and increase if needed. The TL072 datasheet (page 32) states to use 0.1uF caps (100nF) close to the power supply pins.

As for your charge pump IC, these are always going to have noise on them, due to the operation of the IC. The 10uF capacitor on the output should be placed as close as possible to the IC, and you can also add a 100nF cap in parallel if you want, to see if that has any help.

If this doesn't solve your issue, then use an oscilloscope to try and pinpoint any excess noise, and see if you can find where it's coming from.

\$\endgroup\$
14
  • 2
    \$\begingroup\$ If you don't have an oscilloscope you could also try to short the signal to ground at various points in the circuit in order to determine where the noise originates from. \$\endgroup\$ Commented Nov 6, 2017 at 15:37
  • \$\begingroup\$ Using info form MCG and Bimprelrekkie (tahn you very much), i hit a wall. What is the difference between 100 nf ceramic cap between supply pin of each chip and 100 nf between each supply (+5V, -5V) and GND? Arent these two basically the same? \$\endgroup\$ Commented Nov 7, 2017 at 15:50
  • 1
    \$\begingroup\$ By fitting a capacitor close to the IC power, you ensure that the IC is decoupled properly. Adding extra capacitors from +5V to GND and -5V to GND will help a little bit more in ensuring those 2 supply lines are as clean as they can be. And you will need to add a decoupling cap between the power (V+ and V-) pins of each IC, not the inputs \$\endgroup\$
    – MCG
    Commented Nov 7, 2017 at 16:00
  • 1
    \$\begingroup\$ It's those 10uF electolyric ones you need to make sure are the right way round as they are polarised caps. It should all be in the datasheet \$\endgroup\$
    – MCG
    Commented Nov 7, 2017 at 18:50
  • 1
    \$\begingroup\$ @user1584421 Yes I understand what he writes and agree with it. He goes a bit further than I did in my comment. But your first step should be what I proposed, add supply decoupling. peufeu explains how that works and how the ESR (series resistance) of the capacitors used for the decoupling matter. \$\endgroup\$ Commented Nov 10, 2017 at 15:16
3
\$\begingroup\$

After looking at your layout:

enter image description here

You have a charge pump IC. This will draw pulses of current from its input which is the +5V rail. This is inadequately decoupled, as it would need a much larger cap like this one. 100nF is not enough, so your +5V rail will be noisy. A filter on the input of the charge pump could also help to avoid polluting the +5V rail.

Next, these current pulses are transferred to the -5V rail. If your 10µF cap is a standard 10µF general purpose aluminium cap then it will have several ohms ESR, which makes it useless at filtering such noise. Also the 100nF are thru-hole and film, again useless because the inductance is very high. A 1µF SMD X7R ceramic capacitor would offer a much better filtering (ESL about 1nH if properly mounted versus 4-6 nH for the 5mm pin pitch film cap, plus trace length).

The 470µF cap I linked above has an ESR of about 0.1 ohm and excellent HF performance (for an electrolytic) and it works wonderfully with a 1µF SMD ceramic cap. Plus they're cheap and last forever.

Thus, I would do this:

Between the two opamps, place one alu cap per rail (+5V and -5V). These alu caps don't need to be low ESR, get the most µF that will fit with a 2.5mm pin spacing. Extra 100nF caps can be added but for a slow opamp like TL072, not necessary. If you use a faster opamp of the rail to rail kind due to your 5V being too low for TL072, then add 1µF SMD ceramic caps, you can spare the extra cent or two versus 100nF right?

Then I would put a filter at the input and the output of the charge pump. Try this ferrite bead for example. Give the charge pump local caps at the input and the output (the Panasonic one I linked + 1µF MLCC).

Now you have a problem with the ground layout of your charge pump too. If you look closely you will notice that the input and output cap ground pins are not connected together closely with the chip's GND pin, which means the current pulses will travel the long way via the circuit ground pour. And it is very close to the input connector, so you will have ground noise injected. So, give the charge pump its local ground island, and connect it to main ground at one point...

EDIT

Decoupling audio opamps:

It's quite easy. We're not talking about high-speed chips here, we got say 10-30 MHz GBW parts like yours, NE5532, stuff like that. These are perfectly happy with a supply impedance from zero to say "a few" resistive ohms. What they don't like is high inductance in the supply, ie long traces from the supply pins to the capacitor.

If you read a "general purpose" capacitor datasheet you will notice a parameter named "tan delta" and you get:

\$ ESR = \frac{ tan \delta }{ 2 \pi f C } \$

Usually \$ tan \delta \$ is given for 120Hz so set f=120Hz, for a standard general purpose cap it'll be between 0.2 and 0.3. C is the capacitance, so a quick calculation gives an ESR of more than 20 ohms for a 10µF capacitor... this makes the capacitor quite useless. Always keep in mind when you're buying a cap, they give you a resistor in series for free!

So, pick an electrolytic capacitor with the highest amount of µF that will fit in a convenient package like 6mm diameter and 2.5mm pin spacing. This would seem to be 470µF. So you get an ESR of 0.5-1 ohm which is fine. The amount of capacitance is way over the top but who cares, if this is a personal project you're not trying to save a few cents. You get 10 of these for 1.5€. You can add 100nF SMD ceramic in parallel but for slow opamps like TL072 it's optional.

If you insist on a 10µF cap you may even have trouble finding one unless it's a 50V or more cap, because no-one bothers making 10µF 10V caps anymore, they would cost the same as 100µF to make...

If you want longer life in a hot place use a 105°C one (for example the FC or FR series I linked). These will have lower ESR though, so if you insist on having a 100nF ceramic cap in parallel, in order not to make an resonant LC circuit which may not react well to your charge pump HF noise you must not select a cap with too low ESR! So in Panasonic FC series I'd pick the 100µF 10V which is specced at 0.8 ohm.

Note: audiophiles say FC caps sound like crap. The gist of that is: don't put a low-ESR cap in parallel with ceramic or film caps unless doing the math, it will have an impedance peak due to LC resonance. Good old plain cheap caps work fine. Don't put a $2 cap on your $0.5 opamp ;)

A)What do you mean between the two opamps?

Between the two chips, this will simplify the routing of power traces. You're probably going to have to redo your board due to the placement of the noisy charge pump near the most sensitive spot (ie, the input signals)...

"So, give the charge pump its local ground island, and connect it to main ground at one point..." What do you mean with this?

schematic

simulate this circuit – Schematic created using CircuitLab

Here's a quick explanation. The block at the right is your charge pump, it will send pulsed currents into the ground (labeled G) and its own decouping caps (the 4 caps at the right).

This means node "G" will be noisy. Your layout connects this to the input ground, which injects the noise into the input signal.

What I'm proposing is: add ferrite beads in the power input and output (or small inductors) to increase HF impedance and make sure the current pulses stay inside the local ground ("G"). The current drawn from the main caps (which are the decoupling caps of your opamps) should now be a lot smoother.

And the only ground which you should connect to your signal ground is the one on the left, not the "G" node which is noisy.

EDIT 2

OK, I had missed the fact that this is an arduino shield: this introduces other problems, as we have to be careful about the noise generated by the arduino. Also I think this needs a design review...

TL072 is not specified for +/- 5V, its outputs won't go to the rail, more like +/-2V. If this is a problem, you can use a rail-to-tail output opamp, or higher supplies.

3V3 from arduino will be noisy, although your RC filter (R19-R20-C10) should mitigate the noise on the 1V6 line. C18 should be low-ESR for best filtering (I like Panasonic FR).

Note that the input stage could be done without the negative supply (which would simplify things) if you used a rail to rail input/output opamp instead of TL072.

The output stage could also be done without a negative supply: connect R14 to GND via a capacitor (like C3) and opamp U2A should bias to 1.6V which is the average of DAC0 and DAC1. Then you can remove C11, wire the next opamp as a follower, and you get rid of the negative supply.

(This is in case you decide to redo the board, of course).

Now, on your current board: where does the noise come from?

If the charge pump IC is socketed, replace it with a 4.5V battery (3AA in series) which will give close to 5V if the batteries are fresh. This will give you clean -5V. Is the noise gone? If yes, you have the cause.

Remove C11. Now the output will ignore DAC output. Noise gone? Then it comes from the arduino, DAC or ADC who knows.

Put C11 back in, make sure your code always outputs 0 to the DACs, is the noise still there?

I went for the charge pump because I hadn't noticed the arduino (also your charge pump layout and decoupling is bad) but the noise can also come from the arduino... Anyway, you get the idea: divide and conquer!

Find out where it comes from. No sense in redoing the board or messing with the decoupling if the noise comes from the arduino...

--

If you redo the board: when laying out opamps the annoying bit is always how to route the supplies, so the easiest way is to do it like this:

enter image description here

When the ICs are placed in a line, both supplies run under them, with the decoupling caps at the end. This allows connecting the two GND pins of the two decoupling caps at the same spot. Boxes labeled ABCD are the feedback components for each opamp. You kinda sorta did it like that but one of your opamps is rotated 180° which means the supplies cross and then your layout is more complicated. It's easier to place them in the same orientation and route the supplies first, before routing the signals. Since you use through-hole parts, you can use use your resistors and caps as jumpers to jump over the supply traces.

\$\endgroup\$
31
  • \$\begingroup\$ I didn't post up till now because i am trying to make sense from what you said. This is too advanced for me and so i am having trouble understanding this. First of all, the charge pump IC is decouled by a 10 μf cap, and NOT 100nf. Then 100 nf is placed in parallel with this one but it's not as important (from the previous posters advice). Now, on to your practical recommendations: A)What do you mean between the two opamps? Each TL072 contains two opamps, so what exactly do you mean between the two opamps? The two capacitor pins have to be on what pins on the IC? \$\endgroup\$ Commented Nov 8, 2017 at 19:14
  • \$\begingroup\$ ALso, you said to use an aluminium opamps. What is the capacitance i should pick? Should this cap be SMD? B)A filter on the input and on the output of the charge pump. OK, these are the V+ and Vout pins on the IC (if you take a look at the picture). So one pin of the cap joins the Vout pin for example... The other pin gooes to where? GND? Then you say to use two caps? (The Panasonic one I linked + 1µF MLCC). C)"So, give the charge pump its local ground island, and connect it to main ground at one point..." What do you mean with this? \$\endgroup\$ Commented Nov 8, 2017 at 19:14
  • \$\begingroup\$ I've added more details... \$\endgroup\$
    – bobflux
    Commented Nov 9, 2017 at 11:31
  • 1
    \$\begingroup\$ I'm stumped too, this is hard to do without having the board! Are you using the "double span" trick you linked from electrosmash? This one sounds suspicious, it would produce glitches when the waveform changes sign... Can you record the noise with your computer and upload it as a wav file somewhere? Try to use the highest sample rate your computer will allow for recording, and use a lossless format. If you have an oscilloscope, you can also post traces of the noise. The way it sounds and looks may give clues to where it comes from. \$\endgroup\$
    – bobflux
    Commented Nov 11, 2017 at 11:34
  • 1
    \$\begingroup\$ Well... first you need to check if the noise comes from the charge pump, this is why I suggested replacing it with batteries or a -5V bench supply, for testing. You can connect the -5V supply (with correct polarity!!) on the PCB after removing the charge pump IC. ) Then check if noise comes from the micro (most likely the ADC). If it comes from the micro, then you don't need to redo your board, rather you need a different microcontroller board! So there are lots of unknowns here, which must be cleared up before talking about decoupling and caps... \$\endgroup\$
    – bobflux
    Commented Nov 15, 2017 at 19:09

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.