工具/软件: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