查看: 32632|回复: 7

jetson AGX Xavier关于CAN口调试

[复制链接]

77

主题

101

回帖

1819

积分

版主

Rank: 7Rank: 7Rank: 7

积分
1819
发表于 2019-11-20 11:06:32 | 显示全部楼层 |阅读模式
注意:确保jetson AGX Xavier系统是英文版本的(中文系统版本存在有很多漏洞,可能会导致CAN口无法调试)
首先安装一个工具来更改Xavier上的寄存器值:
sudo apt install busybox
sudo apt install busybox
  
然后我们需要重新配置与CAN控制器引脚对应的四个寄存器值。以下命令将重新配置这些引脚:
sudo busybox devmem 0x0c303000 32  0x0000C400
  
sudo busybox devmem 0x0c303008 32  0x0000C458
  
sudo busybox devmem 0x0c303010 32  0x0000C400
  
sudo busybox devmem 0x0c303018 32  0x0000C458
现在修改了寄存器值,我们可以使用以下modprobe命令安装CAN控制器并加载驱动程序:
sudo modprobe can
  
sudo modprobe can_raw
  
sudo modprobe mttcan
  
下一步是根据CAN总线和收发器的规格配置CAN控制器。在这里,我将CAN比特率设置为500 Kbps,启用灵活数据速率(FD),将有效负载比特率设置为2 Mbps并启用总线错误报告。如果您不确定所有这些设置,则可以在此之后设置bitrate值并忽略其他选项。
sudo ip link set can0 type can bitrate  500000 dbitrate 2000000 berr-reporting on fd on
  
sudo ip link set can1 type can bitrate  500000 dbitrate 2000000 berr-reporting on fd on
  
启动CAN接口:
sudo ip link set up can0
  
sudo ip link set up can1
要检查CAN控制器是否已成功启用,请使用该ifconfig命令。在输出,你应该能够看到can0和can1网络设备之间,如图下图:
TIM图片20191120110017.png
要在系统启动时自动完成上述CAN控制器配置,请创建一个enable_CAN.sh在根目录中命名的文件并使其可执行:
sudo touch /enable_CAN.sh
  
sudo chmod 755 /enable_CAN.sh
将以下行添加到此文件并保存。这些基本上与我们配置CAN控制器的命令相同。
#!/bin/bash

sudo modprobe can
  
sudo modprobe can_raw
  
sudo modprobe mttcan
  
sudo ip link set can0 type can bitrate  500000 dbitrate 2000000 berr-reporting on fd on
  
sudo ip link set can1 type can bitrate  500000 dbitrate 2000000 berr-reporting on fd on
  
sudo ip link set up can0
  
sudo ip link set up can1
  
  
exit 0  
如果/etc/rc.localJetson Xavier上已存在该文件,请跳至下一步。如果它不存在,请继续并通过在终端中运行以下命令来创建它:
printf '%s\n' '#!/bin/bash' 'exit 0' |  sudo tee -a /etc/rc.local
  
sudo chmod +x /etc/rc.local
  
在行/etc/rc.local之前的文件中添加以下exit 0行:
sh /enable_CAN.sh&
/etc/rc.local文件现在应该如下所示:
2.png
现在应该在系统启动时自动运行enable_CAN.sh脚本并配置CAN控制器。要测试它,请重新启动Jetson Xavier并检查在终端中运行命令时是否仍然看到can0和can1设备ifconfig。


安装CAN收发器
3.png
我们首先将扩展接头连接器的引脚#29(CAN0_DIN)和引脚#31(CAN0_DOUT)连接到其中一个收发器上的CRX和CTX引脚。同样,引脚#37(CAN1_DIN)和引脚#33(CAN1_DOUT)需要连接到另一个收发器上的CRX和CTX引脚。我们还需要将扩展​​插头连接器上的两组3.3V和GND引脚连接到收发器上的3V3和GND引脚。下图演示了收发器的引脚如何连接到扩展头引脚。
4.png
收发器上的CANH和CANL引脚需要连接到要与之通信的两条CAN总线的CAN高电平和CAN低电平线。我们还需要某种结构来修复收发器和Jetson Xavier开发人员套件。我们已经建立了一个简单的平台来安装板和收发器。下图显示了连接到Jetson Xavier开发人员套件并安装在此平台上的收发器。 5.png

回复

使用道具 举报

匿名  发表于 2019-11-20 15:26:01
请问所用的收发器型号可以分享一下吗?
回复 支持 反对

使用道具

404

主题

245

回帖

2万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
20384
发表于 2019-11-24 11:08:54 | 显示全部楼层
收发器,其实就是CAN电平转换而已,淘宝上也有的

风火轮微信公众号
回复 支持 反对

使用道具 举报

匿名  发表于 2019-11-25 16:31:33
您好,严格按照这个文章里的命令执行了一遍,然后一个命令窗口candump can1,另一个窗口cansend can0 123#1213141516171819,但candump那个窗口却什么也收不到,请问是怎么回事呢?连接和命令见下图。据说要调高低电平,具体是怎么操作呢?能指导一下吗?


回复 支持 反对

使用道具

匿名  发表于 2020-6-9 17:53:34
游客 223.71.46.x 发表于 2019-11-25 16:31
您好,严格按照这个文章里的命令执行了一遍,然后一个命令窗口candump can1,另一个窗口cansend can0 123#1 ...

请问你解决了吗,我也遇到这个问题了
回复 支持 反对

使用道具

0

主题

1

回帖

4

积分

新手上路

Rank: 1

积分
4
发表于 2020-7-21 10:54:53 来自手机 | 显示全部楼层
按照上面步骤,自发自收可以通过,但是针脚没有信号输出,这个是什么问题
回复 支持 反对

使用道具 举报

0

主题

2

回帖

6

积分

新手上路

Rank: 1

积分
6
发表于 2021-7-2 17:20:45 | 显示全部楼层
同样的步骤为什么can0能打开,can1打不开呢?
回复 支持 反对

使用道具 举报

0

主题

2

回帖

6

积分

新手上路

Rank: 1

积分
6
发表于 2021-7-2 17:38:53 | 显示全部楼层
你好,请问一下,我这边就显示Cannot find "can1"怎么办呢
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|风火轮WIKI|手机版|小黑屋|深圳风火轮团队 ( 粤ICP备17095099号 )

GMT+8, 2024-3-29 14:09 , Processed in 0.058259 second(s), 22 queries .

快速回复 返回顶部 返回列表
 
【客服1】 商务合作 15289193
【客服2】 业务洽谈 13257599
【客服3】 售前咨询 510313198
【邮箱】
smartfire@smartfire.cn