您现在的位置是:新闻 >>正文
【RK3562J开发笔记】MCP2518FD外部CAN
新闻65人已围观
简介“SPI转。CAN。-FD”是嵌入式开发范畴的常用办法,它极大地促进了不同。通讯接口。之间的无缝衔接,并明显降低了体系规划的复杂性。飞凌嵌入式。依托。瑞芯微。RK3562J。处理器。打造的OK3562 ...
“SPI转。CAN。-FD”是嵌入式开发范畴的常用办法,它极大地促进了不同。通讯接口。之间的无缝衔接,并明显降低了体系规划的复杂性。飞凌嵌入式。依托。瑞芯微。RK3562J。处理器。打造的OK3562J-C开发板由于内置了SPI转CAN-FD驱动,然后原生支撑这一功用。该开发板特别规划了一组SPI引脚【P8】,专为SPI转CAN-FD运用而引出,为用户供给了极大的便当。
MCP2518FD是一款在各行业中都有着广泛运用的CAN-FD。控制器。芯片。,本文就将为咱们介绍如安在飞凌嵌入式RK3562J开发板上适配MCP2518FD芯片。
1、适配驱动。
RK3562J的内核中现已具有MCP2518FD的驱动文件,要在装备文件中将驱动装备进内核,在kernel下翻开图形化装备界面。make menuconfig ARCH=。arm。64。。
(1) 按下 ‘。/。’ 键进入查找界面,输入。 mcp251。 可查找MCP2518驱动:
上图中的CAN_MCP251XFD便是适配MCP2518FD模块的驱动。
(2) 挑选 2 将其打 * 编译进内核:
(3)挑选 save 保存装备到defconfig文件,文件途径:
/home/f。or。linx/3562/OK3562-。linux。source/kernel/arch/arm64/configs/OK3562_Linux_defconfig。
2、适配设备树。
(1) 飞凌嵌入式RK3562J开发板已引出一组SPI引脚:
(2) 驱动装备完结后要装备的是设备树文件:
OK3562-C-common.dtsi。
(3) 详细的装备。信息。如下:。
diff --git a/arch/arm64/boot/dts/。rockchip。/OK3562-C-common.dtsi b/arch/arm64/boot/dts/rockchip/OK3562-C-common.dtsi index 158f03d70..671a491bf 100644 --- a/arch/arm64/boot/dts/rockchip/OK3562-C-common.dtsi +++ b/arch/arm64/boot/dts/rockchip/OK3562-C-common.dtsi -19,6 +19,12 model = "Forlinx OK3562 Board";
compa。ti。ble = "forlinx,ok3562","rockchip,rk3562";
+ mcp2518_clk: mcp2518-clk { + compatible = "fixed-clock"; + #clock-cells =。 <0>; + clock-frequency =。 <40000000>; + };
+ forlinx-control { status = "disabled"; disp_type = "mi。pi。"; //mipi or lvds -662,6 +668,13 }; &pinctrl { + + mcp2518 { + mcp2518_irq_pins:mcp2518_irq_pins。
{ + rockchip,pins =。 <4 RK_PB0 RK_FUNC_GPIO &pcfg_pull_none>; + }; + }; + touch { gt928_lvds_gpio:gt928-lvds-gpio { rockchip,pins =。 <3 RK_PB0 RK_FUNC_GPIO &pcfg_pull_none>, -980,13 +993,24 &spi2 { + pinctrl-names = "default";
+ pinctrl-0 =。 <&spi2m0_csn0 &spi2m0_csn1 &spi2m0_pins>; status = "okay"; - spi_dev0: spi0 { +/* spi_dev0: spi0 { compatible = "rohm,dh2228fv";
2 / 5 pl022,com-mode =。 <1>; spi-max-frequency =。 <10000000>; reg =。 <0>; status = "okay"; + };*/ + spi0{ + compatible = "。microchip。,mcp2518fd"; + reg =。 <0>; + clocks =。 <&mcp2518_clk>;
+ pinctrl-names = "default"; + pinctrl-0 =。 <&mcp2518_irq_pins>;
+ spi-max-frequency =。 <20000000>;
+ in。te。rrupts-extended=。 <&gpio4 RK_PB0 IRQ_TYPE_LEVEL_LOW>;
};
};
①。 mcp2518_clk。是。时钟。频率节点,要匹配模块实践的晶振频率;
② 模块上有的。 INT。脚是模块的中断脚,在适配时需求衔接一个可控的GPIO引脚作为终端脚;
③ 在。 spi2。节点下增加匹配MCP2518驱动的设备树信息,compatible。 信息不能犯错,这是匹配驱动的重要特点。
3、编译烧写。
将以上的驱动和设备树装备好后,编译内核烧写进开发板就可以测验了:
(1) 在源码目录下独自编译kernel:。
forlinxubuntu:~/3562/OK3562-linux-source$ ./build.sh kernel。
在源码目录下的kernel目录下会生成镜像文件。 boot.img。
(2) 将镜像文件烧录到开发板,需求用到东西。 RKDevTool。 ,此东西在OK3562的。材料。包里可以找到:
① 翻开烧写东西;
② 用。Type-C。数据线衔接PC和开发板底部的Type-C0。接口。;
③ 按住开发板的Recovery键不要松开,重启开发板;
④ 留意东西会识别到开发板是否进入烧录状况。
⑤ 择之前编译好的。 boot.img。 镜像文件,在boot选项前面打勾,点击履行进行烧写,烧写完结会主动重启开发板。
4、功用测验。
在开发板内查找can节点,运用。 ifconfig -a。 指令。
可以看到生成的can0节点。接下来的功用测验,咱们选用OK3562J-C和OK3568-C两块开发板的can0进行数据互发测验。
(1) OK3562J-C开发板接纳数据:
① 设置can0的波特率。
ip link set can0 type can bitrate 500000。
② 翻开can0设备,并把can0设置成服务端接纳数据。
ifconfig can0 up //翻开can0设备。
candump can0& //can0设备设置成服务端。
③ 装备OK3568-C开发板的can0作为客户端,发送信息给OK3562J-C开发板的can0。
ifconfig can0 down。
ip link set can0 up type can bitrate 500000。
ifconfig can0 up。
cansend can0 123#1122334aabbccd //发送信息。
④ OK3562J-C开发板会收到OK3568发来的音讯。
(注:上图中呈现的报错是MCP2518FD驱动的问题,测验不会影响。通讯。。)。
(2) OK3562J-C开发板发送数据:
① 设置波特率等操作同上,在装备功用时要运用。 cansend。指令发送数据。
② OK3568-C按照OK3562-C的办法装备成接纳数据的服务端。
ifconfig can0 down。
ip link set can0 up type can bitrate 500000。
ifconfig can0 up。
candump can0&。
可以看到,两块开发板可以进行正常的数据互发。以上是飞凌嵌入式RK3562J开发板适配和测验MCP2518FD模块的悉数进程,期望可以对咱们的项目开发有所协助。
内容来源:https://tongdaidmxanh.com/app-1/xôi lạc tv live,http://chatbotjud.saude.mg.gov.br/app-1/robo-mines-brabet
Tags: