Chris Collins

Tools · electronics

ADC accuracy

Work out effective bits from SINAD or measured noise, build a worst-case and RSS error budget from the reference, gain, offset, INL, and divider tolerances, check whether a divider settles the ADC's sample capacitor in time, and plan oversampling.

Added

How to use it

Values accept engineering notation (100k, 8p, 964n).

  • ENOB & noise — the ideal SNR of an N-bit converter is 6.02·N + 1.76 dB, and the effective number of bits is ENOB = (SINAD − 1.76)/6.02 (Analog Devices MT-003). From measured noise: hold the input steady and take the standard deviation σ of many readings in counts; the effective resolution is N − log2σ and the noise-free resolution (the bits that never flicker) N − log2(6.6σ).

  • Error budget — every error as a fraction of full scale: the reference’s initial tolerance and its drift (tempco × temperature span), the ADC’s gain, offset, and INL, the divider’s ratio error from its resistor tolerances (computed exactly; about 2·tol·(1 − ratio)), and ±½ LSB of quantization. Worst case adds them; RSS (root-sum-square) is the realistic figure for one board. Gain and offset can be calibrated out; INL, drift, and noise cannot.

  • Loading & settling — an ADC samples by charging a small capacitor Cs through a switch. To settle within ½ LSB the source must charge it in t = (Rsource + Rswitch)·Cs·ln(2N+1) during the acquisition time. The tool shows the source resistance a divider presents (and the ratio error from an ADC input resistance), whether it settles, the largest source resistance that would, and the alternative: a capacitor at the pin of at least Cs·2N+1, which supplies the charge but slows the input to τ = Rsource·C. Presets use STM32F1 and ATmega328P datasheet figures.

  • Oversampling — each extra bit needs four times the samples (Atmel AVR121, Silicon Labs AN118), and averaging n samples gains 10·log10(n) dB — but only with at least about 1 LSB of random noise to dither the input, and it does not remove INL or reference errors.

For LSB size, voltage ↔ counts, and divider values for a voltage range, see the ADC tab of the circuit tool. ESP32 ADCs are notably non-linear near the ends of their range: use the calibrated driver (esp_adc_cal, analogReadMilliVolts), and ADC1 when Wi-Fi is on.

For the sensor in front of the ADC see thermistors and RTDs and current sensing.

Sharing

Share link copies a URL that opens this tool with your current settings — every value it remembers between visits, packed into ?s=. Opening a link replaces your saved settings for this tool.

Runs entirely in your browser; nothing you type leaves this page.