主题:EM3352的CAN接口 共有61921人关注过本帖 |
---|
SHENYANG |
1楼 信息 | 搜索 | 邮箱 |
加好友 发短信 |
EM3352的CAN接口 Post By:2016-3-24 17:05:00 [只看该作者]
EM3352板子上的CAN接口一开始正常,突然在串口上出现 c_can_platform 481cc000.d_can can0: setting BTR=1c4b BRPE=0000这个,在之前正常的时候没有这个提示。这个提示到底是想表达什么?现在CAN不通了。搞得我还以为是我自己板子的CAN出问题了。
|
单帖管理 | 引用 | 回复 |
hzc |
2楼 信息 | 搜索 | 邮箱 |
加好友 发短信 员工 |
Post By:2016-3-24 17:16:00 [只看该作者]
你好,这个打印信息是驱动打印的,只是can控制器寄存器的一些信息,启动can接口都会打印这条信息。
can接口不通讯的话,请把具体的情况告知我们,方便找到原因。
|
单帖管理 | 引用 | 回复 |
SHENYANG |
3楼 信息 | 搜索 | 邮箱 |
加好友 发短信 |
Post By:2016-3-25 8:31:00 [只看该作者]
不是的,这个提示消息在以前都没出现过。现在就是没发送一次信息就出现一次,很不正常,而且没法接受,发送到消息也不知道发出去没
|
单帖管理 | 引用 | 回复 |
hzc |
4楼 信息 | 搜索 | 邮箱 |
加好友 发短信 员工 |
Post By:2016-3-25 10:07:00 [只看该作者]
你好,这条信息的确是在CAN启动的时候,由驱动信息打印的,如果一直打印,很可能是CAN控制器一直在重启。
这应该是由于在程序中的函数set_can_bittiming( )加了对CAN控制器异常处理的恢复,如下红色的部分:
sprintf( str, "ip link set can0 type can tq %d prop-seg %d phase-seg1 %d phase-seg2 %d sjw %d restart-ms 100",
bt.tq, bt.prop_seg, bt.phase_seg1, bt.phase_seg2, bt.sjw );
system( str );
system( "ifconfig can0 up"); 这是在驱动程序内部对于异常处理的恢复机制,启用之后,在CAN通讯中出现bus_off 、error_warning、error_passive
等错误,驱动程序会自动重新复位CAN控制器。 所以从打印信息来看,应该是板卡在通讯过程中检测到错误,驱动一直在复位CAN控制器,建议检查一下线路的连接是否存在问题,比如短路等情况。
[此贴子已经被作者于2016-3-25 10:09:49编辑过]
|
单帖管理 | 引用 | 回复 |
SHENYANG |
5楼 |
Post By:2016-3-25 11:52:00 [只看该作者]
刚才把核心板拔下来再重新插上发现CAN口正常了,正常工作的CAN口不会出现上面说的那个信息。我也没动什么东西为什么CAN口会出毛病呢,而且还自动好了,在实际使用的时候会不会出现这样的状况啊
|
|
单帖管理 | 引用 | 回复 |
hzc |
6楼 信息 | 搜索 | 邮箱 |
加好友 发短信 员工 |
Post By:2016-3-25 14:47:00 [只看该作者]
你好,那条信息是启动的时候打印的,正常情况启动好之后一直运行就不会打印这条信息了。
加入CAN控制芯片的复位功能就是为了在实际的使用中,就算出现问题,也能自动恢复。 如果像之前的情况一直复位,很可能是硬件连接上存在问题,每次发送都检测到错误,所以一直复位CAN驱动芯片。
|
单帖管理 | 引用 | 回复 |
SHENYANG |
7楼 信息 | 搜索 | 邮箱 |
加好友 发短信 |
Post By:2016-4-9 8:49:00 [只看该作者]
今天在使用的时候又出现了这种情况,第一次开机运行都没问题,然后我中断了程序,之后can通讯就完全不行了。而且好像can通信出错了之后还使另一个串口的发送失效了。然后我重启,重新上电,重新插拔板子,问题都还存在。连接上没有问题,因为一开始是好用,而出现问题时我没有做任何电路上的改动,只是将运行的程序终止。
|
单帖管理 | 引用 | 回复 |
SHENYANG |
8楼 信息 | 搜索 | 邮箱 |
加好友 发短信 |
Post By:2016-4-9 9:48:00 [只看该作者]
请看到后回复
|
单帖管理 | 引用 | 回复 |
SHENYANG |
9楼 信息 | 搜索 | 邮箱 |
加好友 发短信 |
Post By:2016-4-9 9:54:00 [只看该作者]
莫名其妙的又好了,真是无语了。
|
单帖管理 | 引用 | 回复 |
SHENYANG |
10楼 信息 | 搜索 | 邮箱 |
加好友 发短信 |
Post By:2016-4-9 16:16:00 [只看该作者]
问题又出现了,依然是突然之间没有任何预兆的出现了,求版主速速现身解决问题。经过万用表测试,H与L之间的电阻为60欧姆,并没有短路,两块板子之间的H与H,L与L之间均正确连接,万用表测量电阻为0,并且重启之后问题依然存在,不知道应该怎么消除这一故障。
|
单帖管理 | 引用 | 回复 |
SHENYANG |
11楼 信息 | 搜索 | 邮箱 |
加好友 发短信 |
Post By:2016-4-9 16:16:00 [只看该作者]
问题又出现了,依然是突然之间没有任何预兆的出现了,求版主速速现身解决问题。经过万用表测试,H与L之间的电阻为60欧姆,并没有短路,两块板子之间的H与H,L与L之间均正确连接,万用表测量电阻为0,并且重启之后问题依然存在,不知道应该怎么消除这一故障。
|
单帖管理 | 引用 | 回复 |
hzc |
12楼 信息 | 搜索 | 邮箱 |
加好友 发短信 员工 |
Post By:2016-4-10 15:13:00 [只看该作者]
你好,出现这个情况,肯定是在通讯中驱动检测到错误,才会对can控制器进行复位,这并不是驱动的BUG,只是为了在运行过程中就算遇到错误,也能够自动回复正常。
造成这个问题的原因可能是硬件连接,也可能是总线上的干扰或是其他原因,比如连接线是否为双绞线,连接的距离以及现场环境等,下次出现反复重启can控制器的情况,可以将连接断开,看看板子是否还是一直重启,这样就可以判定是板子这一边的问题还是连接上或者其他问题。
|
单帖管理 | 引用 | 回复 |
SHENYANG |
13楼 信息 | 搜索 | 邮箱 |
加好友 发短信 |
Post By:2016-4-11 7:55:00 [只看该作者]
断开链接依然反复重启,已经测试过了。这个板子都用了好久了,一直没毛病,突然出现的问题是怎么回事
|
单帖管理 | 引用 | 回复 |
lgz |
14楼 信息 | 搜索 | 邮箱 |
加好友 发短信 员工 |
Post By:2016-4-11 10:16:00 [只看该作者]
你好,你是否使用的我们esmark通用底板, 经测试我们的通用底板can口两端电阻是240欧姆,你测试的60欧姆如果是使用的我们的底板,则说明连接有问题,你刚刚断开连接是把板子上的连接线拔掉了还是只是断开了另外的设备上的连接线?你可以把开发版上的can口连线都断开跑一下我们光盘里面提供的test_socketcan程序,看是否出现相同问题
|
单帖管理 | 引用 | 回复 |