I have a question regarding very basic op-amp and adc theory that has been bothering me because I haven't found a clear answer to anywhere:

On a 12-bit ADC, if my voltage reference is 1.24 V, my resolution will be ~0.6 mV. If I'm interested in having a resolution of 0.1 mV, will amplifying my sensor's analog voltage range (0 to 200 mV) to cover the entire range of the adc (1.24 V) effectively increase my resolution?

Can I calculate my new resolution by dividing 200 mV by 2048 (= ~0.1 mV) or is the resolution fixed no matter what percentage of the adc range i use? In other words, will using an opamp help me get a higher effective resolution or will it stay at ~0.6 mV no matter the amplification. Is the equation for calculating the new resolution different when adding an amplifier? Do I lose the simple linearity between the output codes and voltages.

As a follow-up question: If amplifying my sensor's output doesn't get me to 0.1 mV. Is there a way I can get down to 0.1 mV using a 12-bit ADC and 1.24 V reference? Are there any external circuit components I can integrate to achieve this? Am I forced to use a separate 16-bit adc and connect it to my microcontroller? Ideally, I want to minimize my circuit's complexity and use the adc in my microcontroller (BlueGiga BLE112) and use an op-amp externally, but I'm open to other ideas.

Thank you for taking the time to read this, and pardon my gaps in knowledge, trying to get past the learning curve as rigorously and best as possible.

  • 1
    \$\begingroup\$ Not sure how you got the .6 mV . \$\endgroup\$ – Kishore Saldanha Nov 19 '15 at 3:51
  • \$\begingroup\$ I divided 1.24 V by (12^11) since last bit is used for positive and negative sign, but I can actually use the final bit by making some code changes so it would be even lower about 0.3 mV \$\endgroup\$ – JEFENZ0 Nov 20 '15 at 19:18

The nominal resolution of any ADC is V(span) / 2^^n where V(span) is the range of voltage it can convert (1.24V in your case) and n is the number of bits.

For your 12 bit device that is 1.24 / 4096 = 303 microvolts per step. This is the base resolution regardless of what you feed the ADC. Note that the actual precision of the ADC is a bit more complex.

If you have a signal with a maximum size of 200mV, then amplifying it to take advantage of the full span of the ADC will yield more accurate results in the measurement, but you will need to take care in your choice of amplifier.

There are devices specifically designed as ADC drivers, and which one you use is dependent on the electrical characteristics of the ADC you are using.

There is an excellent online tutorial on the signal chain at Analog Devices

  • \$\begingroup\$ Thanks for the great link! If I am understanding correctly the amplifier does a lot, but one way it increase the reading accuracy is by stabilizing more bits. The amplifier does not increase the resolution to below 0.303 mV. On quora (top answer under bold range adjustment header - the link in 2nd comment below) it says using the full range of adc increases precision in temperature reading, does this not apply to increasing the precision of sensor's voltage reading if I amplify from 200 mV to 1.24 mV with the appropriate amp. If I do amplify would my new precision be 0.05 mV with a 12bit adc. \$\endgroup\$ – JEFENZ0 Nov 20 '15 at 19:07
  • \$\begingroup\$ quora.com/… \$\endgroup\$ – JEFENZ0 Nov 20 '15 at 19:09

It depends on the weakest signal you are trying to measure .Suppose you have an 3 bit ADC with Vref =8 V .Each 3-bit combination corresponds to a voltage from 1 to 8 in steps of 1. Say you are trying to measure a sine wave which swings about 0.5 V with a peak of 0.5 V. That in essence means the ADC detects an input voltage 1 for any value below 1 V i.e for every sampled point on the sine wave . So the ADC output you get is pretty much a constant voltage ,not quite the sine wave at the input.

Now say you've doubled your input ,the sine wave swings about 1 V with an amplitude of 1 .Now you get two voltage levels for the sine wave .The output looks like a square rather than sine albeit much better than previous case .Note ,however the noise signals present in the input will also be amplified .

Another thing to consider is that 12-bit ADC may only have a resolution of 9 or 10 bits due to various types of noise . This may also include RF noise since you're using a Bluetooth module . The following pdf may help http://www.atmel.com/Images/doc4278.pdf


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.