Course contentsShow
← Embedded Systems & Computer Architecture
Lesson 300 of 9364. Peripheral Interfacing and ControlFree lesson

Quantifying Resolution and Full Scale Range

Learners will determine the smallest detectable voltage change based on bit depth and reference voltage to calculate the ADC step size.

In this lesson, you will learn how to calculate the smallest change in voltage your ADC can detect, known as the "step size" or "least significant bit" (LSB).

When we convert an analog signal to a digital value, we are essentially mapping a continuous range of voltages (the Full Scale Range) into a finite set of digital numbers (the Resolution).

The Full Scale Range (FSR)

The FSR is the maximum voltage span the ADC can measure. Usually, this is defined by your reference voltage (VrefV_{ref}). If your ADC is set to use a 3.3V reference, any voltage above 3.3V will be "clipped" at the maximum digital value, and anything below 0V is effectively invisible.

Calculating Step Size (LSB)

The "resolution" of your ADC determines how many "bins" you have to divide your voltage range into. A common 10-bit ADC provides 2102^{10} possible values, which is 1,024 discrete levels (from 0 to 1023).

To find the step size, you divide the total voltage range by the total number of available digital steps:

Step Size=Vref2n\text{Step Size} = \frac{V_{ref}}{2^{n}}

Where nn is the number of bits of resolution. For example, with a 3.3V reference and a 10-bit ADC: Step Size=3.3V1024≈0.00322V (or 3.22 mV)\text{Step Size} = \frac{3.3V}{1024} \approx 0.00322V \text{ (or 3.22 mV)}

This means if your input voltage changes by less than 3.22mV, the ADC might not register a change in the digital output at all!

Implementation Perspective

When writing code for sensors, you often need to convert the raw integer from the ADC back into a readable voltage value. You can use the step size to perform this calculation:

// Example: Converting raw ADC value to voltage
uint16_t raw_adc_value = read_adc(); // Assuming 10-bit result
float v_ref = 3.3f;
float voltage = (raw_adc_value * v_ref) / 1024.0f;

By understanding this relationship, you can determine if your hardware is precise enough for your application. If your sensor signal varies by only 1mV, a 10-bit ADC with a 3.3V range will be insufficient because its resolution (3.22mV) is larger than the signal changes you are trying to measure.

Key Takeaway: The ADC step size—calculated as reference voltage divided by two to the power of bit depth—defines the smallest voltage increment your system can distinguish.