OpenEdv-开源电子网

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

求助H743 ADC+DMA双缓冲,在DMA传输完成中断中处理DMA数据出现问题

[复制链接]

85

主题

249

帖子

0

精华

高级会员

Rank: 4

积分
674
金钱
674
注册时间
2020-12-5
在线时间
202 小时
发表于 2021-11-26 10:35:30 | 显示全部楼层 |阅读模式
1金钱
阿波罗板h743,最近在写ADC+DMA双缓冲的程序,调试之后发现问题。ADC由外部中断信号触发采集(检查过外部中断信号无问题),通过DMA双缓冲模式分别存进相应的数组中并对数据进行处理。由于我每次采集的电压是有规律的信号,所以我可以知道采集出来的数据是否是准确的。设置ADCCLK2分频为32mhz,采样周期是最快的1.5,当外部触发ADC采集的信号速率为50khz的时候,我设置ADC分辨率为16bit,14bit,12bit后双缓冲得到的数据是,16bit的每组数据都正常,12bit和14bit的都是一组正常,一组异常。
异常.png
由于低速时候是分辨率为16bit时数据均正常,我将外部触发ADC采集的信号速率提高到1mhz,经过计算16bit在ADCCLK为32mhz下的最高转换速率是3.33mhz,所以对于1mhz的外部触发采集是完全可以胜任的,但是出现的数据均为异常,目前在考虑是不是DMA与Dcache之间的配置没有搞好,我每次在读取数据的时候都会清一下cache,可数据还是很诡异,请问大家有没有这方面的经验
异常2.png
代码配置如下:
双缓冲数组定义:32字节对齐
数组定义.png
dma配置:
dma.png
adc配置:
adc.png
时钟配置:
msp.png
dma双缓冲回调:(读内存数组数据的时候清Dcache)
回调.png

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

使用道具 举报

1

主题

385

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1023
金钱
1023
注册时间
2019-9-21
在线时间
269 小时
发表于 2021-11-26 10:59:48 | 显示全部楼层
回复

使用道具 举报

85

主题

249

帖子

0

精华

高级会员

Rank: 4

积分
674
金钱
674
注册时间
2020-12-5
在线时间
202 小时
 楼主| 发表于 2021-11-26 11:16:19 | 显示全部楼层
gjs13030247996 发表于 2021-11-26 10:59
可以参考一下这个链接看一下:https://blog.csdn.net/FINE_ii/article/details/86479165

感谢您,我去看了一下,这个链接里面主要是解决读不到数据的问题,我这边也是调试过一段时间以后可以读到DMA中的数据,但是这个数据我测试过是不准确的
回复

使用道具 举报

2

主题

592

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1458
金钱
1458
注册时间
2019-7-28
在线时间
137 小时
发表于 2021-11-26 11:41:46 | 显示全部楼层
帮顶  
回复

使用道具 举报

85

主题

249

帖子

0

精华

高级会员

Rank: 4

积分
674
金钱
674
注册时间
2020-12-5
在线时间
202 小时
 楼主| 发表于 2021-11-26 15:48:50 | 显示全部楼层
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165371
金钱
165371
注册时间
2010-12-1
在线时间
2110 小时
发表于 2021-11-27 23:37:09 | 显示全部楼层
为何要用外部触发? 是有什么机制么? 可以考虑用定时器触发dma采集,并简化为单DMA采集(不用双缓冲),以此来排除一下问题。
回复

使用道具 举报

85

主题

249

帖子

0

精华

高级会员

Rank: 4

积分
674
金钱
674
注册时间
2020-12-5
在线时间
202 小时
 楼主| 发表于 2021-11-28 10:54:47 | 显示全部楼层
正点原子 发表于 2021-11-27 23:37
为何要用外部触发? 是有什么机制么? 可以考虑用定时器触发dma采集,并简化为单DMA采集(不用双缓冲),以 ...

是的,这个项目就是用外部中断信号来触发ADC采集的,我用单dma也出现了这样的问题
回复

使用道具 举报

1

主题

14

帖子

0

精华

新手入门

积分
17
金钱
17
注册时间
2021-11-29
在线时间
0 小时
发表于 2021-11-29 18:07:47 | 显示全部楼层
#在这里快速回复#有经常使用stm32h743iit6和 stm32f429iit6这两个型号MCU的研发兄弟,如在开发测试需要和项目量产过程中需遇到采购相关的问题和困难,可留言与我联系,也许我能帮助您解决这类问题。如有需要,欢迎加微信(xuanran-1031)进一步沟通,谢谢!
回复

使用道具 举报

10

主题

31

帖子

0

精华

初级会员

Rank: 2

积分
69
金钱
69
注册时间
2021-4-8
在线时间
26 小时
发表于 2021-12-13 14:54:40 | 显示全部楼层
H743DMA读不到数据是什么回事儿呀,就最简单的ADC单通道DMA发送不了数据,数组一直是空的,上面改基地址试过也不行。
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-2-26 09:55

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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