How to reduce DC noise

Hello,
I have been building digital to analogue converters using arduino Yun's and more recently other boards such as Teensy 3.1 controlling MCP4728s - 4 channel analogue output.

They work pretty well but i am plagued with noise.

THe arduino Yun pumps out awful noise that might to be related to wireless activity but I can reduce this by ensuring that the arduino is powered separately from all of the other electronics. THis is a pain but it at least gets rid of the really bad noise that appears every few seconds (perhaps when the wireless is doing something).

I am still left with quite bad 100 Hz noise and faster noise at around 100 KHz. The 100 Hz noise seems to be coming from the power supply.

Can anyone suggest how I can reduce this noise. I am currently using a 12 V power supply that is used to provide power to a rail to rail OP amp to increase the gain of the voltages coming from the MCP4728. The power is decoupled with capacitors at the point where the power joins the strip board.

I then have a 5V regulator to provide the voltage for the MCP4728s as I don't want to use the power from the arduinos. I use capacitors here as well (10uF aluminium electrolytics).

I am getting a 50 mV peak to peak 100 Hz noise on the output of my final voltages and because these are being used to control some very sensitive amplifiers, this is really causing me problems.

Can anyone help?
Thanks,
Nick H

Are you using old style analogue power supplies or switching (SMPS)? 100Hz sounds like ripple from rectified 50Hz mains power, and/or EM field from a transformer. 100kHz may be switching frequency from a SMPS?

Two types of noise: radiated and conducted. The former is reduceable by distance, and shielding, the latter by better earthing system.

Electrical interference suppression is worth reading up on, as it can be complex to solve depending on how far you want to go.

Have you tired RC filtering?

A diagram and photo of your project should help us to get you some shortcuts though.....

Using star-grounding? You could be picking up ground noise otherwise.

The noise is AC. You talk of 100Hz and 100kHz, yet call it DC!!

