This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

6713 edma chain的问题

 大家好:

      我使用的是6713的芯片,用的csl 编程,在用edma的时候我发现了一下几个问题,麻烦您帮我看看能不能给出答案,谢谢!

(1)chain的使用通道问题: 我用edma通道13 chain到通道8,再chain到通道9,再chain到通道10,再chain到通道11,这些都可以实现,但是接着想从通道11 chain回通道13就不行了。我看资料说只有8,9,10,11四个通道有chain的功能,是不是当想从这四个通道中的任何一个chain到其他通道去就不行了呢?

(2)chain的运行原理问题: chain的作用是alternative transfer complete 是什么意思,是不是指的是“通道A chain 到通道B时,触发A的事件一到来,A和B的搬移同时进行”,还是“通道A chain 到通道B时,触发A的事件一到来,先搬移A,等A搬移完了以ATCC结束代码再触发搬移B”? 如果是前者,从通道13 chain 到8 接着chain到9 接着chain到10 接着chain到11,会不会使13,8,9,10,11五个通道同时运行?

谢谢了!

  • 你好:

    (1) EDMA的Chain一般是不限制通道的,任何通道都可以chain,不知你是在那个文档上看到只有8,9,10,11通道有chain功能。你的通道11也可以chain回到到通道13,但是前提是你的通道13的parameter必须有效。

    (2) 可选择的通道完成模式。一般有两种,一种是Normal Complete,这是指通道A搬移完成之后触发事件;另一种是Early Complete,这是指在通道A提交搬移请求时触发事件。如果是后一种模式,是有可能同时提交5的搬移事件的。

  • (1)chain的确可以到任何一个通道:

    虽然在TI 的文档中关于6713 chain是这么写的:

    Chaining EDMA Channels by an Event

    See section 1.13 for an overview of chaining. Four of the user-specified 4-bit transfer complete codes (TCC values 8, 9, 10, and 11) can be used to trigger another EDMA channel transfer. These events trigger an EDMA transfer providing the ability to chain several EDMA transfer requests from one event that is driven by a peripheral or external device. By setting TCC to 8, 9, 10, or 11, any EDMA channel can synchronize any of these four channels.

    但经过试验,发现的确可以chain到任何一个通道。

    (2)同时使用link和chain的问题:

    13通道建立两个参数表A,B,设置cpu中断使13通道互相link两个参数表(即pingpong结构),其中设置A参数表chain到通道8,B参数表chain到通道9。

    预想功能:每次link到13通道A,完成A功能后chain到通道8;每次link到13通道B,完成B功能后chain到通道9;一直link循环。    

         即 13通道A->通道8。

                          ↑↓cpu中断

                     13通道B->通道9。

    问题:通道8,9只在第一次link 通道13的A,B时分别被chain到,接下来的link时都不能再chain到通道8,9,请问是怎么回事呢?

  • 您好,

    问题2,请确认一下执行一次后A,B参数表的参数是否装载正确。

  • 不好意思,忘记点回复了,还有以下问题,看看您是否能够回复。

x 出现错误。请重试或与管理员联系。