Is a 10-Bit ADC Sufficient for Microcontrollers?

1. Introduction

Currently, most microcontrollers come with built-in ADC converters ranging from 10 to 12 bits. In general applications, how much does the bit depth of ADC conversion affect measurement error? Is a 12-bit ADC sufficient? Below, we will discuss the impact of ADC bit depth on measurement error through actual measurements.

Is a 10-Bit ADC Sufficient for Microcontrollers?

2. Circuit Design

We designed a test circuit using the F030 microcontroller for testing. The input analog signal is filtered through an RC filter before being sent to the ADC’s channel 0. Two resistors separate the analog ground and power supply. A 3.3V voltage regulator chip is also set up on the circuit board. The PCB is designed to accommodate a one-minute board fabrication method.

AD\Test\2024\April\TestADCBit.PcbDoc

Is a 10-Bit ADC Sufficient for Microcontrollers?

▲ Figure 1.2.1 Test Circuit Schematic 720

Is a 10-Bit ADC Sufficient for Microcontrollers?

▲ Figure 1.2.2 Test Circuit PCB

After one minute, we obtained the fabricated test circuit board. The circuit was made perfectly. Next, we will proceed with the soldering test.

Is a 10-Bit ADC Sufficient for Microcontrollers?

3. Measurement Results

After soldering the circuit board and cleaning it, we performed measurements. Using probe clips, we downloaded the test program. The test program uploads measurement data to the computer via the serial port in ST-LINK. Using Python programming, we utilized the DH1766 to provide voltages from 0.1V to 3.2V, and the actual voltage values were measured using the DM3068. The microcontroller averaged the 512 collected data points. Before averaging, we took the first 1 to 12 bits, allowing us to obtain ADC sampling values at different resolutions.

Is a 10-Bit ADC Sufficient for Microcontrollers?

Is a 10-Bit ADC Sufficient for Microcontrollers?

Within the measured voltage range, a total of 2000 data points were collected, and the relationship between voltage and ADC was plotted. It can be observed that when the ADC sampling bit depth is relatively small, the error caused by quantization is quite large. Although this is the average of 512 data points, the error mainly arises from AD quantization. However, as the bit depth increases, we can also see that the data contains fluctuations caused by noise. At this point, the error caused by noise exceeds the error introduced by the conversion bit depth.

Is a 10-Bit ADC Sufficient for Microcontrollers?

Is a 10-Bit ADC Sufficient for Microcontrollers?

▲ Figure 1.3.1 Collected Data for Different Bit Depths

By performing linear fitting between the microcontroller’s AD data and the voltage, we calculated the variance of the error between the fitted voltage and the actual voltage. It can be seen that during the change of ADC conversion bit depth from 1 to 12, the variance decreases sharply. However, the rate of decrease slows down, and when the bit depth exceeds 10 bits, the error remains basically unchanged. This is a data line plotted after taking the logarithm of the variance. It is clearer to see that when the ADC conversion bit depth exceeds 10, the error in the obtained data mainly comes from the noise in the circuit. Therefore, for data conversion, higher ADC bit depth is no longer useful.

Is a 10-Bit ADC Sufficient for Microcontrollers?

▲ Figure 1.3.2 Linear Fitting Errors Corresponding to Different ADC Bit Depths

Bits Var
1 0.2016750843417479
2 0.05153571814548405
3 0.01352796032514819
4 0.003468020713918683
5 0.0008517649509084311
6 0.00020580205442651296
7 5.001551736517359e-05
8 1.3009367147500475e-05
9 5.263557870607768e-06
10 4.309030498367149e-06
11 4.297694583457816e-06
12 4.314972044296696e-06

Is a 10-Bit ADC Sufficient for Microcontrollers?

▲ Figure 1.3.3 Bit Depth and Error Log

※ Conclusion ※

This article conducted actual measurements on the impact of ADC conversion bit depth on measurement data accuracy. When the ADC conversion bit depth is less than 10 bits, the data error decreases exponentially with the increase in bit depth. When the bit depth exceeds 10 bits, under normal single-sided board conditions, the error caused by noise in the circuit becomes the main component. In fact, the ADC conversion bit depth no longer plays a role in reducing measurement error.

Is a 10-Bit ADC Sufficient for Microcontrollers?

Leave a Comment