TI中文支持网
TI专业的中文技术问题搜集分享网站

DM365开发SPI通过DMA工作在从模式的实现

您好:

      我们项目中需要通过SPI端口传输图像数据,由于硬件原因,DM365 SPI必须工作在从模式,图像数据量较大,为了降低CPU负载,必须通过DMA方式。

     我们的问题是,DM365提供的开发环境中SPI子系统

和DMA子系统是否可以支撑这种工作模式?需要实现哪些驱动代码?最好有参考的模板代码,能否推荐一份?

    谢谢!

haigang Zhao:

回复 VampireDaVinci:

Jason您好,

         驱动代码仅支持master模式吧,能否详细点,需要参考和修改那几个文件?

不吝赐教,多谢指点。

   email:bg7jns@163.net

VampireDaVinci:

回复 haigang Zhao:

1. 这个我具体没有Coding过,如果Driver的EDMA只支持主模式,还是放弃的好,自己做从模式再做EDMA控制太难

2. 你能否从整个系统说一下应用,也许有别的办法,贴个系统框图

haigang Zhao:

回复 VampireDaVinci:

可能没有说的这么复杂,我想软件无论如何不会将硬件功能限制死。具体应用是这样的:

有一个通信模块,负责数据的收发任务。使用DM365负责图像的编码和解码任务。两者

通过SPI端口进行数据的交换。编码发射过程中,DM365每完成一帧图像的编码,就通知通信模块将该帧数据取走;

接收解码过程,DM365每完成一帧图像的解码,就通知通信模块送下一帧的数据。

 

由于硬件条件的限制,通信模块的SPI必须工作在主模式,因此DM365就只能工作在从模式了。为了数据交互,

设置了两根握手信号线,由DM365输出5us的脉冲,以中断方式分别通知通信模块接收图像数据或者发送图像数据。

 

从上面的过程可以看出,数据的收发起始是由DM365发起的,是一种变相的主模式。但SPI的片选和时钟则由通信模块提供。

我觉得开发平台提供的EDMA驱动是不区分SPI主从模式的,但SPI的驱动则只实现的主模式。现在的工作就是修改部分代码,

让SPI以从模式运行,达到数据交换的目的。

 

附件是结构简图,供参考。不吝赐教,多谢!

VampireDaVinci:

回复 haigang Zhao:

1. 这样的话没有其它办法,只能修改寄存器使得SPI工作在从模式,EDMA的驱动是封装好的,做事件触发,只是调试起来会麻烦一些

Feng Dong:

简单的来说只要在驱动初始化的时候将master模式改为从模式,就可以工作,但是真正要完成传输,由于linux的框架中并不支持spi从模式,所以需要自己想办法实现同步机制和与应用层相关的交互.

赞(0)
未经允许不得转载:TI中文支持网 » DM365开发SPI通过DMA工作在从模式的实现
分享到: 更多 (0)