TMS320C6455入门实践(十)
本系列文章链接
- TMS320C6455入门实践(一)——编译CSL静态库
- TMS320C6455入门实践(二)——中断相关
- TMS320C6455入门实践(三)——PLL相关
- TMS320C6455入门实践(四)——GPIO与定时器
- TMS320C6455入门实践(五)——cmd链接脚本
- TMS320C6455入门实践(六)——编写boot程序
- TMS320C6455入门实践(七)——生成启动镜像
- TMS320C6455入门实践(八)——Flash驱动与程序固化
- TMS320C6455入门实践(九)——DDR上运行代码
- TMS320C6455入门实践(十)——EDMA3相关
本文主要介绍TMS320C6455的与EDMA3相关的内容,参考文档为:
SPRU966C - TMS320C645x DSP Enhanced DMA (EDMA3) Controller User’s Guide
整体结构
学习一种外设的使用,最直接的方法就是看例程。基本上只要能够掌握主要寄存器的功能,就可以比较得心应手了。
C6455的EDMA3包括了一个通道控制器(CC)和四个传输控制器(TC)。DMA有64个外部事件输入,对应64个DMA通道。CC中有4个队列(Queue)。每个通道和队列(16个入口)或是和参数表(256个入口)都可以用寄存器来绑定。
总共有8个Region可以进行操作,这个主要是用于多用户时的编程,不同用户间的EDMA将不相互影响。
手册中还提到了阴影寄存器(Shadow Register),我的理解是同一个功能的寄存器有不同的地址。
主要寄存器
- DCHMAP和QCHMAP 将Channel和PaRAM绑定
- DMAQNUM和QDMAQNUM,将Channel和Queue绑定
- Q0->T0, Q1->T1, Q2->T2, Q3->T3
- QUEPRI 队列优先级
- 一堆错误指示相关的寄存器
- DRAE和QRAE Region访问使能
CSL的使用
Module相关设置
- CSL_edma3Open();
- CSL_edma3HwSetup(); 指定了所用的队列
- CSL_edma3HwControl(); Region相关设置
通道相关设置
- CSL_edma3ChannelOpen(); 选择要设置的通道和Region
- CSL_edma3GetParamHandle(); 通道和PaRAM绑定
- CSL_edma3ParamSetup(); 设置PaRAM
在同一个Region中还可以对另外的通道进行设置
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 小裘控制系统!