金牌会员
- 积分
- 1170
- 金钱
- 1170
- 注册时间
- 2020-12-1
- 在线时间
- 149 小时
|
本帖最后由 起个什么名字好 于 2023-10-27 15:06 编辑
开发板出厂系统默认没有配置CAN,也没有板载CAN芯片
开发板CIF接口的可复用功能具体可以参考ATK-CLRV1126F核心板接口数据手册.V1.0.xlsx
可以看到CIF接口中有管脚可以复用为CAN,具体如下:
原理图管脚 | 可复用功能 | GPIO | CIF_D2_M0 | CAN_RXD_M1 | GPIO3_A6 | CIF_D3_M0 | CAN_TXD_M1 | GPIO3_A7 | 注意,CIF这一路的电源域是1.8V的,外接设备时注意电平转换,防止烧坏芯片
参考文档SDK/docs/Common/CAN开发文档
修改kernel/arch/arm/boot/dts/rv1126-alientek.dtsi,添加can节点
- &can {
- pinctrl-names = "default";
- pinctrl-0 = <&canm1_pins>;
- status = "okay";
- };
复制代码
保存文件
内核添加CAN配置:
- cd kernel/ //跳转到kernel
- make ARCH=arm alientek_rv1126_defconfig //选择要修改的kernel 配置文件
- make ARCH=arm menuconfig //进入图形界面配置
复制代码 配置如下:
- Symbol: CAN [=y] │
- │ Type : tristate │
- │ Prompt: CAN bus subsystem support │
- │ Location: │
- │ (1) -> Networking support (NET [=y]) │
- │ Defined at net/can/Kconfig:5 │
- │ Depends on: NET [=y] │
- │ │
- │ │
- │ Symbol: CANFD_ROCKCHIP [=n] │
- │ Type : tristate │
- │ Prompt: Rockchip CANFD controller │
- │ Location: │
- │ -> Networking support (NET [=y]) │
- │ -> CAN bus subsystem support (CAN [=y]) │
- │ -> CAN Device Drivers │
- │ (2) -> Platform CAN drivers with Netlink support (CAN_DEV [=y]) │
- │ Defined at drivers/net/can/rockchip/Kconfig:10 │
复制代码
保存配置文件并编译:
- make ARCH=arm savedefconfig //把.config 保存为defconfig
- cp defconfig arch/arm/configs/alientek_rv1126_defconfig // 更新修改好的配置文件到alientek_rv1126_defconfig
- cd .. //跳转到源码目录
- ./build.sh kernel //编译内核
复制代码
编译成功后就会在kernel目录下生成zboot.img文件,将zboot.img烧写到开发板然后启动。
在开发板执行ifconfig -a
此时根文件系统还没有添加can的工具,我们需要添加。
返回到sdk根目录下,修改./buildroot/configs/alientek_rv1126_defconfig文件,加入以下内容:
- BR2_PACKAGE_CAN_UTILS=y
- BR2_PACKAGE_IPROUTE2=y
复制代码
然后编译buildroot
- source envsetup.sh alientek_rv1126
- ./build.sh rootfs
- ./mkfirmware.sh
复制代码
编译成功后会在rockdev目录生成rootfs.img,把镜像烧写到开发板上启动。
修改CAN的IO电平,模块出来是2~3.3V左右,我们核心板对应的IO是1.8V的,需要设计电路将模块的IO转成1.8V的再连接到核心板
转换电路可以参考开发板MIPI CSI 的电平转换电路
然后连接CAN模块和开发板,TX接TX,RX接RX
连接CAN模块和CAN测试仪,CANL接CANL,CANH接CANH,最后用can分析仪测试即可。
|
|