Insights on STM32 internal ADC accuracy

Publisher:暮烟微雨Latest update time:2016-10-09 Source: eefocusKeywords:STM32 Reading articles on mobile phones Scan QR code
Read articles on your mobile phone anytime, anywhere
        According to the technical manual provided by ST, the ADC parameters of STM32F103 are quite excellent, with a sampling rate of up to 1MHz, 12Bit, and various errors are also lower than those of mid- and low-end dedicated ADC chips.

       However, in actual use, it is quite different from what is described in the document, because the developed product has high requirements for accuracy and does not consider cost factors. Therefore, the PCB has fully considered various factors that affect accuracy, and adopted single-point grounding of digital and analog ground, multi-layer board design, ground integrity, AVCC separate power supply, and high-precision AD company reference source to provide VREF voltage. When enabling DMA to collect data, it is found that although the overall error value of the data is very small, which is completely comparable to most dedicated ADCs, one or two numerical errors will appear from time to time, even up to +-8LSB or more. There is no interference source on the board, and even directly connecting the ADCIN pin on the STM32 to the AGND pin, it is still inevitable that some large errors will appear from time to time. This error should be caused by the STM32.

       Considering the high acquisition rate of the internal ADC of STM32, after using a simple algorithm to filter out the values ​​with large errors, it is found that the accuracy is still very high, and it can completely replace some 12-bit, dedicated ADC chips within 200kS.

Keywords:STM32 Reference address:Insights on STM32 internal ADC accuracy

Previous article:STM32 general timer precise delay program
Next article:Design of control system for environmental test equipment based on embedded system

Recommended ReadingLatest update time:2024-11-16 14:58

Problems encountered when using STLINK to burn external FLASH in STM32
Since the project requires a large number of image fonts and audio files, NOR flash and NAND flash are plugged in. The burning algorithm STLDR (which contains several sections of code running in SRAM) is needed. Several problems were encountered during debugging, all of which were caused by carelessness, so I wrote th
[Microcontroller]
STM32 key interrupt learning record
I am used to searching the Internet when I encounter problems in debugging programs. I can often get inspiration from the records or replies of experts. I didn’t expect that one day I would start writing a blog to record my learning bits and pieces. The month of learning STM32 was a bit like working in isolation, beca
[Microcontroller]
About STM32 MCU GPIO port pull-up and pull-down input
      Previously, the circuits connected to GPIO were all low-level triggered. I drew a new board and one of the buttons was designed to be high-level triggered. As a result, after the IO port was set to pull-up input, it was not read correctly no matter how I read it. The button circuit is shown in Figure 1. I had no
[Microcontroller]
About STM32 MCU GPIO port pull-up and pull-down input
A preliminary study of the STM32 startup file startup_stm32f10x_hd.s (Reset_Handler function)
The main purpose of this file is: Setting the Initial SP Set initial PC=Reset_Handler Set the vector table entry address and initialize the vector table Call SystemInit to set the system clock to 72M. SystemInit is defined in the library file system_stm32f10.c Transfer to label _main and finally come to the C progra
[Embedded]
STM32 uses printf in keil environment
1. First you need to set up Keil ! (https://img-blog.csdn.net/20180509170628341?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dhbmd6aGltaW5fMDcwMg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70) 2. Add header files 3. Add two sections of code to the code Add the first code: #ifdef __GNUC__     #defi
[Microcontroller]
STM32 study notes: Bootloader upgrade Ymodem protocol introduction
YModem Protocol The YModem protocol evolved from the XModem protocol. Each data packet can reach 1024 bytes and is a very efficient file transfer protocol. Source code macro definition #define SOH (0x01) /* start of 128-byte data packet / #define STX (0x02) / start of 1024-byte data packet / #define EOT (0x04) / end
[Microcontroller]
STM32 study notes: Bootloader upgrade Ymodem protocol introduction
STM32_RTC Notes
RTC is a bit confusing because one module involves multiple modules such as RTC, BKP, and RCC, and the relationship between them is a bit vague. Please read the manual for introductory knowledge. I will summarize: In short, RTC is just a 32-bit timer that can be maintained by batteries! Therefore, pay attention to the
[Microcontroller]
Portable flight parameter data unloader based on μC/OS-II
With the widespread application and continuous enhancement of embedded systems, the requirements for the human-machine interface in the system are getting higher and higher. Therefore, the addition of graphical user interfaces in embedded systems has been widely used. In order to give full play to the functions and per
[Microcontroller]
Portable flight parameter data unloader based on μC/OS-II
Latest Microcontroller Articles
  • Download from the Internet--ARM Getting Started Notes
    A brief introduction: From today on, the ARM notebook of the rookie is open, and it can be regarded as a place to store these notes. Why publish it? Maybe you are interested in it. In fact, the reason for these notes is ...
  • Learn ARM development(22)
    Turning off and on interrupts Interrupts are an efficient dialogue mechanism, but sometimes you don't want to interrupt the program while it is running. For example, when you are printing something, the program suddenly interrupts and another ...
  • Learn ARM development(21)
    First, declare the task pointer, because it will be used later. Task pointer volatile TASK_TCB* volatile g_pCurrentTask = NULL;volatile TASK_TCB* vol ...
  • Learn ARM development(20)
    With the previous Tick interrupt, the basic task switching conditions are ready. However, this "easterly" is also difficult to understand. Only through continuous practice can we understand it. ...
  • Learn ARM development(19)
    After many days of hard work, I finally got the interrupt working. But in order to allow RTOS to use timer interrupts, what kind of interrupts can be implemented in S3C44B0? There are two methods in S3C44B0. ...
  • Learn ARM development(14)
  • Learn ARM development(15)
  • Learn ARM development(16)
  • Learn ARM development(17)
Change More Related Popular Components

EEWorld
subscription
account

EEWorld
service
account

Automotive
development
circle

About Us Customer Service Contact Information Datasheet Sitemap LatestNews


Room 1530, 15th Floor, Building B, No.18 Zhongguancun Street, Haidian District, Beijing, Postal Code: 100190 China Telephone: 008610 8235 0740

Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号