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

关于TMS470MF06607中 CAN 收发不能进中断

最近用TMS470MF06607进行开发,可以用轮询模式进行CAN收发,但是用中断模式的话,就始终进不了中断,请问应该如何设置?

Renton:

Hi Wei,

   您好。

   TMS470MF06607中,CAN总线控制器中断总体上有3层控制:

   1. 第一层: ARM-Cortex M3 CPU中断控制(NVIC)

       这是CPU对所有中断是否进行响应的总开关,NVIC基地址0xE000E000。控制寄存器NVIC Interrupt Set-Enable registers 的偏移量是0x100。

       您可以自行设置。

       如果使用HALCoGen驱动代码生成工具的话,可以直接调用 NVIC_enable() 这个函数来打开全局控制。

   2. DCAN1或2模块的中断控制开关

       对于整个DCAN1或2模块来说,也有一个中断总开关,这个开关在寄存器DCAN CTL 的IE0和IE1 bit。

       需要设置至少其中之一来打开DCAN模块总体的发送/接收中断。 (另有EIE,SIE位来控制错误和状态中断)

   3. Message Object中断控制

       以上两层之后,就是最后一层的中断控制,针对每个msg obj,都有相应的中断控制bit,这个bit在每个msg obj的MCTL中,TxIE和RxIE。

       分别控制发送中断和接收中断。需要通过DCAN模块的IFxMCTL寄存器来对这些msg obj的MCTL进行设置。

以上三层都打开的前提下,CPU才对响应中断。

所以请查看您的设置,是否正确?

wei wei:

回复 Renton:

谢谢这位老师的解答。此问题已经解决。

另外能否讲解下,这个MESSAGE OBJECT的本质是什么。如何配置一个MESSAGE OBJECT?是不是一定要在初始化的时候配置?在发送的时候再重新配置行不行?之前一直用的是STM32,感觉TI的CAN收发器的用法很不一样。

wei wei:

回复 Renton:

谢谢老师的耐心解答,TI的CAN控制器功能确实要强大些,但是配置也要复杂些。

不知道老师能不能解答一下我在CCS调试中遇到的问题,非常感谢。

问题如下:我的开发环境是CCS4.2,在代码编译无误之后,点击DEBUG,也就是那个绿色虫子图标,出现以下错误提示:

exception occurred during launch

reason: an internal error occurred during "creating debug server"

然后我点开detail选项卡,显示的信息是:

contract ID "ti.com@/debug server1;1" is not registered  with xpcom runtime.(0x80004005)

wei wei:

回复 wei wei:

      另外,我还想问下关于CAN中断的问题。

     我发现TMSMF06607的CAN无论是发送或者接收到进的是同一个ISR,CAN1HIGHINTERRUPT.能不能分开处理呢?如果在接收中断中进行发送,会不会出问题?

wei wei:

回复 Renton:

HI  Renton :

     这个问题已经搞清楚了。再次感谢。

   另外,我的程序在调试过程中,进入了BUS_FAULT中断,请问这是怎么回事?哪些情况下会进入BUS_FAULT中断?

赞(0)
未经允许不得转载:TI中文支持网 » 关于TMS470MF06607中 CAN 收发不能进中断
分享到: 更多 (0)