OpenEdv-开源电子网

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

STM32H7A3RGT6芯片的AD采集问题?

[复制链接]

5

主题

39

帖子

0

精华

高级会员

Rank: 4

积分
537
金钱
537
注册时间
2017-7-23
在线时间
57 小时
发表于 2021-7-28 17:05:17 | 显示全部楼层 |阅读模式
30金钱
用STM32H7A3RGT6芯片的16位AD去采集由信号发生器产生的波形,不管是正弦波、三角波还是其他波形,采集到的数据曲线每间隔固定的区间就会出现一次跳变现象,AD配置能改的基本上都改过了,跳变现象一直稳定的存在。用STM32H743的芯片,完全相同的配置,得到的曲线没有跳变。所以想问问有没有人遇到了同样的问题?感觉像是这款芯片本身的问题。
跳变01.png

最佳答案

查看完整内容[请看2#楼]

已经找到解决问题的办法:造成这种问题的根本原因在于这款芯片的ADC结构本身精确度并不完美,所以需要对其进行软件校准,来弥补精度上的欠缺。但是在以往资料中出现过的软件校准只有这一句: if (HAL_ADCEx_Calibration_Start(&hadc2, ADC_CALIB_OFFSET, ADC_SINGLE_ENDED) != HAL_OK) { Error_Handler(); } 常说的软件校准一般都是指这个。但是很早之前尝试过这个了,发现不管有没有这一句,结果都没什么变化,跳变现象还 ...
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

5

主题

39

帖子

0

精华

高级会员

Rank: 4

积分
537
金钱
537
注册时间
2017-7-23
在线时间
57 小时
 楼主| 发表于 2021-7-28 17:05:18 | 显示全部楼层
已经找到解决问题的办法:造成这种问题的根本原因在于这款芯片的ADC结构本身精确度并不完美,所以需要对其进行软件校准,来弥补精度上的欠缺。但是在以往资料中出现过的软件校准只有这一句:       
if (HAL_ADCEx_Calibration_Start(&hadc2, ADC_CALIB_OFFSET, ADC_SINGLE_ENDED) != HAL_OK)
{
        Error_Handler();
}
常说的软件校准一般都是指这个。但是很早之前尝试过这个了,发现不管有没有这一句,结果都没什么变化,跳变现象还是会很稳定的出现。后来经过各种尝试,包括联系ST公司技术工程师,最终发现应该加上这一句:
if (HAL_ADCEx_Calibration_Start(&hadc2, ADC_CALIB_OFFSET_LINEARITY, ADC_SINGLE_ENDED) != HAL_OK)
{
        Error_Handler();
}
也就是ADC线性度校准,其实就是上面那句中把第二个参数换成了ADC_CALIB_OFFSET_LINEARITY。进行线性校准之后,跳变现象永久的消失了,并且没有再出现过,世界清静了!
个人观点:芯片内置ADC本身存在缺陷,需要用用软件校准的方式来弥补缺陷。
回复

使用道具 举报

3

主题

821

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3359
金钱
3359
注册时间
2011-11-10
在线时间
207 小时
发表于 2021-7-28 23:45:52 | 显示全部楼层
看起来挺规律的,貌似传导干扰。
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165377
金钱
165377
注册时间
2010-12-1
在线时间
2111 小时
发表于 2021-7-29 01:56:05 | 显示全部楼层
木有,帮顶
回复

使用道具 举报

4

主题

896

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4309
金钱
4309
注册时间
2019-9-4
在线时间
896 小时
发表于 2021-7-29 09:35:30 | 显示全部楼层
帮顶   
回复

使用道具 举报

5

主题

39

帖子

0

精华

高级会员

Rank: 4

积分
537
金钱
537
注册时间
2017-7-23
在线时间
57 小时
 楼主| 发表于 2021-8-5 18:40:04 | 显示全部楼层
对于16位的AD,AD值每间隔1024就会出现一次跳变,相邻2次跳变的表现不同(如上图所示),MCU外接的电源偶尔会影响波形(使跳变现象消失),但是经过测试,二者之间没有必然的联系。同样的电路、同样的AD配置,STM32H743的芯片不会出现这种现象,但是STM32H7A3RGT6的芯片就会出现。
回复

使用道具 举报

5

主题

39

帖子

0

精华

高级会员

Rank: 4

积分
537
金钱
537
注册时间
2017-7-23
在线时间
57 小时
 楼主| 发表于 2021-8-5 18:44:47 | 显示全部楼层
有自己的想法或者遇到过类似问题的同学,欢迎讨论,对好的回复给30个金钱作为回报!
回复

使用道具 举报

13

主题

250

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2248
金钱
2248
注册时间
2019-8-7
在线时间
364 小时
发表于 2021-8-6 11:14:01 | 显示全部楼层
AD的参考电压波动可能会有影响 不过楼主的电路在其他芯片测试又是没有 插眼看大佬想法
回复

使用道具 举报

5

主题

39

帖子

0

精华

高级会员

Rank: 4

积分
537
金钱
537
注册时间
2017-7-23
在线时间
57 小时
 楼主| 发表于 2021-8-10 11:37:45 | 显示全部楼层
在用AD采集一些连续变化的数据并需要查看波形的时候,很容易就会发现这个问题。而且,目前只在STM32H7A3RGT6的芯片上发现了这个现象,其他芯片都没问题。也就是说,可能这款芯片,或者这款芯片我们用的这一批,在某个地方跟以往的芯片都有所不同。就是这个差异导致了结果的不同。
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-2-27 05:30

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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