搜索
查看: 1370|回复: 2

[中文资料] 【中文文档】AN4073_使用STM32F2xx和STM32F4xx微控制器时如何提...

[复制链接]

该用户从未签到

1492

主题

2703

帖子

0

蝴蝶豆

管理员

最后登录
2021-5-11
发表于 2019-4-4 10:21:13 | 显示全部楼层 |阅读模式
使用 STM32F2xx 和 STM32F4xx 微控制器时如何提高 ADC 测量精度

前言

本应用笔记旨在展示对于使用 STM32F2xx 和 STM32F4xx 微控制器的应用,怎样提高其A/D 转换的精度。

本文还讲解了可应用于降低 ADC 误差的固件方法,给出了为得到更好的 ADC 精度,编写固件的一些通用技巧。

请注意,本应用笔记提供的数据仅供参考。除非特别指出,测量条件皆为实验室典型条件而非生产环境。

表 1 列出了本应用笔记涉及的微控制器。
1.png

1 会影响 ADC 精度的参数概述

模数转换的精度会影响系统的质量和效率。为提高精度,您需要理解与 ADC 有关的误差,以及对它们有影响的参数。

ADC 本身无法确保结果的精度。它取决于您的系统设计。因此,在您开始开发之前,需要仔细的做些准备。

具体影响 ADC 精度的参数与应用密切相关。比较常见的因素有:PCB 布局、参考电压源、I/O 切换所造成的影响和模拟输入源的输出阻抗。

若需 ADC 误差的更详细信息,请参考应用笔记 AN2834:如何在 STM32F10xxx 器件中得到最佳的 ADC 精度及 AN3137:STM8L 器件上的 A/D 转换器。

2 提高转换精度的固件技巧

2.1 平均

平均是一个简单的技巧,即您对模拟输入多次采样,取所有转换结果的均值。此技巧有助于消除模拟输入上的噪声或错误转换的影响。

2.1.1 平均 N 个 ADC 采样

当使用此方法时,采样数最好为 2 的倍数 (N 应为 2 的倍数)。这会使平均计算更有效率,因为对转换值之和求平均时的除法可通过向右移位做到。这节省了 CPU 时间和执行除法算法所需的代码存储器 (在 Cortex-Mx 内核中,右移操作仅花费 1 个 CPU 周期)。
1.png

此平均技巧用于测量一个模拟输入引脚上的电压。总共 N 个转换计算平均。这在固件中用循环做到。

1.png

总转换时间 = (采样数 * ADC 转换时间) + 计算时间。

计算时间 = 读取结果、相加、将总数除以采样数的平均计算所花费的时间。

总转换时间和用于平均的采样数之间存在折中,取决于模拟信号的变化范围及计算可用的时间。

注: 若需所用代码源的更详细信息,请参考附录 A。

2.1.2 平均 N-X 个 ADC 采样

此方法基于先取 N 个 ADC 采样,将它们从最大值到最小值 (或相反顺序)排序,然后删除两端的 X 个采样。

建议选择 N 和 X 为 2 的倍数。

此平均方法比之前一个更有效,因为它删除了会影响平均的两端值,而且它在执行时间和转换精度之间给出了一个较好的折中。

...........

想了解更多,请下载原文阅读

回复

使用道具 举报

该用户从未签到

6

主题

1029

帖子

133

蝴蝶豆

金牌会员

最后登录
2021-4-24
发表于 2019-4-8 09:48:30 | 显示全部楼层
点赞
回复

使用道具 举报

该用户从未签到

1

主题

127

帖子

14

蝴蝶豆

高级会员

最后登录
2023-5-26
发表于 2019-5-26 23:41:53 | 显示全部楼层
支持~~~~~~~~~~~
回复

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条

Archiver|手机版|小黑屋|论坛-意法半导体STM32/STM8技术社区

GMT+8, 2024-4-20 00:54 , Processed in 0.156393 second(s), 34 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表