C6000 EDMA与TIMER联合应用实例

2015-09-16 20:58 阅读 280 次 评论 0 条

这里讲的c6000 EDMA是基于TMS320C641x芯片,采用TI DSP/BIOS与CSL结合方式完成EDMA功能。基于TI C6000 EDMA传输的一点理解中提到与timer的关系,在CCS3.3中编程完成EDMA功能。

下图的示例中是两个timer,分别是timer1与timer2(timer0已经被DSP/BIOS使用),分别对应EDMA通道2和EDMA通道19。EDMA_Handle句柄的初始化,重要的参数是option,确定了EDMA的工作方式,具体寄存器的定义可以参见spru234c.pdf文档;源和目的地址可以在启动EDMA时重新配置并生效。

初始化EDMA_Handle句柄

然后就是配置timer,主要参数是CTL控制寄存器与PRD计数周期寄存器,控制触发EDMA启动事情的时间间隔,基本也决定了EDMA传输的速度。

配置定时器TIMER设置

然后执行EDMA初始化函数,将EDMA通道2与EDMA通道19打开,并且开启中断使能。

初始化EDMA通道

然后配置EDMA中断。首先设置中断处理函数edma_isr(),函数内容如下图。设置EDMA中断函数

然后需要在ccs3.3的DSP/BIOS中配置EDMA中断处理函数为edma_isr,如下图,主意_edma_isr前面的下划线

在ccs3.3中设置EDMA中断处理函数映射

然后通过“IRQ_enable(IRQ_EVT_EDMAINT);”函数使能EDMA中断。这样在EDMA传输完毕后,将产生EDMA中断,并自动跳转执行edma_isr()函数。

EDMA_Send()函数为EDMA启动调用函数,每次启动EDMA时,将传递源地址、目的地址与数据长度即可。

启动EDMA传输函数

PS:中断与EDMA发送函数只贴了一个通道,另一个通道可以仿写。

版权声明:本文著作权归原作者所有,欢迎分享本文,谢谢支持!
转载请注明:C6000 EDMA与TIMER联合应用实例 | 起点博客
分类:应用笔记 标签:, , , , , ,

发表评论


表情