嵌入式开发者社区

标题: C6748的Mcbsp+EDMA3 [打印本页]

作者: 雨中伞angel    时间: 2015-6-3 13:29
标题: C6748的Mcbsp+EDMA3
   请问大神们有没有用过用C6748的EDMA3进行MCBSP模块的数据传输,我目前的状况是用MCBSP的接收事件触发EDMA3的传输,想用EDMA3的传输完成中断进行数据读取完毕后的数据处理,现在通过示波器观察时序,发现进入传输完成函数中断的时间与数据传输的时间对不上,请问有没有大神遇到过类似的情形啊?求指导啊?全英文的数据手册看的头都大了{:soso_e118:}{:soso_e118:}{:soso_e118:}{:soso_e118:}

作者: 希望缄默    时间: 2015-6-4 08:40
你可以试试 SYSBIOS 的 McBSP 驱动 那个是采用 EDMA 方式传输的
作者: seadistant    时间: 2015-6-4 20:01
提示: 作者被禁止或删除 内容自动屏蔽
作者: 希望缄默    时间: 2015-6-5 09:21
seadistant 发表于 2015-6-4 20:01
发现进入传输完成函数中断的时间与数据传输的时间对不上,这并没有什么异常
要知道DMA完成中断的执行流程  ...

赞一个~
作者: 雨中伞angel    时间: 2015-6-5 09:25
seadistant 发表于 2015-6-4 20:01
发现进入传输完成函数中断的时间与数据传输的时间对不上,这并没有什么异常
要知道DMA完成中断的执行流程  ...

您好,首先感谢您的耐心回答。
您说的这种时间对不上的情况我已经考虑过了,但是我的具体情况不是这样的。
我的具体情况是,我是用MCBSP模块的edma同步事件触发传输数据的,EDMA参数设置TCINTEN=1,ITCINTEN=0,也就是传输所有数据完成后只产生一个中断,
例如,假设mcbsp的传输数据间隔是100us,即每100us传输完一帧数据,在第40us数据传输完毕,理论应该触发中断,加上中断延迟(像你所说的执行其他程序等情况,但其实我程序中目前只有这一个中断,没有其他中断)也就是说应该在40us之后进入EDMA的传输完成中断。而且理论上应该是每100us有且进入一次传输完成中断函数
但是根据示波器观察发现,
1、有时是100us内进两次传输完成中断函数(注:程序中有对ICR写1,即使得IPR=0)而且进中断的时间点对不上
2、有时是只进一次中断,程序复位后第一次运行时能够正常的进入中断,之后中断就进不去了

您看,这种情况您能帮我分析一下么?另外,edma的传输完成函数中需要做哪些工作,是不是我少做了些什么?
作者: 雨中伞angel    时间: 2015-6-5 09:45
希望缄默 发表于 2015-6-4 08:40
你可以试试 SYSBIOS 的 McBSP 驱动 那个是采用 EDMA 方式传输的

这个看过了,没发现有价值的参考信息
另外。啥时候出中文版的Datasheet啊。等的花都谢喽
作者: seadistant    时间: 2015-6-5 10:10
提示: 作者被禁止或删除 内容自动屏蔽
作者: 希望缄默    时间: 2015-6-5 13:13
雨中伞angel 发表于 2015-6-5 09:45
这个看过了,没发现有价值的参考信息
另外。啥时候出中文版的Datasheet啊。等的花都谢喽 ...

这本来就是一件浩大的工程 翻译官方手册这件事我印象中只有周立功做的比较好 比较正规
心急吃不了热豆腐嘛 质量更重要啊




欢迎光临 嵌入式开发者社区 (https://www.51ele.net/) Powered by Discuz! X3.4