0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

【RK3562J开发笔记】MCP2518FD外部CAN-FD控制器的调试方法

飞凌嵌入式 2024-12-07 14:22 次阅读

“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=arm64

(1) 按下 ‘/’ 键进入搜索界面,输入 mcp251 可搜索MCP2518驱动:

wKgZO2dT6cGAWDopAAD-7pDMpj435.jpeg

上图中的CAN_MCP251XFD就是适配MCP2518FD模块的驱动。

(2) 选择 2 将其打 * 编译进内核:

wKgZPGdT6cGARAJ0AABEGgBWZV056.jpeg

(3)选择 save 保存配置到defconfig文件,文件路径:

/home/forlinx/3562/OK3562-linuxsource/kernel/arch/arm64/configs/OK3562_Linux_defconfig

2、适配设备树

(1) 飞凌嵌入式RK3562J开发板已引出一组SPI引脚:

wKgZO2dT6cGAV1iSAACSUJZKFxw73.jpeg

(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";

compatible = "forlinx,ok3562","rockchip,rk3562";

+ mcp2518_clk: mcp2518-clk { + compatible = "fixed-clock"; + #clock-cells = <0>; + clock-frequency = <40000000>; + };

+ forlinx-control { status = "disabled"; disp_type = "mipi"; //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: spi@0 { +/* spi_dev0: spi@0 { compatible = "rohm,dh2228fv";

2 / 5 pl022,com-mode = <1>; spi-max-frequency = <10000000>; reg = <0>; status = "okay"; + };*/ + spi@0{ + compatible = "microchip,mcp2518fd"; + reg = <0>; + clocks = <&mcp2518_clk>;

+ pinctrl-names = "default"; + pinctrl-0 = <&mcp2518_irq_pins>;

+ spi-max-frequency = <20000000>;

+ interrupts-extended= <&gpio4 RK_PB0 IRQ_TYPE_LEVEL_LOW>;

};

};

mcp2518_clk时钟频率节点,要匹配模块实际的晶振频率;

② 模块上有的 INT 脚是模块的中断脚,在适配时需要连接一个可控的GPIO引脚作为终端脚;

③ 在 spi2 节点下添加匹配MCP2518驱动的设备树信息,compatible 信息不能出错,这是匹配驱动的重要属性。

3、编译烧写

将以上的驱动和设备树配置好后,编译内核烧写进开发板就可以测试了:

(1) 在源码目录下单独编译kernel:

forlinx@ubuntu:~/3562/OK3562-linux-source$ ./build.sh kernel

在源码目录下的kernel目录下会生成镜像文件 boot.img

(2) 将镜像文件烧录到开发板,需要用到工具 RKDevTool ,此工具在OK3562的资料包里可以找到:

① 打开烧写工具;

② 用Type-C数据线连接PC和开发板底部的Type-C0接口

③ 按住开发板的Recovery键不要松开,重启开发板;

④ 注意工具会识别到开发板是否进入烧录状态。

wKgZPGdT6cGAU9M5AADfs6YZzWw56.jpeg

⑤ 择之前编译好的 boot.img 镜像文件,在boot选项前面打勾,点击执行进行烧写,烧写完成会自动重启开发板

4、功能测试

在开发板内搜索can节点,使用 ifconfig -a 命令

wKgZO2dT6cGAPbDNAABowdZbQS451.jpeg

可以看到生成的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设备设置成服务端

wKgZPGdT6cGAXxTaAABGIkgcokE71.jpeg

③ 配置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 //发送信息

wKgZPGdT6cGAXTVmAABW_17OENY93.jpeg

④ OK3562J-C开发板会收到OK3568发来的消息

wKgZO2dT6cGAWVHXAAA3QBzdChI70.jpeg

(注:上图中出现的报错是MCP2518FD驱动的问题,测试不会影响通信。)

(2) OK3562J-C开发板发送数据:

① 设置波特率等操作同上,在配置功能时要使用 cansend 命令发送数据。

wKgZPGdT6cGAP89_AAA0kS1uEL469.jpeg

② OK3568-C依照OK3562-C的方法配置成接收数据的服务端。

ifconfig can0 down

ip link set can0 up type can bitrate 500000

ifconfig can0 up

candump can0&

wKgZO2dT6cGAaKgRAABbZtAh4R891.jpeg

可以看到,两块开发板可以进行正常的数据互发。以上是飞凌嵌入式RK3562J开发板适配和测试MCP2518FD模块的全部过程,希望能够对大家的项目开发有所帮助。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 控制器
    +关注

    关注

    112

    文章

    16356

    浏览量

    177981
  • 嵌入式
    +关注

    关注

    5082

    文章

    19118

    浏览量

    305038
  • Linux
    +关注

    关注

    87

    文章

    11303

    浏览量

    209435
  • CANFD
    +关注

    关注

    0

    文章

    58

    浏览量

    4943
  • RK3562
    +关注

    关注

    0

    文章

    28

    浏览量

    51
收藏 人收藏

    评论

    相关推荐

    应用指南—如何使用DSLogic分析CAN/CAN-FD信号?

    应用指南—如何使用DSLogic分析CAN/CAN-FD 信号?
    的头像 发表于 09-04 14:15 1986次阅读
    应用指南—如何使用DSLogic分析<b class='flag-5'>CAN</b>/<b class='flag-5'>CAN-FD</b>信号?

    MCP2518FD:带SPI接口的外部CANFD控制器最高8M用户手册/原理图/参考代码等资料汇总分享

    控制器 MCP2518FD是一款经济高效且外形小巧的外部CAN FD控制器,可通过可用的SPI接
    发表于 08-27 16:02

    一文浅析汽车CAN-FD总线的通信应用

    CAN)的功能设计,并对网关做了功能安全冗余设计,网关功能安全设计内容在此不做赘述。2.3 设计实现2.3.1 车型CAN-FD节点拓扑结构设计在本车型项目中,CAN-FD 节点主要有网关
    发表于 02-14 14:22

    多核异构-双核高速率CAN-FD评测

    产业的发展,各种传感控制器数量的增多,总线上的数据量也激增,这使得CAN2.0总线在传输速率和带宽方面的缺点暴露的更加明显,于是就诞生了CAN-FD
    发表于 02-17 15:37

    是否有任何外部组件可以使ESP32S3与CAN-FD兼容?

    控制器与 ISO11898-1 FD 格式帧不兼容,并将此类帧解释为错误。我想知道是否有任何外部组件可以使 ESP32S3 与 CAN-FD 兼容。
    发表于 03-02 08:35

    Microchip宣布提供业界第一款外部CAN灵活数据速率(CAN FD控制器MCP2517FD

    Microchip日前宣布,开始提供业界第一款外部CAN灵活数据速率(CAN FD控制器。采用MCP2
    的头像 发表于 10-19 06:31 2w次阅读

    CAN FD控制器MCP2517FD的主要特性 PCB正面布局

    microchip公司的MCP2517FD是成本效益和小占位尺寸的CAN FD(灵活数据速率)控制器,具有和微处理(MCU)接口的SPI接
    发表于 05-25 01:25 1.2w次阅读
    <b class='flag-5'>CAN</b> <b class='flag-5'>FD</b><b class='flag-5'>控制器</b><b class='flag-5'>MCP2517FD</b>的主要特性 PCB正面布局

    带SPllnterface的外部CAN FD控制器MCP2517FD的英文数据手册

    MCP2517FD是一种低成本、占地面积小的FD控制器,可以很容易地添加到具有可用SPI接口的微控制器中。因此,CAN
    发表于 07-10 08:00 34次下载
    带SPllnterface的<b class='flag-5'>外部</b><b class='flag-5'>CAN</b> <b class='flag-5'>FD</b><b class='flag-5'>控制器</b><b class='flag-5'>MCP2517FD</b>的英文数据手册

    MCP2517FD CAN FD控制器的详细资料和数据手册免费下载

    MCP2517FD是一种成本低廉、占地面积小的CAN FD控制器,可以容易地添加到具有可用SPI接口的微控制器中。因此,可以容易地将
    发表于 09-21 08:00 213次下载
    <b class='flag-5'>MCP2517FD</b> <b class='flag-5'>CAN</b> <b class='flag-5'>FD</b><b class='flag-5'>控制器</b>的详细资料和数据手册免费下载

    CAN-FD协议你了解多少 ?

    CAN-FD协议你了解多少?
    的头像 发表于 03-08 15:40 1.7w次阅读

    can总线一帧多少字节多少位_MCU扩展CAN/CAN FD接口方案MCP2518FD+ATA6563

    “本文介绍MCU通过SPI串口扩展CAN/CAN FD接口扩展方案,该方案基于MCP2518FD+ATA6563,可快速部署应用于实际项目。”1.C
    发表于 10-29 11:21 18次下载
    <b class='flag-5'>can</b>总线一帧多少字节多少位_MCU扩展<b class='flag-5'>CAN</b>/<b class='flag-5'>CAN</b> <b class='flag-5'>FD</b>接口方案<b class='flag-5'>MCP2518FD</b>+ATA6563

    STM32设备上的CAN FD

    本文件的目的如下所述: •概述具有灵活数据速率(CAN-FD)协议的控制器局域网(CAN)。 •描述CAN-FD相对于经典CAN
    发表于 08-28 10:34 8次下载

    简单介绍基于CAN-FD的诊断通信传输层

    CAN-FDCAN withFlexible Data-Rate的简称,从名称可以看出,CAN-FD的数据速率是可变的。
    发表于 11-10 17:46 2195次阅读

    车载CAN-FD的抗扰度评估技术

    众所周知,大量的电子控制单元(ECU)和高速通信局域网(LAN)对于高级驾驶辅助系统(ADAS)来说是必要的。原始设备制造商(OEM)有兴趣在车辆上引入具有灵活数据速率的控制器区域网络(CAN-FD
    的头像 发表于 12-14 16:52 1394次阅读

    MCP2517FD小尺寸CAN FD控制器规格书

    电子发烧友网站提供《MCP2517FD小尺寸CAN FD控制器规格书.pdf》资料免费下载
    发表于 11-20 17:00 0次下载