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

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管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版