Techniques for reducing signal noise for DC/ slow moving signals. - Page 1
Forum section: electronics / beginners

author: warpigs330
author_rank: Contributor
timestamp: March 17, 2021, 09:08:45 pm
content: I have been prototyping a synthesizer module lately that uses a slide potentiomenter into a microcontroller. I noticed that the signal on my first working prototype is a bit less noisy than on my newer version. I was wondering if y'all had any tips on minimizing potentiometer noise/ general ways to reduce noise on signals slower than audio rate.

author: bob91343
author_rank: Super Contributor
timestamp: March 17, 2021, 09:58:47 pm
content: You need to characterize the noise. If you are referring to the noise that appears while the pot is being adjusted, that is inherent. You could select components to find those that generate less noise.If the noise you mention is there all the time, a low pass filter could help, depending on the frequency range of interest. If the corner frequency of said filter is too low, the pot action becomes sluggish, since the output has to pass through the filter.

author: T3sl4co1l
author_rank: Super Contributor
timestamp: March 17, 2021, 10:04:15 pm
content: If it's a CV adjustment, it may help to simply put a bypass cap on the wiper. The most common fault is the slider losing contact with the track, so it goes momentarily high-Z. The cap keeps the voltage floating in place for a bit, rather than tanking to...whatever it's being pulled to by the load.If it's an AC signal, you're pretty much SOL, within whatever bandwidth is required.Also, avoid drawing DC current from pots, they wear especially quickly that way.So, putting both together, best result is buffering the wiper with an op-amp follower. Low input current so the capacitor hardly discharges when floating, and low DC load so it doesn't foul the track.Tim

author: warpigs330
author_rank: Contributor
timestamp: March 18, 2021, 01:08:37 am
content: The noise I am talking about is present at all times. I think a low pass filter is a good idea as I can be pretty certain that the user won't be able to move the slider faster than like 10 hz.Also talking about driving current through a pot, How much current does a microcontroller ADC draw? I have looked at the schematics of many well regarded commercial modules that just output directly to a microcontroller rather than through a buffer.Basically I have it hooked up with 3.3v to one side and the wiper to a teensy adc pin.Is there any best practices routing tracks around these types of signals? My board is two layers, has a series of buttons, one rotary poteniometer, one slide pot, and an i2c dac, which will soon be upgraded to an SPI dac.Thanks for any help you can provide.

author: Manul
author_rank: Super Contributor
timestamp: March 18, 2021, 01:57:09 am
content: ADC input is very high impedance at low frequencies, so the current draw is absolutely negligible, no need for buffer here. At least, not for the current draw reasons. The reason could be to lower the impedance of signal if you need to send it over the PCB.If noise is present at all times, I would look into power supply noise (especially for ADC), PCB routing, coupled noise. Because it is not possible that you measure thermal noise of potentiometer with that ADC. Well, maybe, if you put something like 10M pot. Anyway, pot should not be crazy high value, not so much for thermal noise reasons, but for impedance reasons.If the pot is some distance from MCU, you may consider buffering to lower the impedance, or just make the path shorter. Adding filtering capacitor on the wiper willl also decrease the impedance and coupled noises. In this case it would be comparable to having an op amp buffer. But I think your problem is dominated by ground and power supply noises. It is important to not have ground loops. The ground of pot could be run on separate trace to ADC analog ground. Yet, the main reason could be noisy 3.3V to the pot. So you could try filtering the supply for the pot. So my suggestion is ADC supply and pot supply. Ideally both should be filtered really well.

author: warpigs330
author_rank: Contributor
timestamp: March 18, 2021, 03:38:05 am
content: Thanks a ton for the input. I think it has to do with my ground plane/ track routing. There is one particularly busy area, with some i2c lines going through, right where the GND connections for the slide pot is, and because it's a two layer board and I am somewhat inexperienced the ground pour is a bit of a patchwork. Luckily the track length for the slide pot is really short, as the teensy straddles it.Also the amount of noise I am experiencing is still fairly minimal, just a couple digits in a 10 bit value twitching. I am mainly trying to get an idea of best practices for getting a clean signal from a potentiometer so I can get the most out of the resolution of the adc on the teensy.

author: Berni
author_rank: Super Contributor
timestamp: March 18, 2021, 06:38:06 am
content: Good old trick is to place a 1 to 100nF capacitor as close to the ADC pin and ground as possible.This diverts any noise picked up into ground and provides a nice low impedance source for the ADC. But aren't ADC inputs high impedance anyway? Yes it is high impedance on average, but the ADC still has its internal sample and hold capacitor. When a ADC reading is to be made this capacitor is connected to the analog pin to charge up to the measured voltage, then the input is disconnected and the capacitor connected to the ADC input for conversion to begin. So if you are sampling a large number of inputs at a fast rate having a near by external capacitor helps get a cleaner signal because you can charge up the internal sampling capacitor faster, especially since running the ADC fast gives you less time to wait for this capacitor to fill up.But yeah any near by digital lines can be picked up by the ADC since they couple there signal into the analog trace, so the noise it sees is the actual voltage jumping around at the pin.For ADCs in general its often good practice to apply averaging onto the signal. Often it is possible to run the ADC at a higher sample rate than is needed, so in those cases its easy to take say 16 samples and average them together into a single sample. This cuts down on random noise and even the internal ADC noise. This can often be used to even get some extra bits out of a ADC. Doing a large number of averages can make a 10bit ADC perform as good as a 12 or even 14 bit ADC. This is also easy and fast to do in software. If you take 16 numbers in 10bit and sum them together you get a 14bit number. So if you simply sum 64 of those 10 bit samples together you get one 16bit sample. The lowest 2 or 3 bits are probably going to be garbage but you should get at least 11 or 12 clean stable bits out of it.