nvidia xavier平台CAN控制器调试记录

free-jdx 2021-04-21 17:42:58 6452
1. 前言

由于需要接收车辆的CAN信息,就需要CAN收发功能;
正好xavier平台自带两路CAN控制器;
以下是驱动调试记录

2. 硬件连接

CAN总线获得数据使用OBD2;
连接2个CAN收发器

3. CAN配置
#check current values of related registers
sudo busybox devmem 0x0c303000
sudo busybox devmem 0x0c303008
sudo busybox devmem 0x0c303010
sudo busybox devmem 0x0c303018
#0x0000C055
#0x0000C055
#0x0000C059
#0x0000C059

#use devmem to modify registers
sudo busybox devmem 0x0c303000 32 0x0000C400
sudo busybox devmem 0x0c303008 32 0x0000C458
sudo busybox devmem 0x0c303010 32 0x0000C400
sudo busybox devmem 0x0c303018 32 0x0000C458

#check modified values of relate registers
sudo busybox devmem 0x0c303000
sudo busybox devmem 0x0c303008
sudo busybox devmem 0x0c303010
sudo busybox devmem 0x0c303018
#0x0000C400
#0x0000C458
#0x0000C400
#0x0000C458

#or use modeprobe to mount CAN controller
sudo modprobe can
sudo modprobe can-raw
sudo modprobe can-dev
sudo modprobe mttcan

#configure CAN controllers with 1Mbps baudrate
sudo ip link set can0 type can bitrate 1000000
sudo ip link set can1 type can bitrate 1000000

#loopback test
sudo ip link set can0 type can bitrate 1000000 loopback on
sudo ip link set can1 type can bitrate 1000000 loopback on

#open CAN controller
sudo ip link set up can0
sudo ip link set up can1
4. 疑问

(1)疑问1
当我测试环回模式,即使我没有附加CAN收发器到xavier,为什么can0和can1检测到?

(2)疑问2
我用以下命令配置了1Mbps波特率的CAN控制器,并使用CAN -utils发送数据包。
使用 “candump can0”,
没有收到任何信息。

(3)疑问3
尝试连接OBD2到DB9电缆,,并尝试用wireshark获取CAN数据包。
但是没有拿到包。
对OBD&CAN有什么使用建议?

这是一个终端,在循环返回模式测试。

5.调试建议

与nvidia fae沟通之后有如下建议

这是控制器环回测试。不需要收发器连接。它发送消息并检查msg并在RX行中将其发送回来。所以,你一定是Xavier CAN引脚的Tx和Rx短路了,所以你正在接收消息。这就意味着CAN 配置也都没问题。

如果没有接收到带有收发器的消息,请再次检查连接。

短CANH到CANH和CANL到CANL总线连接。
此外,检查120欧姆终止之间的CANH和CANL。

另外,看看统计数据是怎么说的:
ip -d -s link show can0
ip -d -s link show can1

6. 测试

这是我做的一个测试
测试两个CAN控制器如果你已经配置了硬件收发器电路。

根据这个github,我应该收到“can0 5A1[8] 11 22 33 44 55 66 77 88”。但我没有收到。
下图显示了' ip -d -s link show can0 '和' can1 '

7. 解决办法

将CANH连接到CANH,把CANL连接到CANL
与DB9连接器(银色连接器与绿色,蓝色,黄色,紫色线连接)

测试正常
所以硬件没问题

8. 如何使用CAN FD?

在CAN FD上有很多线程。
$ip link set can0 up type can bitrate 1000000 dbitrate 2000000 fd on berr-reporting on

从can0发送FD帧:
cansend can0 123 # # 1 abcdabcd

声明:本文内容由易百纳平台入驻作者撰写,文章观点仅代表作者本人,不代表易百纳立场。如有内容侵权或者其他问题,请联系本站进行删除。
free-jdx
红包 96 3 评论 打赏
评论
0个
内容存在敏感词
手气红包
    易百纳技术社区暂无数据
相关专栏
置顶时间设置
结束时间
删除原因
  • 广告/SPAM
  • 恶意灌水
  • 违规内容
  • 文不对题
  • 重复发帖
打赏作者
易百纳技术社区
free-jdx
您的支持将鼓励我继续创作!
打赏金额:
¥1易百纳技术社区
¥5易百纳技术社区
¥10易百纳技术社区
¥50易百纳技术社区
¥100易百纳技术社区
支付方式:
微信支付
支付宝支付
易百纳技术社区微信支付
易百纳技术社区
打赏成功!

感谢您的打赏,如若您也想被打赏,可前往 发表专栏 哦~

举报反馈

举报类型

  • 内容涉黄/赌/毒
  • 内容侵权/抄袭
  • 政治相关
  • 涉嫌广告
  • 侮辱谩骂
  • 其他

详细说明

审核成功

发布时间设置
发布时间:
是否关联周任务-专栏模块

审核失败

失败原因
备注
拼手气红包 红包规则
祝福语
恭喜发财,大吉大利!
红包金额
红包最小金额不能低于5元
红包数量
红包数量范围10~50个
余额支付
当前余额:
可前往问答、专栏板块获取收益 去获取
取 消 确 定

小包子的红包

恭喜发财,大吉大利

已领取20/40,共1.6元 红包规则

    易百纳技术社区