> I am trying to measure a fairly stable DC voltage in the range of .200 to > 2.000 volts. I need .001 volt resolution minimum. > > The voltage wanders a bit but only in the realm of milliseconds, and by > millivolts. I want to take many sample and average them. MINIMUM number of required steps is (2.000-0.200)/.001 = 1800 10 bits = 1024 11 bits = 2048 12 bits = 4096. You really want 12 bits. In a noiseless environment simply averaging multiple readings may very well NOT give you an answer which is more accurate than the resolution of the A2D converter. However, .... There IS a way to use a 10 bit converter to get maybe 2 more bits if it is sufficiently accurate and the method is applied well. This is termed "dithering". Note that the ACCURACY of the converter and its RESOLUTION are not the same. You can get arbitrarily good APPARENT extra resolution this way but at some points the gains will be illusory. Method: - Add +/- 0.5 bits of RANDOM analogue noise to the signal (!) eg for a converter with a 1 millivolt step add 1 millivolt peak to peak of random noise. A greater noise level may also work but there can be problems. - Average N values (at least 4 in theory but as many as possible in practice. Reason it works: The true signal will be randomly perturbed towards one or either of the values controlled by adjacent bit positions. On average it will be moved towards or past each value by the inverse of its distance from it. Example: Lets make this easier. Say your converter has a 4 volt minimum step size eg 0 4 8 16 32 etc volts Say your actual signal is 5.3 volts Assume your converter will return the value that is nearest to the true value. eg 4 = 4 +/- 1.9999999v actual 8 = 8+/- 1.999999v actual etc We add +/- 2 volts max amplitude random noise to the signal Actual = 5.3. After noise added = 5.3 +/-2 = 3.3 to 7.3 3.3 to 6, a range of 2.7 volts, will convert as 4 6 to 7.3, a range of 1.3 volts will convert as 8 As the signal is randomly distributed along this range the times that a 4 will occur are 2.7/(2.7+1.3) and an 8 will occur 1.3/(1.3+2.7) of the time. 2.7/4 = 0.675 of the time = 4 1.3/4 = 0.3250 of the time = 8 Over a large number of samples the average will be 0.675 x 4 + 0.3250 * 8 = 5.3 Far out ! (or it will be if you've never met this before) The ability of the A2D to accurately measure values near bit boundaries and the randomness of the added noise will affect the accuracy which can be achieved. You could consider using an OTS Sigma delta converter rated at 12 to 16 bits. Theseare usually cheap for what they do but relatively slow. You could also try Scott Datallos PIC code based Sigma Delta converter. Don't know if it will achieve the number of bits that you need here or not (it might - see Scott's information on PICLIst site). (search for Delta Sigma or Sigma Delta) Russell McMahon -- http://www.piclist.com hint: The PICList is archived three different ways. See http://www.piclist.com/#archives for details.