OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 1537|回复: 4

请教关于STM32F1 ADC校准值的问题

[复制链接]

33

主题

159

帖子

0

精华

高级会员

Rank: 4

积分
527
金钱
527
注册时间
2017-1-21
在线时间
192 小时
发表于 2023-10-20 22:03:48 | 显示全部楼层 |阅读模式
10金钱

这么多年用STM32F1也没纠结过它的ADC校准值的问题,默认在ADC上电初始化的时候执行完如下的校准过程就可以开始AD采样了。

ADC_StartCalibration(ADC1);
while (ADC_GetCalibrationStatus(ADC1));

最近转某国产mcu,在上电初始化的时候同样执行ADC校准,
在等待ADC校准完成后,需要获取校准值并保存为一个变量。
然后在程序中,需要对每一次AD实际采样值加上这个校准值变量,才准确。

然后去看了STM32的数据手册,也只是说校准之后,校准数据会被保存到DR寄存器,
并没有提到说校准之后,校准值会被直接用到实际采样数据中。

所以来请教一下大家,STM32F1的校准值到底咋回事。

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

16

主题

426

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2671
金钱
2671
注册时间
2018-11-8
在线时间
430 小时
发表于 2023-10-21 10:51:13 | 显示全部楼层
11.4 校准
ADC有一个内置自校准模式。校准可大幅减小因内部电容器组的变化而造成的准精度误差。在
校准期间,在每个电容器上都会计算出一个误差修正码(数字值),这个码用于消除在随后的转换
中每个电容器上产生的误差。
通过设置ADC_CR2寄存器的CAL位启动校准。一旦校准结束,CAL位被硬件复位,可以开始正
常转换。建议在上电时执行一次ADC校准。校准阶段结束后,校准码储存在ADC_DR中。
注意: 1 建议在每次上电后执行一次校准。
2 启动校准前,ADC必须处于关电状态(ADON=’0’)超过至少两个ADC时钟周期。

ST的也说这个数据用于消除之后转换的误差了啊
回复

使用道具 举报

33

主题

159

帖子

0

精华

高级会员

Rank: 4

积分
527
金钱
527
注册时间
2017-1-21
在线时间
192 小时
 楼主| 发表于 2023-10-21 11:11:53 | 显示全部楼层
本帖最后由 oyixi001 于 2023-10-21 11:14 编辑
babyrabbit 发表于 2023-10-21 10:51
11.4 校准
ADC有一个内置自校准模式。校准可大幅减小因内部电容器组的变化而造成的准精度误差。在
校准期 ...

是的,以前也是这么理解。
关键现在这个国产MCU,他也是这么写的。
所以重新看这句话就变得有歧义了,它只是说“这个校准码用于在随后的转换中消除误差”,但是没说会自动消除误差(自动修正实际采样值)。
所以需不需要在程序里在手动处理呢。
回复

使用道具 举报

16

主题

426

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2671
金钱
2671
注册时间
2018-11-8
在线时间
430 小时
发表于 2023-10-21 11:33:43 | 显示全部楼层
oyixi001 发表于 2023-10-21 11:11
是的,以前也是这么理解。
关键现在这个国产MCU,他也是这么写的。
所以重新看这句话就变得有歧义了, ...

不知道啊 我每次都在初始化时开这个校准 但是后续没有用这个数 就当他内部自己校准了吧

另外 刚才试了若干次  每次初始化执行校准后的DR寄存器值是0x47
如果要修正的话 这个值对应的电压都57mV了 如果加上就太扯淡了
而且这个值理论上是u16的 岂不是只能补偿正公差 负公差解决不了……
如果要准确的话 我一般都是每次采集前采集内部Vref 然后把Vref当1210mV计算 实测效果还是可以的 再补的话 感觉问题就大了
回复

使用道具 举报

33

主题

159

帖子

0

精华

高级会员

Rank: 4

积分
527
金钱
527
注册时间
2017-1-21
在线时间
192 小时
 楼主| 发表于 2023-10-21 12:04:14 | 显示全部楼层
babyrabbit 发表于 2023-10-21 11:33
不知道啊 我每次都在初始化时开这个校准 但是后续没有用这个数 就当他内部自己校准了吧

另外 刚才试了 ...

是诶,这么多年用STM32也没手动加过。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-23 19:39

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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