Why the voltage corresponding to the ADC result of 25 is 1.07 v (for a 10 bit A/D converter with a low reference voltage of one and high reference voltage of four) shouldn't the A/D conversion result be as it is , meaning 25 volts? In the manual it says the ADC result is more accurate if the value of the analog signal covers the whole voltage range from VRL to VRH.

  • \$\begingroup\$ Uh... what? Are you talking about the ADC in a microcontroller? Please provide some context, such as which device you're using, etc... \$\endgroup\$ – Connor Wolf Oct 4 '15 at 4:20
  • \$\begingroup\$ The reading is relative to the maximum value. According to my calculation, 25 corresponds to 1.097V which comes close to the expected value. \$\endgroup\$ – svens Oct 4 '15 at 4:37

The output of a 10 bit ADC is a number between 0 and 1023.

But very few applications require measuring a voltage between 0 and 1023 V.

Luckily (for people who don't happen to want to measure voltages between 0 and 1023 V), we can arrange for the ADC output to be scaled to measure essentially any range we want. Typically we measure between 0 and some value \$V_{ref}\$, but other ranges are possible (for example \$-V_{ref}\$ to \$V_{ref}\$). The datasheet for your ADC will tell you what the conversion range for your device is, and may also allow you to adjust the range, for example by providing an external reference voltage on one of the device's pins.

For the case of 0 to \$V_{ref}\$, assuming an ideal linear ADC, the actual input voltage can be recovered from the ADC reading by


where \$d\$ is the ADC reading, and \$n\$ is the number of bits produced by the ADC.

In the manual it says the ADC result is more accurate if the value of the analog signal covers the whole voltage range from VRL to VRH.

This isn't quite right. It should say the ADC provides more resolution, or better precision, if the analog signal uses the whole voltage range.

For example, say your ADC is set up to give 10 bits of resolution for input voltages between 0 and 5 V, but your input signal actually only varies between 0 and 1 V. Then you'll only read output values between 0 and 205. So you have only 8 effective bits of resolution in your signal range. And the voltage resolution is only 4.89 mV per count.

If you reduced the ADC reference voltage to 1.023 V (a convenient value), then you'd have very nearly the full 10 bits of resolution over your signal range, and the resolution in terms of voltage would be 1.0 mV per count.

  • \$\begingroup\$ Nice answer @Photon. \$\endgroup\$ – Michael Karas Oct 4 '15 at 11:29
  • \$\begingroup\$ @The Photon, you are talking about reducing the reference voltage to 1.023 V in your example to increase the resolution, so in order to increase the resolution we should always change the VRL and VRH ? SO the input voltage is known and the voltage references of ADC in an MCU should be changed accordingly? \$\endgroup\$ – Jack Oct 5 '15 at 13:21
  • \$\begingroup\$ @MaryE, you never defined what VRL and VRH mean, so I can't really tell you anything for sure about them. \$\endgroup\$ – The Photon Oct 5 '15 at 14:50
  • \$\begingroup\$ An A/D converter needs a low reference voltage (V RL ) and a high reference voltage (V RH ) to perform the conversion. The V RL voltage is often set to ground, whereas the V RH voltage is often set to V DD . Some microcontrollers simply tie V RL to the ground voltage and leave only the V RH voltage programmable. \$\endgroup\$ – Jack Oct 5 '15 at 14:58
  • 1
    \$\begingroup\$ @MaryE, You can get higher resolution 3 ways: 1) Adjust the reference voltages to more closely match the actual signal range. (your first idea) 2) Add a preconditioning amplifier to adjust the input range to match the reference voltage (your second idea), or 3) buy an ADC with more bits resolution. Which one is best depends on the exact details of the situation. \$\endgroup\$ – The Photon Oct 5 '15 at 15:45

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.