cancel
Showing results for 
Search instead for 
Did you mean: 

16-bit ADC collects samall ADC siganal used by STM32H743 problems

YZhan.7
Associate II

Hi,

I use 16-bit ADC to collect small-value ac signals, and then use USART to transmit them to the computer for reading. The following figures are the result I read. The amplitudes of the two signals are respectively 20mVpp and 100mVpp, and we can clearly see that there will be a certain clipping (i.e. several points keep the same reading) at the base of the signal and at the minimum and maximum values. Remember, I'm using a 16-bit ADC with a resolution of up to 50uV, so it's theoretically difficult to have the same value for multiple points in a row. May I ask what reason this is?0693W00000Hre9bQAB.png0693W00000Hre9MQAR.png0693W00000Hre97QAB.png0693W00000Hre8xQAB.png

2 REPLIES 2
TDK
Guru

> Remember, I'm using a 16-bit ADC with a resolution of up to 50uV, so it's theoretically difficult to have the same value for multiple points in a row. May I ask what reason this is?

ADCs are not perfect and will always contain some amount of error.

The datasheet suggests you lose at least 2-3 bits of precision. So your 16-bit ADC is really mroe like a 12-13 bit one. In any case, you should not expect 16 bits of noiseless precision.

0693W00000HrhFSQAZ.png 

General tips for improving accuracy are here:

https://www.st.com/resource/en/application_note/cd00211314-how-to-get-the-best-adc-accuracy-in-stm32-microcontrollers-stmicroelectronics.pdf

If you feel a post has answered your question, please click "Accept as Solution".
YZhan.7
Associate II

Thanks for your answer. But I still have a few questions. Firstly, in a continuous sampling process, ADC can maintain the sampling rate of 16-bit for most of the time, but the sampling rate of ADC will be seriously reduced from 16-bit to 10-11-bit at some specific voltage points, including the maximum and minimum values of the signal and the reference voltage. What could be causing this disturbance? The second question is that I am using NUCLEO for sampling. If the performance of the ADC on the NUCLEO is not up to par, do I have to modify the program to improve the sampling accuracy according to the AN2834 reference manual?