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

C6748的EDMA的PaRAM中TCC域没有按照设定的功能其作用,还差什么条件?

在使用McASP0时,EDMA3的PaRAM set0和PaRAM set1分别用于McASP0的RX和TX的传输,并分别配置PaRAM set40/41和PaRAM set42/43作为RX和TX的Ping-Pong传输配置参数集。

当PaRAM set42和43中配置opt的TCC域分别为0和1,可以进入中断。

当PaRAM set40和41中配置opt的TCC域分别为0和1,可以进入中断。

但是,当PaRAM set40和41中配置opt的TCC域分别为2和3,不能进入中断。

后来查了数据手册,说还需要将IER[TCC]位置1,才能产生中断给CPU。

我调用EDMA3EnableEvtIntr()对IER的相应Bit置1。

EDMA3EnableEvtIntr(SOC_EDMA30CC_0_REGS, 2);
EDMA3EnableEvtIntr(SOC_EDMA30CC_0_REGS, 3);

结果并不起作用,无法进入中断。

单步调试,发现IER和IPR的bit2、bit3都被置1了。

和前面可以进入中断的配置相比,只是将opt的TCC域从0和1改为2和3,为什么还是进不了中断呢?

是不是还需要什么条件?

Shide Lu:

另外,查看StarterWare驱动源码edma.c,发现EDMA3RequestChannel()函数传入的tccNum并没有真正被使用。

图中框出的两处,是调用EDMA3EnableEvtIntr()对IER寄存器的相应bit置1的。

按照上图的逻辑,无论tccNum输入值是什么,用于设置IER的总是chNum。这是Bug还是故意这样呢?

Tony Tang:

回复 Shide Lu:

从EDMA的工作原理,TCC num 要跟IER的bit一致。

赞(0)
未经允许不得转载:TI中文支持网 » C6748的EDMA的PaRAM中TCC域没有按照设定的功能其作用,还差什么条件?
分享到: 更多 (0)