The resolution of a 12-bit A/D converter with a 5.0V reference voltage is exactly 1.22 mV per step (0.00122 V/LSB). For a standard 10-bit ADC at 5V (like the ATmega328P on an Arduino Uno), it is 4.88 mV/step, and for a 16-bit ADC at 3.3V (like the ADS1115), it is 0.0503 mV (50.3 µV) per step. This conversion translates digital bit-depth into real-world analog voltage increments, allowing you to determine the smallest physical change your microcontroller can detect.

The Core Formula and Voltage Assumptions

The resolution of an analog-to-digital converter (ADC) is strictly fixed by two assumptions: the reference voltage ($V_{REF}$) and the bit depth ($N$). The formula to find the voltage per step (Least Significant Bit, or LSB) is:

$Resolution = V_{REF} / 2^N$

Substituting our baseline values for a 12-bit ADC on a 5V rail:

  • $Resolution = 5.0V / 2^{12}$
  • $Resolution = 5.0V / 4096$
  • $Resolution = 0.0012207V$ (or 1.22 mV)

This calculation assumes an ideal, noise-free environment and a perfectly stable $V_{REF}$. In modern 2026 designs using ESP32-S3 or STM32 microcontrollers, the internal $V_{REF}$ is typically tied to the 3.3V LDO output. If your 3.3V rail sags to 3.25V under load, your resolution tightens slightly, but your absolute accuracy degrades. Always remember: resolution is the size of the step, not the accuracy of the measurement.

Resolution Reference Chart (±20% VREF Tolerance)

Power supply tolerances and voltage divider drift mean your $V_{REF}$ is rarely exactly 5.000V. Below is a spec-sheet-table showing how the resolution of a 12-bit ADC (4096 steps) shifts across a ±20% range of a nominal 5V reference. This is critical when designing battery-powered sensors where $V_{CC}$ drops as the cell discharges.

Actual VREF (V) Deviation from 5V 12-Bit Resolution (mV/step) 16-Bit Resolution (µV/step)
4.0V -20% 0.976 mV 61.0 µV
4.5V -10% 1.098 mV 68.6 µV
5.0V (Nominal) 0% 1.220 mV 76.2 µV
5.5V +10% 1.342 mV 83.9 µV
6.0V +20% 1.464 mV 91.5 µV

Scaling for 120V, 230V, and 3-Phase Mains Measurement

When measuring mains AC voltage, the ADC resolution shifts dramatically because you must scale the high voltage down to the microcontroller's safe 0–3.3V range using a voltage divider or potential transformer (PT). The ADC's resolution remains fixed, but the system's resolution (referred to the primary mains side) degrades proportionally to the scaling ratio.

Assume a 16-bit ADC at 3.3V (50.3 µV/step) and a scaling network designed to map the peak AC voltage to 3.3V:

  • 120V AC (North America): Peak voltage is ~170V. Mapping 200V peak to 3.3V gives a ratio of 60.6. System resolution = 50.3 µV × 60.6 = 3.04 mV per step at the outlet.
  • 230V AC (EU/UK/AU): Peak voltage is ~325V. Mapping 350V peak to 3.3V gives a ratio of 106. System resolution = 50.3 µV × 106 = 5.33 mV per step at the outlet.
  • 400V 3-Phase Line-to-Line (Industrial): Peak voltage is ~565V. Mapping 600V peak to 3.3V gives a ratio of 181.8. System resolution = 50.3 µV × 181.8 = 9.14 mV per step on the busbar.

According to Texas Instruments precision ADC guidelines, when measuring high-voltage industrial systems, the scaling network's resistor tolerance (often 1% or 0.1%) will introduce far more error than the ADC's native LSB size. Always calculate the referred-to-primary (RTP) resolution, not just the silicon resolution.

When High Resolution Becomes Meaningless

The conversion from bits to millivolts becomes mathematically meaningless when your noise floor exceeds the LSB size. This is defined by the Effective Number of Bits (ENOB). A 24-bit delta-sigma ADC like the ADS1256 theoretically offers 0.29 µV steps on a 5V range. However, if your PCB layout suffers from 2mV of switching noise from an adjacent buck converter, that noise spans nearly 7,000 steps. Your 24-bit resolution is entirely masked by EMI.

Furthermore, thermal noise in high-impedance voltage dividers sets a hard physical limit. As noted in Analog Devices' data converter fundamentals, a 100kΩ source impedance generates roughly 40 µV of thermal noise at room temperature in a 10kHz bandwidth. Feeding this into a 16-bit ADC (76 µV steps) means the lowest 1 to 2 bits will constantly dither between 0 and 1. In practice, always pair high-resolution ADCs with low-impedance sources, RC low-pass filters, and proper ground planes to ensure your theoretical resolution translates to usable data.

Frequently Asked Questions

How does the resolution of an A/D converter change if I use an op-amp gain stage?

Adding a non-inverting op-amp gain stage before the ADC effectively amplifies the sensor signal, which improves the system resolution referred to the sensor, but does not change the ADC's native voltage-per-step. For example, if you apply a 10x gain to a 0-100mV thermocouple signal, it becomes 0-1V. A 12-bit ADC at 3.3V (0.8 mV/step) now resolves 0.08 mV changes at the thermocouple. However, you also amplify the sensor's inherent noise by 10x, and the op-amp introduces its own offset voltage and input bias current errors.

What is the difference between ADC resolution and ADC accuracy?

Resolution is the smallest step size the ADC can theoretically output (e.g., 1.22 mV). Accuracy is how close that reported step is to the true physical voltage. An ADC might have a 1 mV resolution but suffer from ±5 mV of Integral Non-Linearity (INL) and offset error. High resolution without high accuracy means you get very precise, repeatable numbers that are consistently wrong by a fixed margin. You can fix accuracy via software calibration, but you cannot fix poor resolution without changing the hardware.

Why does my 16-bit ADC only give me 12 bits of usable data?

This is the difference between nominal resolution and Effective Number of Bits (ENOB). Internal capacitor mismatch, clock jitter, and thermal noise inside the silicon degrade the performance of the lowest bits. If a 16-bit ADC datasheet specifies an ENOB of 12.5, the lowest 3.5 bits are essentially random noise. To get true 16-bit performance, you must use precision external ADCs (like the ADS1115) with dedicated low-noise linear regulators and star-grounding topologies, rather than relying on the internal ADC of a standard microcontroller.

How do I calculate ADC resolution for a 4-20mA current loop sensor?

For a 4-20mA industrial sensor, you pass the current through a precision shunt resistor to convert it to voltage. If you use a 165Ω shunt resistor, 4mA yields 0.66V and 20mA yields 3.3V. The measurable span is 2.64V (from 0.66V to 3.3V). On a 12-bit ADC (4096 steps across the full 3.3V range), the span of 2.64V utilizes roughly 3,276 steps. Therefore, your resolution is 16mA / 3276 steps = 4.88 µA per step. Always ensure the shunt resistor's power rating and tolerance (use 0.1% or better) match the required system precision.