基于zynq在linux下的AXI-CAN实战

ZYNQ系列文章目录

第一章:基于zynq在linux下的phy调试记录
第二章:qemu制作ubuntu文件系统
第三章:基于zynq在linux下的AXI-CAN实战
第四章:基于zynq在linux下的HDMI实战



前言

记录zynq调试:

从petalinux的搭建,到uboot、kernel、rootfs的调试、打包


提示:以下是本篇文章正文内容,下面案例可供参考

一、vivado中AXI-CAN的配置

博主基于AXI-CAN,只因为基于PL端,只要FPGA资源够,相当于可以无限制拓展

1.1 PL配置

多余的不说了直接上配置,有些基础的步骤我就直接跳了,只留关键部分

添加zynq与axi-can的IP核

在这里插入图片描述

基于ZYNQ-IP核配置AXI-CAN需要的中断端口

在这里插入图片描述

按步骤执行,进行时钟及总线自动配置

在这里插入图片描述

把下面圈出来的地方进行管脚配置,及线束连接

在这里插入图片描述
在这里插入图片描述
在菜单导航栏中点击该选项中的 “Open Elaborated Design ”。然后在菜单栏中点击 Layout ,在下拉列表中选择 I/O Planning 打开 I/O Ports 窗口。我们将在 I/O Ports 窗口中对can_rx和can_tx 引出的接口进行管脚分配。
在这里插入图片描述
然后点击ctrl+s
在这里插入图片描述
在这里插入图片描述

最后点击Generate Bitstream生成system.bit。

1.2 SDK配置

2、完成PL配置后,生成FPGA bit流,包含bit流打开SDK
新建FSBL工程,编译生成fsbl.elf

在这里插入图片描述

1.3 镜像编译

3、正常情况下,按照petalinux的开发流程,把工程导入ubuntu环境,使用petalinux去构建SDK,然后打包镜像导入SD卡
但本人使用的是自己搭建的SDK,脱离petalinux开发环境,最后只需要bit流和fsbl,build脚本自动编译 打包生成镜像文件即可

在这里插入图片描述

二、petalinux中AXI-CAN的配置

2.1 内核配置

kernel根目录之下执行

make menuconfig ARCH =arm CROSS_COMPILE=arm-linux-gnueabihf

配置xiilinx自己的can驱动。
在这里插入图片描述
在这里插入图片描述

2.2 设备树配置

前提:PL的AXI-CAN设备树直接用SDK去生成
生成pl.dtsi

		can_0: can@43c10000 {
			clock-names = "can_clk", "s_axi_aclk";
			clocks = <&clkc 15>, <&clkc 15>;
			compatible = "xlnx,can-5.0", "xlnx,axi-can-1.00.a";
			interrupt-names = "ip2bus_intrevent";
			interrupt-parent = <&intc>;
			interrupts = <0 31 4>;
			reg = <0x43c10000 0x10000>;
			rx-fifo-depth = <0x40>;
			tx-fifo-depth = <0x40>;
		};

三、petalinux下AXI-CAN测试

3.1 检查设备树是否加载成功

此处与上面略有差别,本人在实际工程中使用了2路AXI-CAN

在这里插入图片描述

3.2 检查can设备是否注册成功

在这里插入图片描述

3.3 进行AXI-CAN实际收发测试

在这里插入图片描述

3.4 CAN测试工具及常见CAN测试命令

工具链:首选can-utils
操作命令:

关闭CAN0节点
ifconfig can0 down
CANO设置波特率
ip link set can0 type can bitrate 500000
CANO设置回环
ip link set can0 type can loopback on
启动CANO节点
ifconfig can0 up
查看can节点状态
ip -details link show canO
CAN发送
cansend can0 123#0102030405060708
CAN接收
candump can0

总结

这里对文章进行总结:
本次要讲述的zynq的AXI-CAN实战小知识就说到这里了,兄弟萌要有什么指导意见或疑问可以在评论区留下"足迹"。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值