Is the 100 mVpp noise at the output of your op-amp? (I'm not sure, from the wording of your post).

If so, suspect your 12V supply. Op-amps only have a finite power-supply rejection ratio. If there's hum on your 12VDC supply line and if this line goes directly to your op-amp VCC pin, this might be a hum source.

Another suspect would be your op-amp inputs -- they are high impedance, and unless carefully laid out (short leads, etc), you might be picking up 100 cycle hum through capacitive (or even magnetic) coupling into the circuitry at the amp's input.

If you have a good DC bench supply (or even a 9V battery), I'd try swapping out the 12V supply and checking if the noise goes away.

Anyway, there are many possible suspects. Try to work through the possible sources, one by one. For example, if you think it might be power supply related, replace with a cleaner one. If noise might be coupled in capacitively or magnetically, try moving your circuit around your bench, or away from noisy switchers, etc. (even fluorescent lamps!!!).

Good luck!

I can't see how you could get 100mV from the power supply from an opamp, the PSRR's are
more like 100dB than 40dB.

Until we know the layout of the circuit ground its not clear what's going on.

A quick after-thought...

An excellent book on the topic of noise and its mitigation in electronic circuits is:

"Noise Reduction Techniques in Electronic Systems, 2nd ed.", by Henry W. Ott

It's written with the practicing EE in mind, so it might or might not be appropriate. I found it invaluable, myself.

MarkT:
I can't see how you could get 100mV from the power supply from an opamp, the PSRR's are
more like 100dB than 40dB.

Until we know the layout of the circuit ground its not clear what's going on.

Agreed on both. (I should have thought the PSRR through -- 100 mVpp is much too large for that).

Thanks for all of the replies so far.
Let me clarify a few things.
My concern is about noise on what should be a DC output. I am looking for a smooth, DC signal that I can change using a computer (via the arduino or teensy). It does not need to be fast so I can certainly try an RC circuit on the outputs of the gain amplifiers that may filter out some of the noise. I have used this approach before on PWM to DC approaches so can probably have a stab at finding suitable resistors and capacitors to smooth the output. I suspect this will help but it will not really solve the problem at source.

The noise, at least a significant amount of it, comes from the power supply. I am not sure how the supply I want to use for this project works. It is a PDU01-14 power distribution unit originally designed for rack multimedia systems. It is described as a Switchable Isolated DC supply. Zero volts is NOT ground.

When the 12V output is measured on an oscilloscope, there is ~100KHz noise (~10 mV pk-pk)even when the power supply is switched off and unplugged. When it is plugged in and switched on, the amplitude of this noise increases to around 250 mV pk-pk. In addition, there is a large spike at 100Hz with a peak to peak amplitude of ~300mV. This disappears if the power supply is unplugged from the mains.

It seems to me that all of this noise (either radiated or generated from the power supply) will be translated into the electronics and so trying to reduce it would be the most sensible thing to do. I also have a bench top power supply knocking around that is a switched mode supply and this does similar things.

I have read a little about the various approaches suggested but if anyone can suggest values for resistors and capacitors to help get rid of these two main frequencies of noise (100 KHz and 100Hz), that would be very helpful. I am familiar with using capacitors between V+ and 0V at points where power joins a strip board and think that i should use at least one large one and one small one in parallel to help with low and high frequencies, I am not sure about whether a resistor would be helpful (i.e an RC filter) or what values might be appropriate or what effect this might have on power consumption or final power.

Finally (for now I suspect), should I link 0V of the power supply to ground. The power supply has its own ground terminal on the chassis that can be used to ground the rack it is designed to sit in. Currently, the case that holds the electronics is not grounded although I have linked the ground pin of the arduino to the zero volts of the power supply. I am not sure whether the arduino ground is really ground or just zero volts.

Thanks again for your help.
B
NickH

If the power supply is truly switched off, it should not generate any noise. The fact that you still see noise at its output implies, to me, that the noise you are measuring is generated somewhere else and capacitively coupled into your scope probe.

In other words, the point you are attaching it to could be acting as an E-field antenna.

The larger noise you see when the supply is on might be "real" (differential) noise on the supply's output, or it might be an instrumentation artifact. (I'm assuming the supply is a switcher, but you might clarify.)

By instrumentation-artifact, I mean that there might be a ground loop formed by your scope, the supply, and the AC mains, and common-mode switcher noise is being coupled into your scope via this path. This can especially be a problem with some switcher supplies connected to the AC mains.

But this kind of noise might NOT be visible to your circuitry. It would depend greatly, though, on what is attached to your circuitry -- i.e. Is it driving other, grounded, equipment?

If common-mode noise were the issue, some ways around it (when measuring your supply) are to run your scope from batteries (no connection to AC), or measure the supply differentially, using 2scope probes and having the scope subtract one from the other.

Also, try grounding the supply's negative terminal to ground and see what happens.

(My own preference when designing circuits that are noise-sensitive is to power them with a linear supply, which removes the headaches introduced with switching supplies. But switching supplies can be used.)

It really sounds to me like your entire system lacks an earth ground. Actually, I think you are asserting it in reply #7. Without that, all your shielding effectively becomes an antenna and/or a capacitor connected to the mains. It is general practice to do it.

Right... I have some updates and some improvements.

The case that I am using was in fact linked to zero volts because the casing of the Arduino Yun was in contact and this is linked to Arduino Ground. However, the power supply zero volts was isolated and therefore floating. Tying the zero volts of the power supply to ground made an improvement and now presumably ensures that my case is helping to shield nose.

I have star grounding within the enclose. However, the biggest problem now is either the wireless activity from an Arduino Yun or noise from serial port activity using the Teensy. I have been able to get rid of the noise from the Teensy serial port traffic by closing the port after each communication and this gets rid of some nasty noise spikes.

I guess this is being transmitted into the case via the USB cable from the computer.

So things are much improved. If anyone has any other suggestions, I am happy to hear them as getting the noise down further would be helpful.

