打印
[STM8]

STM8L DMA之问题点滴

[复制链接]
2699|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
mengjicheng|  楼主 | 2016-3-12 23:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 mengjicheng 于 2016-3-12 23:21 编辑

最近本人在用AD的DMA功能,有两个AD通道,用定时器1触发踩样,时间为10US,DMA存贮数组100个,问题如下:
    1:这10US触发第一个通道转换一次,然后下一个10US又触发第二个通道一次吗?还是说10US触发一次后,连续的完成两个通道的转换?
    2:如果用两个AD通道,DMA计数100次,这时DMA中断的时间怎么算,是多少时间?,如果用一个AD通道呢,时间又是多少?(我实测是2个通道的比1个通道的DMA中断时间快,按道理应慢些)
   3:AD的数据在数组中是按AD通道的依次顺序存放的吗?
   4:选用DMA的循环计数模式,如按第3条成立,为什么数据存放会有错位
   5:进入DMA中断后,立即开始下一轮的触发转换中断了吗?(不然数据还没处理完,又一次把上次的数据给覆盖掉了)
以上问题点,谁能解答下,感激不尽,谢谢
沙发
mengjicheng|  楼主 | 2016-3-13 14:36 | 只看该作者
关注的人这么多,怎么没人解答呢,是我的描述不清吗

使用特权

评论回复
板凳
Beckham_Owen| | 2016-3-13 22:18 | 只看该作者
你的dma用的扫描方式是怎样的呢,这个是关键

使用特权

评论回复
地板
seeker2010| | 2016-3-13 23:53 | 只看该作者
开启了循环横式,不知算不算dma扫描方式,还有ad部分开DMA功能后,还要开启连续转换位吗

使用特权

评论回复
5
lux721| | 2016-3-14 00:28 | 只看该作者
dma只是外设DR-内存或内存-外设的数据转移,dma一周转换完成中断通知你去处理下一步的工作。理解这个意思,把触发源分开来思考的话,楼主以上所有问题点滴全部可以自行解决了

使用特权

评论回复
6
xmshao| | 2016-3-14 15:02 | 只看该作者
交流几句,有错纠正:
1:这10US触发第一个通道转换一次,然后下一个10US又触发第二个通道一次吗?还是说10US触发一次后,连续的完成两个通道的转换?
===你可以单次触发两个通道序列,2个通道转换完成后AD停下需再次触发; 也可单次触发,2个通道连续扫描按次序转换,AD通道序列转换结束后又重来。

2:如果用两个AD通道,DMA计数100次,这时DMA中断的时间怎么算,是多少时间?,如果用一个AD通道呢,时间又是多少?(我实测是2个通道的比1个通道的DMA中断时间快,按道理应慢些)
===100次DMA结束后可以进入DMA传输完成中断。按道理说使用2个通道要比1个通道快。DMA只是传输数据,同时100个数据,两个通道提供理应比1个通道快。

3:AD的数据在数组中是按AD通道的依次顺序存放的吗?
===如果不是岂不乱套了吗?

   4:选用DMA的循环计数模式,如按第3条成立,为什么数据存放会有错位
===原因可能很多。你可以将DMA通道的优先级安排到very high priority测试下。

5:进入DMA中断后,立即开始下一轮的触发转换中断了吗?(不然数据还没处理完,又一次把上次的数据给覆盖掉了)
===你应该是指触发下次AD转换吧。这就看你的配置安排了。如果100个数据DMA传送完成后,DMA配置为NORMAL模式,不再次触发使能是没影响的,除非你用了循环CIRCULAR模式。

使用特权

评论回复
7
RF、龙龙| | 2016-6-28 14:53 | 只看该作者
楼主问题解决了吗    帮我看看我的问题   xiexie     https://bbs.21ic.com/icview-1607578-1-1.html

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

24

帖子

1

粉丝