TI处理器EDMA的三种触发方式与通道

EDMA的三种触发方式与通道

目的:减轻CPU工作量,提高CPU效率

EDMA触发方式

TI公司处理器的EDMA一共有3种触发方式,在这里以外设SPI为例,发送可使用手动触发或者事件触发,SPI接收使用的是事件触发 +链接触发,对于接受来说手动触发方式是搞不定的,这是为什么呢?在开始之前,我想先把我最近对EDMA触发的几种方式先简单叙述一下,这样大家应该就明白为什么我要这么选择了

手动触发

手动触发,顾名思义,需要程序员来控制触发的时机,多用于内存上数据搬移等主动控制时机,对于没有专用DMA通道的外设,也可以通过手动触发的方式完成DMA发送,但是DMA数据接收那就必须要用事件触发了

事件触发

事件触发多用于被动,如外设接收数据就一定要使用事件触发的方式,手动触发只能解决数据发送,无法解决数据接收

链接触发

多用于pingpong接收存储,暂且不提,后续会出专门文章讲解

EDMA通道

关于EDMA通道,你需要查阅一下你使用的处理器的DataSheet,看一下处理器是否为SPI留有EDMA通道,如果没有,那就无法使用SPI的EDMA事件触发,一般来说,都会有的,否则你就赶紧换个CPU吧…

何为EDMA通道?

嗯…,我想把EDMA通道称为EDMA事件通道,打个比方,你的处理器一共有64个通道,这64个通道都可以通过手动触发的方式来启动一次DMA传输,你可以为所欲为,将数据搬来搬去,如果你把目的地址设置为UART的数据发送寄存器,那么你毫无任何问题的可以启动一次UART的EDMA发送。

但是,接收呢?接收通过手动的方式就搞不定了,这个时候你就必须使用处理器为你提供的专用通道,比如通道25默认为UART接收通道,那么你若想使用UART的DMA接收的话,你就必须要使用25通道,除非你把该通道映射到其他通道号。

Guess you like

Origin blog.csdn.net/weixin_42314225/article/details/104332323