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.

[参考译文] CCS/TMS320F2.8377万D:DMA在使用CPU2时在运行中暴冲。 如果触发事件频率高于667kHz。

Guru**** 2338860 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/584761/ccs-tms320f28377d-dma-burst-over-run-when-using-cpu2-if-trigger-event-frequency-high-than-667khz

部件号:TMS320F2.8377万D

工具/软件:Code Composer Studio

TI专家,您好!

我在Code composite studio中创建了一个项目,使用F2.8377万D CPU2从emif1获取DMA数据。  我遇到了 一个问题,当触发事件频率为667khz或更高时,DMA报告超限。 当我将触发事件设置为500kHz时,没有设置超限标志。

如果它在CPU1中运行相同的配置,则不会报告溢出标志。 有什么问题?

我尝试将外部GPIO中断和CPU2中的EPWM1 SOCA 用作触发源,如果频率为667khz或1M,则两者都将超频。

我正在使用DMA通道1。 即使我设置了CH1最高优先级,也没有任何变化。

以下是CPU2 DMA配置的代码。 DMA时钟已在main上启用。

 //初始化DMA
 DMAInitialize();

 EALLOW;
 DMARegs.PRIORITYCTRL1.bit.CH1PRIORITY = 1;//配置通道1高优先级
 EDIS;

 DMACH1AddrConfig(((volatile UINT16 *)&DMADBUFFER[0],(volatile UINT16 *) external_ADC_ADDREST);
 DMACH1BurstConfig(0,0,0);//将设置为使用32位数据大小,指针基于16位字
 DMACH1TransferConfig (0,0,2);
 DMACH1WrapConfig (0xFFFF,0,0xFFFF,0);

 DMACH1ModeConfig (DMA_EPWM1A,PERINT_ENABLE,OneShot_DISABLE,CONT_ENABLE,
   SYNC_DISABLE,SYNC_SRC,OEFLOW_ENABLE,32位,CHINT_BEGIN,
   Chint_enable);

您能帮您分析吗?

提前感谢。

Jerome Jiang

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    在使用CPU2时,是否有任何人都有相同的体验?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。


    在这种情况下,您使用了多少个DMA通道? 您提到您也在使用DMA通过EMIF1传输数据,但我在此处看不到该配置。 是否可以与此问题共享示例项目?

    Vivek Singh