打印
[APM32F1]

如何提高APM32F103C8T6的ADC外设精度

[复制链接]
574|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
a976209770|  楼主 | 2023-9-1 10:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 a976209770 于 2023-9-1 10:47 编辑

如何提高APM32F103C8T6的ADC外设精度引言
APM32F103C8T6微控制器具有内置的模数转换器(ADC),但在某些应用场景下,您可能会发现默认设置并不能满足精度要求。本文将专门探讨如何优化APM32F103C8T6的ADC性能和精度。
基本原理和问题ADC精度因素
  • 分辨率
  • 电源电压波动
  • 温度波动
  • 电磁干扰

精度提升策略1. 电源和参考电压
问题:电源噪声和电压不稳定会影响ADC的精度。
解决方案:
  • 使用稳定的电源
  • 添加去耦电容
  • 使用外部精准的参考电压源

2. 采样时间配置
问题:过短的采样时间可能导致转换不准确。
解决方案:
  • 增加ADC采样时间
  • 对输入信号进行滤波处理
  • 代码示例:
  • // 设置ADC1采样时间为239.5周期ADC1->SMPR2 |= ADC_SMPR2_SMP_ANx(ADC_SMPR_SMP_239DOT5CYC, x);



3. 温度补偿
问题:高温环境下,ADC性能可能下降。
解决方案:
  • 使用内置温度传感器进行补偿
  • 在固件里进行温度校准

4. 电磁屏蔽
问题:电磁干扰(EMI)可以通过电缆或空气传播,影响ADC的精度。
解决方案:
  • 使用屏蔽电缆
  • 在ADC输入处添加低通滤波器

5. 多次采样与平均
问题:噪声和其他随机因素。
解决方案:
  • 进行多次采样并求平均
  • 使用中位数滤波器去除异常值

  • 八次平均代码示例:
  • uint32_t adc_values[8];
  • uint32_t adc_sum = 0;
  • uint32_t adc_min = 0xFFFFFFFF;
  • // 初始化为最大值
  • uint32_t adc_max = 0;         
  • // 初始化为最小值
  • // 进行8次ADC采样
  • for(int i = 0; i < 8; i++)
  • {    adc_values = ADC1->DR;
  • // 假设ADC数据已经准备好   
  • adc_sum += adc_values;   
  • // 更新最小和最大值   
  • if(adc_values < adc_min)
  • {      
  • adc_min = adc_values;   
  • }   
  • if(adc_values > adc_max)
  • {
  •        adc_max = adc_values;   
  • }}
  • // 去掉最高和最低值后求平均
  • adc_sum = adc_sum - adc_min - adc_max;
  • uint32_t adc_avg = adc_sum / 6;



实验与验证
建议在实际应用中进行详细的性能测试,以确认以上优化方案的效果。可以通过对比优化前后的结果,进行量化分析。
总结
APM32F103C8T6的ADC外设虽然已经具备不错的性能,但在高精度要求的应用场合还有优化的空间。通过电源管理、合理的配置和软件算法,我们有可能进一步提高其ADC精度。**这篇文章能为你的项目带来帮助。

使用特权

评论回复
沙发
lamanius| | 2023-11-15 12:48 | 只看该作者
主频 提高一些,试试,也许会可以

使用特权

评论回复
板凳
q1ngt12| | 2023-11-15 13:51 | 只看该作者
正常是需要一个好一点的采样电源

使用特权

评论回复
地板
suw12q| | 2023-11-15 15:07 | 只看该作者
电路设计部分需要有个比较合规合理的设计才行

使用特权

评论回复
5
tax2r6c| | 2023-11-15 17:08 | 只看该作者
ADC精度好像需要跟基准电压有关系吧

使用特权

评论回复
6
ex7s4| | 2023-11-15 18:14 | 只看该作者
你这想要提升ADC精度,不如外置ADC,比较好

使用特权

评论回复
7
t1ngus4| | 2023-11-15 19:24 | 只看该作者
ADC可以试试多次采样去平均值,也许能提升一些

使用特权

评论回复
8
w2nme1ai7| | 2023-11-16 08:54 | 只看该作者
大多数是需要滤波,就是用算法滤波

使用特权

评论回复
9
zhizia4f| | 2023-11-16 09:57 | 只看该作者
一般可以用个外置的ADC芯片吧,这样效果会更好点

使用特权

评论回复
10
lix1yr| | 2023-11-16 11:15 | 只看该作者
你这ADC提升精度效果还挺明显的,确实多次采样与平均是OK的

使用特权

评论回复
11
g0d5xs| | 2023-11-16 15:20 | 只看该作者
温度补偿好像可以用算法能实现的,这个但是我没咋用过

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

12

主题

14

帖子

0

粉丝