VESNA ADC resolution

07.12.2013 18:00

Working on the new UHF receiver, I wanted to quantify the amount of noise that VESNA's A/D converter will contribute to the total noise of the receiver. This is one of two noise sources I cannot influence (the other being the TDA18219 RF front-end). Knowing the approximate performance of the ADC helped me when choosing other components in the signal chain, since I wanted them not to significantly affect the total amount of noise in the system.

VESNA's STM32F103 microcontroller has 12-bit A/D converters with a 3.3 V reference voltage. In theory they should be accurate to the least-significant bit. Amplitude of the quantization noise is therefore:

\hat u_Q = \frac{3.3V}{2^{12} - 1} = 0.80 \mathrm{mV}

Here's a practical measurement at 2 Msamples/s. The setup was the same as with my high-frequency test, except that the input was grounded with a 50Ω terminator instead of connected to a signal generator:

Histogram for a grounded VESNA ADC input.

The histogram of the samples looks nicely like a Gaussian distribution. Calculating the standard deviation gives directly the RMS value of the noise:

\sigma = 0.74
u_{noise} = \sigma \frac{3.3 V}{2^{12}-1} = 0.60 \mathrm{mV}

Comparing to the largest possible signal RMS value:

u_{signal} = \frac{ 3.3 \mathrm{V} }{2\sqrt{2}} = 1200 \mathrm{mV}

So given these values the best signal to noise ratio achievable is:

SNR = 66 \mathrm{dB}

Resulting in effective resolution of 10.9 bits (SNR for an ideal 12 bit converter is 72 dB). A metric like SINAD would more accurately describe the capability of VESNA's ADC for capturing modulated signals, but I think this estimate was good enough to give me an idea of how much freedom I had in choosing a channel filter implementation.

Having done this measurement, another metric can also be calculated, which might be interesting to know. VESNA'S ADCs are mostly used for reading analog sensors. Those are basically DC signals and there the peak-to-peak resolution is a better indicator of ADC performance (as this application note explains).

N_{pp} = \log_2 \frac{2^{12}-1}{6.6 \sigma} = 9.7 \mathrm{bits}

So out of 12 bits you only get 9 most-significant bits without flicker. However, for reading slow-moving sensors you might probably want to use some slower ADC mode with longer sampling time. That might integrate away some of the noise and provide a better resolution.

Posted by Tomaž | Categories: Analog

Add a new comment


(No HTML tags allowed. Separate paragraphs with a blank line.)