打印
[i.MX]

imx6q关于flexcan通讯bus-off问题

[复制链接]
3522|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
noraiein|  楼主 | 2016-7-5 19:26 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式
本人在做imx6q与PC上cantest的通讯测试。用的是天嵌E9的机子。
按照网上《can总线移植总结》这个文档进行了总线移植。
接收器使用了TJA1050的板子。
硬件连接是电脑连接usbcan盒子连接TJA1050的板子连接E9的卡片机,第一次进行收发实验成功,能接收数据也可以发送,但是TJA1050的板子发热很厉害。
第二次我想复现一下这个实验,就发现此时E9发送的数据接收不到了,通过查看can0口的details,发现send完以后,总线就bus-off了。但是loopback实验能成功,这应该说明软件部分没有问题。
我看到论坛里有类似的问题,说是硬件的问题。因为我之前成功过一次,所以就怀疑是不是TJA1050的板子烧坏了,手头目前没有万用表,等明天才能检查。
当然也想请问论坛里的大神,有没有其他看法。

相关帖子

沙发
noraiein|  楼主 | 2016-7-5 19:34 | 显示全部楼层
这是loopback下的输出

noot@linaro-ubuntu-desktop:~# ip link set can0 type can bitrate 50000 loopback  
root@linaro-ubuntu-desktop:~# ip link set can0 up                              
root@linaro-ubuntu-desktop:~# candump can0 &                                    
[1] 3545                                                                        
root@linaro-ubuntu-desktop:~# interface = can0, family = 29, type = 3, proto = 1
cansend can0 -i0x100 01 02 03 04                                                
interface = can0, family = 29, type = 3, proto = 1                              
<0x100> [4] 01 02 03 04                                                         
root@linaro-ubuntu-desktop:~# cansend can0 -i0x100 01 02 03 05                  
interface = can0, family = 29, type = 3, proto = 1                              
<0x100> [4] 01 02 03 05                                                         
root@linaro-ubuntu-desktop:~# ip -details link show can0                        
2: can0: <NOARP,UP,LOWER_UP,ECHO> mtu 16 qdisc pfifo_fast state UNKNOWN qlen 10
    link/can                                                                    
    can <LOOPBACK> state ERROR-ACTIVE (berr-counter tx 0 rx 0) restart-ms 0     
    bitrate 50000 sample-point 0.866                                            
    tq 1333 prop-seg 6 phase-seg1 6 phase-seg2 2 sjw 1                          
    flexcan: tseg1 4..16 tseg2 2..8 sjw 1..4 brp 1..256 brp-inc 1               
    clock 30000000                                                              

使用特权

评论回复
板凳
noraiein|  楼主 | 2016-7-5 19:36 | 显示全部楼层
这是发送实验的输出,可以看到此时can状态已经bus-off

root@linaro-ubuntu-desktop:~# ip link set can0 down                             
root@linaro-ubuntu-desktop:~# ip link set can0 up type can bitrate 250000      
root@linaro-ubuntu-desktop:~# ifconfig can0 up                                 
root@linaro-ubuntu-desktop:~# cansend -i0xb00 0x88 0x99                        
interface = 0x88, family = 29, type = 3, proto = 1                              
ioctl: No such device                                                           
root@linaro-ubuntu-desktop:~# cansend can0 -i0xb00 0x77 0x66                    
interface = can0, family = 29, type = 3, proto = 1                              
root@linaro-ubuntu-desktop:~# ip -details link show can0                        
2: can0: <NO-CARRIER,NOARP,UP,ECHO> mtu 16 qdisc pfifo_fast state DOWN qlen 10  
    link/can                                                                    
    can state BUS-OFF (berr-counter tx 0 rx 0) restart-ms 0                     
    bitrate 250000 sample-point 0.866                                          
    tq 266 prop-seg 6 phase-seg1 6 phase-seg2 2 sjw 1                           
    flexcan: tseg1 4..16 tseg2 2..8 sjw 1..4 brp 1..256 brp-inc 1               
    clock 30000000

使用特权

评论回复
地板
noraiein|  楼主 | 2016-8-3 09:56 | 显示全部楼层
解决了 bus-off的原因是硬件电路出问题

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

16

帖子

0

粉丝