你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

DMA 传输一半中断

[复制链接]
飞儿 提问时间:2016-11-7 10:57 /
阅读主题, 点击返回1楼
收藏 2 评论44 发布时间:2016-11-7 10:57
44个回答
飞儿 回答时间:2016-11-10 09:16:36
安 发表于 2016-11-8 14:12
103测试,ADC采集1000个数据,当HT产生时CNDTR值为491,TC产生时CNDTR的值为0。
如果在HT产生时加了中断, ...

没错,我也测试过了,我的CNDTR也是对的。但是HT产生中断所需要的时间却是和TC产生所需要的时间一样,这怎么解释?
飞儿 回答时间:2016-11-10 09:17:04
五哥1 发表于 2016-11-8 11:24
根据楼主的情况,结合以往,绝大多数的问题都是提出问题的楼主自行解决的,因为所有发言的人都是在你提供的 ...

所有源码都贴上了,你还看不懂,真无语
飞儿 回答时间:2016-11-10 09:22:53
安 发表于 2016-11-8 14:12
103测试,ADC采集1000个数据,当HT产生时CNDTR值为491,TC产生时CNDTR的值为0。
如果在HT产生时加了中断, ...

我就说我这边的时间: 我是ADC DMA方式, ADC采样2.2us采集一次。   DMA buff大小500,理论上TC中断一次需要1100us,HT中断一次需要550us。  结果测出来HT也是1100us中断一次。
废鱼 回答时间:2016-11-10 11:07:32
我测试1us下,HT和TC产生的中断和下次产生的间隔相差为500us,我用的是1000组采集。定时器为10us。如下:
ADC_ConvHalfCp:9029,496
ConvCplt:9029,0
ADC_ConvHalfCp:9079,496
ConvCplt:9079,0
ADC_ConvHalfCp:9130,496
ConvCplt:9130,0
TC情况下测试的是1000us,定时器为10us,如下:
ConvCplt:190,0
ConvCplt:290,0
ConvCplt:391,0
ConvCplt:492,0
ConvCplt:593,0
ConvCplt:694,0
ConvCplt:794,0

评分

参与人数 1ST金币 +2 收起 理由
zero99 + 2

查看全部评分

飞儿 回答时间:2016-11-10 14:54:12
安 发表于 2016-11-10 11:07
我测试1us下,HT和TC产生的中断和下次产生的间隔相差为500us,我用的是1000组采集。定时器为10us。如下:
A ...

我看看你的源码,我跑一下试试
废鱼 回答时间:2016-11-10 15:38:49
我用的是103测试的。楼主可以看一下。
103_test.rar (3.12 MB, 下载次数: 107)
任风吹吹 回答时间:2016-11-10 17:52:31
这个应该是没有问题的,在音频应用方面,I2S传输,靠的就是它的DMA的HT和TC中断来对音频数据缓存来回交错传输到外部Codec,要是HT和TC没有,那音频没得玩了,估计是楼主那个地方忽略或理解错误。
飞儿 回答时间:2016-11-11 17:22:06
安 发表于 2016-11-10 15:38
我用的是103测试的。楼主可以看一下。

我明白了,我们的程序没问题。    是我误会了其中的意思了,半传输中断,只在DMA传输到一半时才产生。第一次中断是在传输了BUFF/2之时,  第二次中断也是在传输了BUFF/2之时。  两次中断间隔之间,其实传输了整个BUFF。 也就是说每中断一次需要的时间是传输整个BUFF的时间。也就是说TC中断时间=HT中断时间。

点评

感謝解惑!!  发表于 2017-10-27 17:36
peter001 回答时间:2016-11-12 01:43:57
建议在中断里快速将寄存器值转存一下,在主程序里分析,调试工具跟踪速度是跟不上DMA传送的速度的
andrewz 回答时间:2016-11-12 11:22:36
做技术最常见的就是相信自己过于相信别人...


st.png

但是问问题的时候,也是在花费别人的时间...
飞儿 回答时间:2016-11-12 16:35:30
andrewz 发表于 2016-11-12 11:22
做技术最常见的就是相信自己过于相信别人...

我很感谢那些帮助我的朋友,我反对那种一有问题就上来提问的人。但是,当你遇到瓶颈的时候,需要别人的帮助来获取灵感,思路越广,对解决问题就提供了更多的可能。如果你觉得这样花费别人的时间是没有意义,那我也无可厚非!
zero99 回答时间:2016-11-16 09:16:51
楼主找到原因了吗
xmshao 回答时间:2016-12-7 17:20:26
zero99 发表于 2016-11-16 09:16
楼主找到原因了吗

楼主没有什么实质问题。只是一个误解。
它虽然没开TC中断,但它计时是两次HT中断的时间,这个时间跟TC的时间是一致的。
zero99 回答时间:2016-12-8 08:44:01
xmshao 发表于 2016-12-7 17:20
楼主没有什么实质问题。只是一个误解。
它虽然没开TC中断,但它计时是两次HT中断的时间,这个时间跟TC的 ...

好的,谢谢
123

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版