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

C6000 DMA问题

你好,初次用C6000,用了EDMA3的GPIO外部中断触发传输,如果希望传输完成进入中断就停止EDMA传输,定时时间到了再继续开启,但是EDMA怎么可以停止?另外一个问题是,在其它主函数里怎么知道现在EDMA已经传输了几个数据了呢?

user6157972:

补充:是C6748

Shine:

回复 user6157972:

1. 如果要停止EDMA传输的话,要link到NULL PaRAM set。没有传输完是不会停止的。
2. 传输完后才会停止,所以可以查看ACNT, BCNT, CCNT。

Nancy Wang:

将PaRAM link到NULL,在下次启动前清除事件丢失寄存器。
If the PaRAM set associated with the channel is a NULL set (see Section 16.2.3.3), then no transfer
request (TR) is submitted and the corresponding En bit in ER is cleared and simultaneously the
corresponding channel bit is set in the event miss register (EMR.En = 1) to indicate that the event was
discarded due to a null TR being serviced. Good programming practices should include cleaning the event
missed error before retriggering the DMA channel.
16.2.3.3 Null PaRAM Set
A null PaRAM set is defined as a PaRAM set where all count fields (ACNT, BCNT, and CCNT) are
cleared to 0. If a PaRAM set associated with a channel is a NULL set, then when serviced by the
EDMA3CC, the bit corresponding to the channel is set in the associated event missed register (EMR or
QEMR). This bit remains set in the associated secondary event register (SER or QSER). This implies that
any future events on the same channel are ignored by the EDMA3CC and you are required to clear the bit
in SER or QSER for the channel. This is considered an error condition, since events are not expected on
a channel that is configured as a null transfer. See Section 16.4.2.5.8 and Section 16.4.2.2.1 for more
information on the SER and EMR registers, respectively.
edma传输的数据与PARAM中参数的配置有关。

赞(0)
未经允许不得转载:TI中文支持网 » C6000 DMA问题
分享到: 更多 (0)