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.

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

Other Parts Discussed in Thread: TMS320C6747

芯片: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的数据是否无需数据总线即可传输?

  • 建议阅读以下链接,关于master与slave内部如何建立连接并通信。
    processors.wiki.ti.com/.../AM1x_SoC_Architectural_Overview
  • 您好,看了之后还是有些疑问。

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

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

    因为仲裁线上EDMA3的优先级最高,没有同等优先级的主控,如果芯片内部不是由EDMA3来搬运,那么一定会影响实时性;由同一个主控来访问,主控会交替访问内存。不知道我的理解是否正确。
  • cpu和EDMA是独立的,你配置成edma传输才是通过edma传输。
    edma3是直接可以访问外设的。