要使用 CAN 总线传输数据之前,首先需要对总线的是否工作正常进行测试,本文提供测试方法。
二、下载编译 can-utils 工具,编译后生成测试命令。
编译方法:
Can-utils 使用 GNU automake 方法编译。在工具包根目录下创建 automake.sh 脚本,内容如下:
其中 CC 是交叉编译器, --host 指定运行平台,--prefix 指定安装目录。
执行完脚本后在工具包根目录下生成 cansend candump 等可执行文件,将这些拷贝到根文件系统下进行测试
三、测试 can 通讯:
步骤一:up can0
$ip link set can0 up type can bitrate 125000
$ ifconfig can0 up
$ifconfig
步骤二:使用一款 can 收发器测试发送数据
将can 收发器连接到板子上can 接口
输入命令:cansend can0 500#1E.10.10
收发器上显示收到三字节数据 1E 10 10
步骤三:测试接收数据
输入命令:candump can0
在收发器发送区域设置ID为8,长度为8,数据为11,22,33,44,55,66,77,88
开发收到如下数据
四、针对 EVB 29288 板子 CAN PHY ( TJA1145 )调试
因为 CAN PHY( TJA1145 )需要通过 spi 总线进行初始化,所以需要进行以下的配置。
步骤 1 :编译生成 spidev 执行文件
输入命令:
$cd …/linux/Documentation/spi/
$ …/gcc-arm-1/bin/aarch64-linux-gnu-gcc spidev_test.c –o spidev
$ls
步骤 2 :将 spidev 文件移至路径 …/rootfs/usr/bin/ /*rootfs 为加载的根文件系统*/
步骤 3 :将 can_utils 编译生成的文件
移至路径 …/rootfs/usr/bin/
步骤 4 :将 TJA1145 从备用状态设置为激活状态
输入以下命令
#spidev_test -D /dev/spidev0.7 -v -H -b 8 -p "\x02\x07"
#spidev_test -D /dev/spidev0.6 -v -H -b 8 -p "\x02\x07"
#spidev_test -D /dev/spidev0.7 -v -H -b 8 -p "\x03\x07"
#spidev_test -D /dev/spidev0.6 -v -H -b 8 -p "\x03\x07"
#ip link set can0 type can bitrate 500000
#ifconfig can0 up
步骤 5 :测试发送功能
本次测试使用 can 收发器相关工具包:(应根据实际使用的收发工具获取相应的工具包)
首先安装 win7silicon_cp210x_vcp_6.6.1.0 的驱动
其次打开 EmbededDebug v2.0 串口工具软件
波特率设置为 115200
启动
开发板输入命令:
#cansend can0 500#1E.10.12
#cansend can0 500#1E.10.12
PC :接收数据如下
步骤 6 :测试接收功能
开发板输入命令:
#candump can0
PC:发送如下
开发板结果显示:
关于 S32V BSP 调试与进阶的更多博文内容可以通过关注大大通,或者扫描以下二维码即可链接到上一篇博文《 S32V GPIO 设备驱动 》, 二维码如下所示: |
五、附件
NXP 官方参考资料
1、Auto_Linux_BSP_21.0_User_Manual.pdf
评论