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

C6000中CPU和EDMA3对于数据总线的控制权

芯片:TMS320C6747

程序配置1:把C6747的UART1配置成DMA发送,每次传输350字节,波特率115200,传输一次耗时约30ms。

程序配置2:SPI1配置成主机模式,访问外部芯片的周期为5ms。SPI1非DMA模式。

EDMA的OPT配置:DAM位置1,TCC配置成13,TCC中断位配置成1。

acnt=1,bcnt=350,ccnt=1

代码运行在L2RAM,数据也在L2RAM。

现在发现在串口正常发送的时候,SPI访问也是每5ms一次,很均匀,好像串口的DMA发送没有占用CPU的时钟。

DMA方式按照我的理解:

1、DMA申请总线;

2、DMA获取总线,CPU放弃总线;

3、DMA传输;

4、DMA传输完成,CPU重新获取总线。

在DMA传输的时候CPU是无法取得总线的?

DMA的传输是否可以被CPU中断?

为什么串口通过DMA发送的时候CPU也能通过SPI按时访问外部芯片呢(数据和代码都在L2RAM)?

C6000是如何在CPU和DMA之间分配时钟的和数据总线的?

L2RAM的数据是否无需数据总线即可传输?

Nancy Wang:

建议阅读以下链接,关于master与slave内部如何建立连接并通信。
processors.wiki.ti.com/…/AM1x_SoC_Architectural_Overview

user4039376:

回复 Nancy Wang:

您好,看了之后还是有些疑问。

实验2:把串口数据占有率提升到95%,芯片也能正常运行各种程序,一点时序干扰都没有。
是不是芯片不由设计师配置EDMA3,CPU到外设(IO口,SPI,UART)的传输都要通过EDMA3来传输?

即CPU到外设的链路:
CPU–L1–L2–EDMA3–外设

因为仲裁线上EDMA3的优先级最高,没有同等优先级的主控,如果芯片内部不是由EDMA3来搬运,那么一定会影响实时性;由同一个主控来访问,主控会交替访问内存。不知道我的理解是否正确。

Nancy Wang:

回复 user4039376:

cpu和EDMA是独立的,你配置成edma传输才是通过edma传输。
edma3是直接可以访问外设的。

赞(0)
未经允许不得转载:TI中文支持网 » C6000中CPU和EDMA3对于数据总线的控制权
分享到: 更多 (0)