Thanks,
B
Nick

Yes, please post photographs.

Please find attached some images. The first shows the board inside the enclose and the second is a larger view of the board itself. The enclosure is much larger than necessary for the electronics but that is because I needed to find a 19" enclosure and couldn't seem to find a nice half depth one.

I originally built this with an Arduino Yun so that I could connect wirelessly to control the electronics by computer and with a tablet. Since the Yun introduces a lot of noise, I have added a Teensy to give the option of using this wirelessly.

The power input is +12V and the zero volts is now connected to the enclosure. Since taking this picture, I have moved the ground connection to the Teensy digital ground rather than the analogue ground but have not yet tested what effect this has.

The Arduino Yun is not connected here but has connections to an external aerial and reset button.

B
Nick

Thanks for the pix, Nick.

Some comments...

  1. Do you still have noise with your new ground connections? If so, where and how are you measuring it, and what are its characteristics?

  2. Nice chassis. Is there a cover for it? If not, you might try taping a piece of aluminum foil over the top of it (so that it makes good electrical contact with the chassis metal) and see if it helps reduce the noise, in case you are getting E-field coupling into your analog board's circuitry.

  3. I wonder if noise could be related to your I2C signaling to you analog board? If you stop I2C communications, does the noise change?

  4. I'm assuming that the floating BNCs along the bottom of your photo are outputs driven from your board in the center of the chassis. If they are going to be driving low-impedance loads (i.e. significant current-draw), then to lessen crosstalk between them, you might want to consider bringing each BNC's ground connection back to the analog board, rather than your current method of locally daisy-chaining the BNC grounds and bringing only one common lead back to the analog board.

  5. Where does your external power-supply attach? And how is the Teensy's power routed (I don't see a red wire (which I'm assuming is V+, going to it)? Or is the Teensy powered via USB and the analog board powered from a separate supply?

The latter would not ideal, per my earlier comment regarding gnd loops via the AC mains, but attaching the Teensy gnd to the chassis, rather than just daisy-chaining it to your analog board, might help.

  1. If you are measuring noise with the Teensy's USB attached, unplug the USB cable. Does the noise change?

Best of luck!

A few more thoughts!

  1. If the Teensy is being powered via USB, and the USB is attached to a laptop, measure noise with the laptop attached to its AC power supply. Then disconnect the laptop's AC supply, so that it's running from its internal battery, and see if the noise changes.

  2. Is that a linear voltage regulator in the TO-220 package on your analog board (e.g. LM7805, etc.)? Check to see if there's noise on its input and its output, with your scope-probe ground connected right to its tab. Do you see noise?

  3. A useful trick -- take the scope probe's ground lead and clip it to the probe's tip. You've now formed a little loop antenna. Wave it around your chassis, wiring, and cables. Look for noise, and especially where noise peaks.

  4. And a sanity check -- attach your scope probe's ground to your circuit ground. Then touch your scope probe to this same point, grounding it, too. You should not see any noise. If you do see noise, then most likely you are either picking up magnetic field noise (via the loop antenna you've formed -- see comment #9 above), or you have a common-mode noise loop, probably completed via the scope's connection and your equipment's connection to AC mains.

Thank you jcanderson......
Your suggestions are really helpful. I will give these a go.
The noise is now very much improved. In answer to various questions, the noise can be reduced by either.

  1. Unpugging the arduino yun or teensy.
  2. For the teensy, closing the port after each command.

I do have an LM7805 on the analog board. I am using this because if I try to power the circuit from an arduino Yun 5V output, then the noise is really bad. I decided to run all the analogue circuitry separately from the digital stuff. For this reason, both the teensy and Arduino Yun get their power from the USB connection.

The enclosure has a lid. With everything bolted down, I have an RMS noise of around 1mV which is a great improvement. I will follow up the latest suggestions and see if I can do better.
Thanks to all.
B
Nick