Pages: [1]   Go Down
Author Topic: Why does ADC noise increase when I add a cap?  (Read 3109 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 5
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hi All

I wrote a little sketch to characteize the ADC on my Nano 3.1 and got lots of data similar to:
Code:
  adcsra=11000111    dT1=112  min=529  avg=532  max=534  var=2  bins=[24 35 65 66* 47 19 ]
  adcsra=11000110    dT1=59   min=529  avg=532  max=535  var=2  bins=[15 35 68 71* 42 24 1 ]
  adcsra=11000101    dT1=32   min=527  avg=532  max=536  var=2  bins=[1 1 18 35 81 59* 28 30 2 1 ]
256 samples read as fast as possible with a shorter integration time each cycle.  "bins" is a pseudo histogram.

Overall pretty cool.  Not much hit from a 32 usec integration time vs 112 usec.

This is all on a solderless breadboard with long wires etc. so I added a 1 uF cap between the IO pin and ground and got:
Code:
  adcsra=11000111    dT1=112  min=521  avg=532  max=543  var=75  bins=[1 31 44 30 13 5 0 0 0 0 0 0* 1 1 0 1 1 4 17 41 38 20 8 ]
  adcsra=11000110    dT1=59   min=521  avg=532  max=543  var=75  bins=[7 22 46 36 14 4 1 0 0 0 0 0* 0 0 0 0 1 4 15 44 37 23 2 ]
  adcsra=11000101    dT1=32   min=521  avg=532  max=544  var=76  bins=[14 21 40 40 9 1 0 0 0 0 0 0* 0 1 1 1 1 3 14 57 26 24 2 1 ]
Yuch! 

What happened?

Thanks
Doug

Logged

texas
Offline Offline
God Member
*****
Karma: 27
Posts: 862
old, but not dead
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

What do you have connected to the pin that you are measuring?
Logged

Experience, it's what you get when you were expecting something else.

Offline Offline
Newbie
*
Karma: 0
Posts: 5
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

The ADC pin (PC7)  is connected to a 10k pot twixt Vcc and ground.  I'm not using any noise cancelling/reducing, just a plain read.
Logged

texas
Offline Offline
God Member
*****
Karma: 27
Posts: 862
old, but not dead
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

It takes about 40mS to charge the cap thru 5k so there will be a lag as you turn the control or after power on.  Even a variation of 5 seems kind high to me, so I'm not all that impressed with the first set of results before the cap.
Logged

Experience, it's what you get when you were expecting something else.

Offline Offline
Newbie
*
Karma: 0
Posts: 5
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hi afremont

The analysis runs in a continuous loop (as opposed to the other kind :-) and cap-in / cap-out give the same (different) results, so I don't think it's that kind of time/charging thing.

I'm curious why the bi-modalism, too.  That must be a clue, right?  smiley-grin

Logged

texas
Offline Offline
God Member
*****
Karma: 27
Posts: 862
old, but not dead
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Like I said, your first set of samples seem kind of noisy to me.  The oscilloscope is the only way to really find out what's going on.
Logged

Experience, it's what you get when you were expecting something else.

Offline Offline
Faraday Member
**
Karma: 57
Posts: 2764
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

I'm more concerned about your second lot of samples.   That looks seriously dodgy.
Are the high and low samples alternating ?
Logged

Offline Offline
Faraday Member
**
Karma: 57
Posts: 2764
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

I'm not sure what effect you are trying to achieve with the 1 uF cap.   That's rather large.

I put some caps on the input of my ADC to help with the current when the analog source had a high impedance
( and also a very low rate of change ),   and I was using 2 nF and 10 nF.
Logged

Russia
Offline Offline
Newbie
*
Karma: 0
Posts: 24
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

What is your arduino powered from? What reference are you using?
Logged

United Kingdom
Offline Offline
Tesla Member
***
Karma: 223
Posts: 6593
Hofstadter's Law: It always takes longer than you expect, even when you take into account Hofstadter's Law.
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Do you have anything else connected to Arduino ground? If so, you may get better results if you use one of the Arduino ground pins to connect the ground side of the capacitor and the ground end of the pot, and the other ground pins for connecting everything else that needs to be connected to ground.
Logged

Formal verification of safety-critical software, software development, and electronic design and prototyping. See http://www.eschertech.com. Please do not ask for unpaid help via PM, use the forum.

Offline Offline
Newbie
*
Karma: 0
Posts: 5
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hi!  Sorry for the lag. I'm getting over a lousy cold and the things put off thereby.

The Nano is powered by the USB and the pot by the +5V (really about 4.5V) supply on the Nano.  The cap goes directly from PC7 to Gnd.  Well, the columns(?) on the breadboard, of course.  (The cappot was originally powered by the +5V buss powered by the nano +5V but even when I de-powered the breadboard and ran a wire directly to the pot, the noise remained.)

ADC ref is Vcc.  I can see the full 0-1027 range from 0V-Vcc.

The 1 uF cap size was to see what would happen.  I'm still rather NEWB! to the whole bypass cap thing.  Also it seemed about the right choice for the 100kHz - 10MHz regime I expected for the noise.

My scope (C. Zeitnitz's cool soundcard oszilliscope http://www.zeitnitz.de/Christian/scope) doesn't show anything that I can interpret.  I mostly use it as a logic analyzer/timing checker.

Thanks for the interest.  I'll get back to something more systematic in a day or two.
Doug

« Last Edit: April 10, 2013, 08:19:11 pm by dmstrain » Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 5
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Oh well.  It looks like I've got more problems than a perplexing cap.

My multi-meter shows 35 mV DC & ~0 AC between USB ground and soundcard line-in ground with both cables un-attached (plugged into the PC of course).  When I plug in the USB cable to the Nano and leave the audio cable unplugged it shows 75 mV DC and 15 mV AC.  In both cases the audio ground is lower than USB ground.

15 mV AC (approx rms) works out to about +/- 4 LSBs p-p which is what I often see.  So hmmmm.

I'll have to chase down these problems first then see what the cap does.

Thanks
Doug

Logged

Russia
Offline Offline
Newbie
*
Karma: 0
Posts: 24
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

So, it's easy. ADC is measuring the ratio between its reference and the signal. When you have just the pot, the noise from the power line is in both signal and reference, so it is effectively cancelled out. But when you connect a cap across a pot, you filter away the noise from your signal while still having the noise in reference, so you get noisy results.

Try changing the reference to internal bandgap one. Or power your arduino from a low-noise external power supply (usb port of a computer isn't low noise).
Logged

Pages: [1]   Go Up
Jump to: