2025世俱杯

深度解析:STM32 ADC 自身误差来源大揭秘

出处:网络整理 发布于:2025-06-06 16:08:32

在嵌入式开发领域,M32 (模数)的精度至关重要。本文章将深入研究影响 STM32 ADC 精度的主要误差来源,为嵌入式开发中遇到采样问题时提供全面且深入的参考思路。


误差,通俗来讲,就是真实数据与理想数据之间的偏差。ADC 的误差存在于所有的中,而转换精度将取决于 ADC 器件的误差消除情况。STM32 数据手册的 ADC 特性描述章节对这些误差的来源进行了分析,并规定了 STM32 的 ADC 的不同精度误差类型。为了便于叙述,我们将精度误差用 1 LSB(有效位)的倍数来表示。对于电压的采样而言,分辨率取决于 ADC 的转换位数和外部提供的参考电压,通过将 LSB 数乘以 1 LSB 对应的电压,我们可以计算出电压误差。

ADC 自身设计带来的误差

偏移误差


偏移误差指的是次实际转换和次理想转换之间的偏离。次转换发生在数字 ADC 输出从 0 变为 1 时。理想情况下,当模拟输入介于 0.5 LSB 和 1.5 LSB 之间时,数字输出应为 1,且次转换发生在 0.5 LSB 处,用 EO 表示偏移误差。偏移误差可以通过一些方法轻松校准。


在 STM32 ADC 的采样中,电压的可被测量的电压用 LSB 作为单位进行量化。在 VREF+ = VDDA,ADC 为 12bit 的情况下,1 LSB = (VREF+) / 4096。如果 VREF+ = 3.3 V,那么在理想情况下,1LSB = 805.6μV。此时,402.8 μV(0.5 LSB = 0.5 × 805.6 μV)的输入应该会转换成数字 1 输出。但实际上,ADC 转换的数字输出可能仍然是读数 0。若 550 μV 的模拟电压输入才获得数字输出 1,则偏移误差 = 实际转换 – 理想转换,即 EO = 550 μV – 402.8 μV = 141.2 μV,EO = 141.2 μV / 805.6 μV = 0.17 LSB。当大于 0.5 LSB 的模拟输入电压生成次转换时,偏移误差为正;反之则为负。

增益误差


增益误差是指实际转换和理想转换之间的偏离,用 EG 表示。实际转换是从 0xFFE 到 0xFFF 的转换。理想情况下,当模拟输入等于 VREF+ – 0.5 LSB 时,应存在从 0xFFE 到 0xFFF 的转换。对于 VREF+ = 3.3 V,理想转换应发生在 3.299597 V 处。


如果 ADC 提供 VAIN <VREF+ – 0.5 LSB 的 0xFFF 读数,将获得负增益误差。例如,若 VREF+ = 3.3 V 且 VAIN = 3.298435 V 时生成从 0xFFE 到 0xFFF 的转换,则 EG = 3.298435 V – 3.299597 V = –1162 μV,EG = (–1162 μV / 805.6 V) LSB = –1.44 LSB。当 VAIN 等于 VREF+ 时没有得到满量程读数(0xFFF),则增益误差为正。

微分线性误差


微分线性误差(DLE)是指实际步进和理想步进之间的偏离,用 ED 表示。这里的 “理想情况” 并非指理想传输曲线,而是指 ADC 分辨率。理想情况下,1 LSB 的模拟输入电压变化量应导致数字量变化。如果需要大于 1 LSB 的模拟输入电压才能导致数字代码变化,就会观察到微分线性误差。


假设 1.9998 V 至 2.0014 V 模拟输入电压范围内的数字输出相同,步宽为 2.0014V – 1.9998V = 1.6mV。因此,ED 等于较高(2.0014 V)和较低(1.9998 V)模拟电压之间的电压差减去 1 LSB 所对应的电压。若 VREF+ = 3.3 V,则 1.9998 V(0x9B1)的模拟输入可提供介于 0x9B0 和 0x9B2 之间的结果,2.0014 V(0x9B3)的输入可提供介于 0x9B2 和 0x9B4 之间的结果。所以,0x9B2 步进所对应的总电压变化量为 2.0014 V – 1.9998 V = 1.6 mV(1660 μV),ED = 1660 μV – 805.6 μV = 854.4 μV,ED = (854.4 μV / 805.6 μV) LSB = 1.06 LSB。假设当步宽小于 1 LSB 时,电压高于 2.0014 V 不会导致 0x9B2 数字代码,则 ED 为负。

积分线性误差


积分线性误差是指任何实际转换和端点相关线间的偏离,用 EL 表示,也称为积分非线性(INL)误差。端点相关线可以定义为 A/D 传输曲线上连接次实际转换与实际转换的线。EL 是指与每转换的这条线的偏离,因此端点相关线对应于实际传输曲线,与理想传输曲线无关。ILE 是整个范围内 DLE 的积分。


例如,如果从 0 到 1 的次转换发生在 550 μV 处,并且转换(0xFFE 到 0xFFF)发生在 3.298435 V(增益误差)处,则传输曲线上连接实际数字代码 0x1 和 0xFFF 的线为端点相关线。

总未调整的误差


总未调整误差(TUE)是指实际和理想传输曲线间的偏离。TUE 是记录到的任何输入电压的理想预期值与从 ADC 获得的实际值之间的偏离,但它不是 EO、EG、EL 与 ED 之和。偏移误差影响较低电压的数字结果,而增益误差影响较高电压的数字输出。


例如,如果 VREF+ = 3.3 V 且 VAIN = 2 V,则理想结果为 0x9B2。但如果得到的转换结果为 0x9B4,由于 DLE 和 ILE 同时发生,因此偏离可能源于偏移。TUE = (实际值 – 理想情况值) = 0x9B4 – 0x9B2 = 0x2 = 2 LSB。

关键词:STM32

版权与免责声明

凡本网注明“出处:维库电子市场网”的所有作品,版权均属于维库电子市场网,转载请必须注明维库电子市场网,//qvqwriy.cn,违反者本网将追究相关法律责任。

本网转载并注明自其它出处的作品,目的在于传递更多信息,并不代表本网赞同其观点或证实其内容的真实性,不承担此类作品侵权行为的直接责任及连带责任。其他媒体、网站或个人从本网转载时,必须保留本网注明的作品出处,并自负版权等法律责任。

如涉及作品内容、版权等问题,请在作品发表之日起一周内与本网联系,否则视为放弃相关权利。

OEM清单文件: OEM清单文件
*公司名:
*联系人:
*手机号码:
QQ:
有效期:

扫码下载APP,
 一键连接广大的电子世界。

在线人工客服

买家服务:
卖家服务:
技术客服:

0571-85317607

网站技术支持

13606545031

客服在线时间周一至周五
9:00-17:30

关注官方微信号,
第一时间获取资讯。

建议反馈

联系人:

联系方式:

按住滑块,拖拽到最右边
>>
感谢您向阿库提出的宝贵意见,您的参与是维库提升服务的动力!意见一经采纳,将有感恩红包奉上哦!