主题:EM3352的CAN接口

  共有61955人关注过本帖    
帅哥哟,离线,有人找我吗?
hzc
1楼 信息 | 搜索 | 邮箱


加好友 发短信 员工
  发帖心情 Post By:2016-3-24 17:16:00   [显示全部帖子]

你好,这个打印信息是驱动打印的,只是can控制器寄存器的一些信息,启动can接口都会打印这条信息。
can接口不通讯的话,请把具体的情况告知我们,方便找到原因。

  单帖管理 | 引用 | 回复 回到顶部
帅哥哟,离线,有人找我吗?
hzc
2楼 信息 | 搜索 | 邮箱


加好友 发短信 员工
  发帖心情 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编辑过]

  单帖管理 | 引用 | 回复 回到顶部
帅哥哟,离线,有人找我吗?
hzc
3楼 信息 | 搜索 | 邮箱


加好友 发短信 员工
  发帖心情 Post By:2016-3-25 14:47:00   [显示全部帖子]

你好,那条信息是启动的时候打印的,正常情况启动好之后一直运行就不会打印这条信息了。
加入CAN控制芯片的复位功能就是为了在实际的使用中,就算出现问题,也能自动恢复。
如果像之前的情况一直复位,很可能是硬件连接上存在问题,每次发送都检测到错误,所以一直复位CAN驱动芯片。

  单帖管理 | 引用 | 回复 回到顶部
帅哥哟,离线,有人找我吗?
hzc
4楼 信息 | 搜索 | 邮箱


加好友 发短信 员工
  发帖心情 Post By:2016-4-10 15:13:00   [显示全部帖子]

你好,出现这个情况,肯定是在通讯中驱动检测到错误,才会对can控制器进行复位,这并不是驱动的BUG,只是为了在运行过程中就算遇到错误,也能够自动回复正常。
造成这个问题的原因可能是硬件连接,也可能是总线上的干扰或是其他原因,比如连接线是否为双绞线,连接的距离以及现场环境等,下次出现反复重启can控制器的情况,可以将连接断开,看看板子是否还是一直重启,这样就可以判定是板子这一边的问题还是连接上或者其他问题。

  单帖管理 | 引用 | 回复 回到顶部

返回首页

EM3352的CAN接口

用户名:
            验证码: 验证码,看不清楚?请点击刷新验证码
内容: