在设计中,eCAN模式下,使用了4个接收邮箱,15、14、13、12号邮箱
正常情况下,4个邮箱的消息都可以正常触发接收中断,响应也正常。
问题是如果在正常通信的情况下,模拟CAN线断线后在恢复通信(实际是用打开/关闭USBCAN接口卡来模拟的),
程序就只响应优先级最高的15号接收邮箱的消息了,
如果终止15号接收邮箱的消息发送,程序就可以响应次优先级14号接收邮箱的消息了
以此类推,这种现象有人遇到吗?
另外这种故障情况下,对eCAN模块有什么影响?
Jay:
你好。
4个邮箱的中断都是映射到CAN的同一条中断线上吗?
4个邮箱的ID设置是否有用Mask?
断线恢复后,你有没有看过除15邮箱外,其他三个邮箱有没有数据收到,也就是说接收标志的寄存器对应位及以中断标志的对应位是否有置1呢?
在设计中,eCAN模式下,使用了4个接收邮箱,15、14、13、12号邮箱
正常情况下,4个邮箱的消息都可以正常触发接收中断,响应也正常。
问题是如果在正常通信的情况下,模拟CAN线断线后在恢复通信(实际是用打开/关闭USBCAN接口卡来模拟的),
程序就只响应优先级最高的15号接收邮箱的消息了,
如果终止15号接收邮箱的消息发送,程序就可以响应次优先级14号接收邮箱的消息了
以此类推,这种现象有人遇到吗?
另外这种故障情况下,对eCAN模块有什么影响?
Laspide Li:
回复 Jay:
四个邮箱的接收中断都在0线上,CANMIL寄存器为0
LAMn寄存器最高位为1,其余位为0
CAN线断线恢复后,同时发送15、14邮箱的消息时,程序只响应15邮箱的信息,而不响应14邮箱的消息中断,CANRMP寄存器的相应位为0,即使数据成功的由CAN卡发送到CAN线上,
不发送15邮箱的消息,程序即可以正常响应14邮箱的消息
在设计中,eCAN模式下,使用了4个接收邮箱,15、14、13、12号邮箱
正常情况下,4个邮箱的消息都可以正常触发接收中断,响应也正常。
问题是如果在正常通信的情况下,模拟CAN线断线后在恢复通信(实际是用打开/关闭USBCAN接口卡来模拟的),
程序就只响应优先级最高的15号接收邮箱的消息了,
如果终止15号接收邮箱的消息发送,程序就可以响应次优先级14号接收邮箱的消息了
以此类推,这种现象有人遇到吗?
另外这种故障情况下,对eCAN模块有什么影响?
Jay:
回复 Laspide Li:
你好。
如果CANRMP对应位是0的话,就表示没有收到报文,肯定是不会触发中断的。
所以需要查一下为什么没有收到报文。当发送完14号邮箱的消息时,你看一下状态寄存器的一些情况。
在设计中,eCAN模式下,使用了4个接收邮箱,15、14、13、12号邮箱
正常情况下,4个邮箱的消息都可以正常触发接收中断,响应也正常。
问题是如果在正常通信的情况下,模拟CAN线断线后在恢复通信(实际是用打开/关闭USBCAN接口卡来模拟的),
程序就只响应优先级最高的15号接收邮箱的消息了,
如果终止15号接收邮箱的消息发送,程序就可以响应次优先级14号接收邮箱的消息了
以此类推,这种现象有人遇到吗?
另外这种故障情况下,对eCAN模块有什么影响?
Laspide Li:
回复 Jay:
昨天时间紧张,回复有误,抱歉。谢谢提醒
刚才单步调试了下,对比了CAN总线断线前后CANRMP寄存器的值,应该找到了问题的原因。
同样是通过USBCAN卡以100ms间隔发送三条消息(对应15、14、13号邮箱消息)到目标板,
在断线前,CANRMP的值总是只有一个邮箱的中断标志位被置位,因而程序的响应是正常的
可是断线后,CANRMP的值总是三个邮箱的中断标志位被同时置位,
程序在处理15邮箱的消息后,就把CANRMP复位了,没有再处理其他两个邮箱的消息。
所以只是响应高优先级的邮箱消息。
如果CANRMP同时响应多个邮箱中断,有什么好的处理机制。
在设计中,eCAN模式下,使用了4个接收邮箱,15、14、13、12号邮箱
正常情况下,4个邮箱的消息都可以正常触发接收中断,响应也正常。
问题是如果在正常通信的情况下,模拟CAN线断线后在恢复通信(实际是用打开/关闭USBCAN接口卡来模拟的),
程序就只响应优先级最高的15号接收邮箱的消息了,
如果终止15号接收邮箱的消息发送,程序就可以响应次优先级14号接收邮箱的消息了
以此类推,这种现象有人遇到吗?
另外这种故障情况下,对eCAN模块有什么影响?
Jay:
回复 Laspide Li:
你好。
如果同时有多个中断的话,清CANRMP标志时,可以只清除已经处理的那一位,不要全清了。
还有,按照你说的问题,就算全清了,应该在清完后,如果继续有14号邮箱的报文进了,中断应该是可以响应的。请问你有试过吗?
在设计中,eCAN模式下,使用了4个接收邮箱,15、14、13、12号邮箱
正常情况下,4个邮箱的消息都可以正常触发接收中断,响应也正常。
问题是如果在正常通信的情况下,模拟CAN线断线后在恢复通信(实际是用打开/关闭USBCAN接口卡来模拟的),
程序就只响应优先级最高的15号接收邮箱的消息了,
如果终止15号接收邮箱的消息发送,程序就可以响应次优先级14号接收邮箱的消息了
以此类推,这种现象有人遇到吗?
另外这种故障情况下,对eCAN模块有什么影响?
ming zhao1:
您好,打扰您一下,我是初学者,导师让我写了一个简单的发送和接收的ecan程序(分别,见附件), A DSP发送,B DSP 接收。用的是CCS3.3
1.然后我是把发送的程序烧写进了A板。但出了问题:(Flash.cmd)在烧写的过程中,出现了一个警告:对于.const那一行,no matching。(见附件)2.B板:将程序load program进板子,用仿真器在电脑上,观察接收邮箱寄存器里的值(此板子没有把接收程序烧进板子,但Flash里已经有了以前固化的程序,具体是什么我不清楚,不知道这个对于此时的仿真有没有影响),然后load program到板子里,开始run,在接收邮箱前设置的有断点,然后我就分别把高、低16位装入观察窗口,发现里面已经有值了,而且很大(在附件)这也太奇怪了吧?!2个板子的can的双绞线还没有连接怎么会有值呢?而且一断开,并断电;再一连接仿真器,值还是那个值。 太奇怪了?
由于是初学者,不知道哪里出了问题,所以想请教您一下,耽误您的宝贵时间了。我怀疑是我的程序有问题,但就是不知道问题出在哪里?请教您一下,帮忙看看,谢谢,不胜感激! 另外,您能否提供一些基于2812的发送、接收成功的例程,我想学习一下;ti的官方发送接收例程在哪可以下载得到?谢谢导师催的很紧,所以想借助于成功例程,尽快编好。简单的程序就可以,一个dsp发送1,另一个dsp接收1,只要能实现这个功能就好。谢谢。
祝您,工作顺利!期待您的回信,再次感谢您。1083176055@qq.com
在设计中,eCAN模式下,使用了4个接收邮箱,15、14、13、12号邮箱
正常情况下,4个邮箱的消息都可以正常触发接收中断,响应也正常。
问题是如果在正常通信的情况下,模拟CAN线断线后在恢复通信(实际是用打开/关闭USBCAN接口卡来模拟的),
程序就只响应优先级最高的15号接收邮箱的消息了,
如果终止15号接收邮箱的消息发送,程序就可以响应次优先级14号接收邮箱的消息了
以此类推,这种现象有人遇到吗?
另外这种故障情况下,对eCAN模块有什么影响?
Jay:
回复 ming zhao1:
你好。
1.这个Warning是你的CMD文件没有写好。请从http://www.ti.com/lit/zip/sprc097下载2812的驱动代码和相关例程。
2.你看到的LL和HH以及寄存器中的值是不是在接收到报文之前的。如果是的话,那是可能的。因为上电后,RAM中的所有数据都是随机数,包括未赋值的变量。
在设计中,eCAN模式下,使用了4个接收邮箱,15、14、13、12号邮箱
正常情况下,4个邮箱的消息都可以正常触发接收中断,响应也正常。
问题是如果在正常通信的情况下,模拟CAN线断线后在恢复通信(实际是用打开/关闭USBCAN接口卡来模拟的),
程序就只响应优先级最高的15号接收邮箱的消息了,
如果终止15号接收邮箱的消息发送,程序就可以响应次优先级14号接收邮箱的消息了
以此类推,这种现象有人遇到吗?
另外这种故障情况下,对eCAN模块有什么影响?
Laspide Li:
基本上搞定了,
修改了程序结构,不按官方的例子做了,
对CANRMP进行逐位判断,有中断发生说明要对数据缓存,
增加个缓冲区,判断出是哪个邮箱发生了接收中断,就把相关数据放进缓冲区
问题是会增加些周转开销,接收邮箱最好是从一端开始按使用频率排列,可稍稍减少些判断上的开销
刚测了下,CAN断线前后现象一致,程序可以工作了
具体的性能测试要交给同事了
谢谢TI支持
在设计中,eCAN模式下,使用了4个接收邮箱,15、14、13、12号邮箱
正常情况下,4个邮箱的消息都可以正常触发接收中断,响应也正常。
问题是如果在正常通信的情况下,模拟CAN线断线后在恢复通信(实际是用打开/关闭USBCAN接口卡来模拟的),
程序就只响应优先级最高的15号接收邮箱的消息了,
如果终止15号接收邮箱的消息发送,程序就可以响应次优先级14号接收邮箱的消息了
以此类推,这种现象有人遇到吗?
另外这种故障情况下,对eCAN模块有什么影响?
ming zhao1:
回复 Jay:
非常感谢您的回复。谢谢。
您说的没错,确实是这样的,can的双绞线还没连接呢,寄存器里就观察到有数据了。
1.我使用最普通的2跟杜邦线,将他们绞在一起制作而成的?见附件图片。不知道在发送和接收程序都没有任何问题时,这个双绞线管不管用?由于是初学者,我对硬件的连接也感到质疑。希望您能帮我看看,谢谢您。板子和原理图都在附件图片里。
2. 板子和仿真器都是上海三意公司的。F2812的。
1083176055@qq.com,期待您的回复,谢谢,工作顺利!
TI中文支持网
