登录/注册

stm32f1 adc精度

更多

STM32F1 系列的 ADC(模数转换器)的理论精度为 12 位,对应的分辨率为 1 LSB(最低有效位),即满量程(如 3.3V 参考电压)下可区分的最小电压变化约为 0.8mV(3.3V/4096)。但在实际应用中,ADC 的精度会受到以下因素的影响:


影响 ADC 精度的主要因素

  1. 电源噪声和参考电压稳定性

    • ADC 的参考电压(VREF)波动会直接影响精度。建议使用低噪声、高稳定性的参考电压源(如外部基准源)。
    • 电源纹波需尽量小,建议对模拟电源(VDDA)和地(VSSA)进行滤波(如 RC 滤波或磁珠隔离)。
  2. PCB 布局与接地

    • 模拟信号走线应远离数字信号和高频信号,避免耦合噪声。
    • 确保模拟地(AGND)和数字地(DGND)单点连接,避免地环路干扰。
  3. 采样时间设置

    • 输入信号的源阻抗较高时,需延长 ADC 的采样时间(通过 SAMPLETIME 寄存器配置),确保采样电容充分充电。
  4. 外部信号源阻抗

    • 信号源阻抗过高会导致采样失真。建议在信号源与 ADC 输入之间串联电阻(如 100Ω~1kΩ)并并联小电容(如 100pF~1nF),形成低通滤波。
  5. 温度漂移

    • ADC 的增益和偏移会随温度变化,高温环境下误差可能增大。若需高精度,需进行温度补偿或校准。
  6. 校准

    • STM32F1 的 ADC 支持内部校准(通过 ADC_Calibration 函数),上电后建议执行校准以减小偏移误差。

提高 ADC 精度的建议

  1. 使用外部参考电压

    • 外接高精度基准源(如 TL431、REF3025 等),替代内部 VREF(受电源噪声影响较大)。
  2. 优化采样配置

    • 根据信号频率设置合理的采样时间,确保信号稳定。
    • 降低 ADC 时钟频率(不超过 14 MHz,通常设为 12 MHz)。
  3. 软件滤波

    • 通过多次采样取平均(如 8~64 次)或中值滤波,抑制随机噪声。
  4. 隔离模拟与数字电路

    • 在 PCB 上单独划分模拟区域,使用独立电源层和地平面。

典型误差范围


关键代码配置示例

// 初始化 ADC 并校准
ADC_InitTypeDef ADC_InitStructure;
ADC_DeInit(ADC1);
ADC_InitStructure.ADC_Mode = ADC_Mode_Independent;
ADC_InitStructure.ADC_ScanConvMode = DISABLE;
ADC_InitStructure.ADC_ContinuousConvMode = DISABLE;
ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_None;
ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right;
ADC_InitStructure.ADC_NbrOfChannel = 1;
ADC_Init(ADC1, &ADC_InitStructure);

// 启用 ADC 校准
ADC_Cmd(ADC1, ENABLE);
ADC_ResetCalibration(ADC1);
while (ADC_GetResetCalibrationStatus(ADC1));
ADC_StartCalibration(ADC1);
while (ADC_GetCalibrationStatus(ADC1));

// 设置采样时间(例如通道 0,采样时间 239.5 周期)
ADC_RegularChannelConfig(ADC1, ADC_Channel_0, 1, ADC_SampleTime_239Cycles5);

通过硬件优化和软件处理,可显著提升 STM32F1 ADC 的实际精度。

STM32F1内部ADC的DUAL MODE的使用问题求解

我想利用STM32F1内部的ADC采集四路电压值,因为要求同时采集,所以我使用了ADC的DUAL MODE,可是由于始终未能读明白芯片手册!

2024-05-09 06:51:50

STM32F1的SPI模块协议介绍

SPI是是一种高速的,全双工,同步的总线通信方式。STM32F1低中容量设备的SPI模块支持主从两种模式。

2023-07-24 15:32:46

STM32F1 USB外设在USB系统的位置

STM32F1 USB外设实现了USB2.0全速总线和APB1总线间的接口。

2023-07-17 15:43:05

STM32F1 ADC和DMA的简单理解

本文主要讲解stm32f1中ADC和DMA的使用,在学习中参考了多篇文章,感谢前辈的付出。STM32F10X

资料下载 佚名 2021-12-27 19:09:32

STM32F1F4的区别

STM32F1和F4的区别

资料下载 佚名 2021-12-04 13:51:05

STM32F1官方手册资料(中英文)

STM32F1官方手册资料(中英文)

资料下载 就是小飞侠 2021-11-05 16:28:28

STM32F1系列芯片中文参考手册

STM32F1系列芯片中文参考手册(嵌入式开发培训教程)-STM32F1系列芯片的中文用户手册

资料下载 佚名 2021-07-30 09:32:01

STM32F1系列的HAL库手册免费下载

本文档的主要内容详细介绍的是STM32F1系列单片机的HAL库手册免费下载。

资料下载 佚名 2019-11-19 14:36:20

STM32F1系列单片机的时钟系统

  这是stm32的时钟系统,时钟与单片机的关系就好比心脏与人的关系一样,它为单片机的运行提供时间基准。STM32F1系列单片机的时钟树请看图1

2023-03-23 17:44:21

STM32F1 ADC主要特性和结构框图解析

STM32F1 ADC简介 ADC(analog to digital converter)即模数转换器,它可以将模拟信号转换为数字信号。按照其

2022-07-13 11:45:03

STM32F1 ADC主要特性和结构框图

放在 ADC_DR 寄存器内,注入组的数据放在 JDRx 内。因为 STM32F1 的 ADC 是 12 位转换

2022-07-13 11:29:25

关于stm32f1中的ADC和DMA理解

怎样去校准stm32f1中的ADC呢?怎样去理解stm32f1中的ADC

2022-02-21 06:05:23

STM32F1ADC2如何使用DMA功能 USART过载错误Overrun error

STM32F1的ADC2如何使用DMA功能,USART过载错误Overrun error

2020-03-14 14:42:01

STM32F1系列DEBUG调试功能需要配置吗?

STM32F1系列的DEBUG调试功能需要配置吗?

2020-03-01 13:57:43

不建议使用STM32F1的RTC实现日历功能

不建议用STM32F1的RTC实现日历功能

2020-02-28 17:20:42

7天热门专题 换一换
相关标签