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

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

3天内不再提示

RK3568驱动指南|第十六篇 SPI-第195章 实践:移植官方mcp2515驱动

北京迅为电子 2024-07-31 16:17 次阅读

瑞芯微RK3568芯片是一款定位中高端的通用型SOC,采用22nm制程工艺,搭载一颗四核Cortex-A55处理器和Mali G52 2EE 图形处理器。RK3568 支持4K 解码和 1080P 编码,支持SATA/PCIE/USB3.0 外围接口。RK3568内置独立NPU,可用于轻量级人工智能应用。RK3568 支持安卓 11 和 linux 系统,主要面向物联网网关、NVR 存储、工控平板、工业检测、工控盒、卡拉 OK、云终端、车载中控等行业。

第195章 实践:移植官方mcp2515驱动
在前面的章节中从零编写了一个mcp2515的驱动程序,旨在对SPI驱动相关的知识进行学习,但实际上mcp2515的驱动程序在内核中已经提供了,在本章节将会讲解如何移植官方mcp2515驱动。

195.1 内核和设备树配置
Linux内核源码中默认已经有了MCP2515的驱动程序,驱动具体路径为“linux_sdk/kernel/drivers/net/can/spi/mcp251x.c”,所以只需要在make menuconfig图形化配置界面选中即可。

> Networking support

> CAN bus subsystem support

> CAN Device Drivers

> CAN SPI interfaces

<*> Microchip MCP251x and MCP25625 SPI CAN controllers

然后在kernel/arch/arm64/boot/dts/rockchip/rk3568-evb1-ddr4-v10.dtsi设备树中添加如下节点:

&spi0 {
status = "okay";
pinctrl-0 = <&spi0m1_cs0 &spi0m1_pins>;
pinctrl-1 = <&spi0m1_cs0 &spi0m1_pins_hs>;

mcp2515: mcp2515@0 {
compatible = "microchip,mcp2515";
reg = <0>;
spi-max-frequency = <10000000>;
interrupt-parent = <&gpio0>;
interrupts = ;
pinctrl-names = "default";
pinctrl-0 = <&mcp2515_int>;
clocks = <&clk8m>;
status = "okay";
};

clk8m: clk8m {
compatible = "fixed-clock";
#clock-cells = <0>;
clock-frequency = <8000000>;
};
};


然后在pinctrl节点下添加以下内容

mcp2515-gpio{
mcp2515_int:mcp2515-int {
rockchip,pins = <0 RK_PB0 RK_FUNC_GPIO &pcfg_pull_none>;
};
};


保存修改配置,然后重新编译内核镜像,修改好的设备树以及编译好的内核镜像存放路径为“iTOP-3568开发板\03_【iTOP-RK3568开发板】指南教程\02_Linux驱动配套资料\04_Linux驱动程序\121_mcp2515_08”。

195.2 运行测试
首先需要确保烧写的是上一小节修改编译出来的内核镜像,系统启动之后,输入“ifconfig -a”命令,如下图所示,可以看到生成的can1设备。

接下来输入以下命令进行回环测试:

ip link set can1 down

ip link set can1 type can bitrate 250000

ip link set can1 type can loopback on

ip link set up can1

candump can1 -L &

cansend can1 123#1122334455667788

如上图所示,发送和接收的数据是一样的,说明回环测试成功!

至此,移植官方MCP2515驱动实验完成!
————————————————

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.csdn.net/BeiJingXunWei/article/details/140181160

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

    关注

    38

    文章

    4163

    浏览量

    218170
  • SPI
    SPI
    +关注

    关注

    17

    文章

    1706

    浏览量

    91512
  • 瑞芯微
    +关注

    关注

    23

    文章

    414

    浏览量

    51298
  • RK3568
    +关注

    关注

    4

    文章

    514

    浏览量

    5034
收藏 人收藏

    评论

    相关推荐

    文档更新 |迅为 RK3568开发板驱动指南-第十五/十六

    运行测试 194 如何在Linux中使用模拟SPI 194.1 内核和设备树配置 194.2 运行测试 195
    发表于 07-08 11:04

    文档更新 | 迅为RK3568驱动指南-第十七篇(串口)

    194 如何在Linux中使用模拟SPI 195
    发表于 09-24 10:42

    迅为iTOP-RK3568开发板驱动开发指南-第十 PWM

    mcp2515驱动编写:完善write和read函数 193 Linux中通用SPI设备驱动
    发表于 10-29 10:13

    MCP2515资料表存疑

    大家好!我正在研究一个使用SPI实现CAN通信的项目。我使用MCP2515 E/ST作为CAN控制器,并且我有一个关于组件电源电压范围的非常简单的问题。数据表是21801E。在表13-1的DC特性
    发表于 09-30 09:34

    请问RK3399有飞凌mcp2515模块的驱动么?

    请问RK3399有飞凌mcp2515模块的驱动么?
    发表于 12-30 06:02

    如何解决扩展CAN芯片MCP2515驱动移植问题?

    扩展芯片,能否提供一下MCP2515驱动设备树文件,或者移植方案。下面是我们的硬件设计,用的是SPI2,中断管脚是G20_SPI2_CS1B
    发表于 01-04 07:02

    RK3288上的can bus芯片MCP2515不能正常使用如何解决

    最近在rk3288 android5.1 上去支持can bus 芯片MCP2515, android5.1中内核的版本为3.10.79, 已经自带了mcp2515驱动;尝试使用,发
    发表于 08-10 16:22

    基于linux的MCP2515中断配置问题

    linux下包含了MCP2515驱动驱动源码里面中断注册请问下,这个spi->irq是SPI自己的中断还是
    发表于 12-03 10:14

    iTOP-RK3568开发板驱动指南第五-中断

    _字符设备基础 第三期_并发与竞争 第四期_高级字符设备进阶 第五期_中断 第六期_平台总线 第七期_设备树 第八期_设备树插件 第九期_设备模型 第十期_热插拔 第十一期_pinctrl子系统 未完待续,持续更新中...哔哩哔哩搜索-迅为
    发表于 09-04 10:53

    更新 | 持续开源 迅为RK3568驱动指南第十一篇-pinctrl子系统

    《iTOP-RK3568开发板驱动开发指南》更新,本次更新内容对应的是驱动第十一期_pinctrl子系统-全新升级)视频,后续资料会不断更
    发表于 10-18 11:12

    MCP2515数据手册

    中文版MCP2515数据手册 SPI转CAN必备。
    发表于 03-22 14:20 40次下载

    RK3568驱动指南驱动基础进阶-进阶8 内核运行ko文件总结

    RK3568驱动指南驱动基础进阶-进阶8 内核运行ko文件总结
    的头像 发表于 01-31 14:58 1145次阅读
    <b class='flag-5'>RK3568</b><b class='flag-5'>驱动</b><b class='flag-5'>指南</b>|<b class='flag-5'>驱动</b>基础进阶<b class='flag-5'>篇</b>-进阶8 内核运行ko文件总结

    RK3568驱动指南驱动基础进阶-进阶5 自定义实现insmod命令实验

    RK3568驱动指南驱动基础进阶-进阶5 自定义实现insmod命令实验
    的头像 发表于 02-20 14:10 678次阅读
    <b class='flag-5'>RK3568</b><b class='flag-5'>驱动</b><b class='flag-5'>指南</b>|<b class='flag-5'>驱动</b>基础进阶<b class='flag-5'>篇</b>-进阶5 自定义实现insmod命令实验

    迅为RK3568开发板驱动开发指南-输入子系统

    迅为RK3568开发板驱动开发指南-输入子系统
    的头像 发表于 02-23 15:11 868次阅读
    迅为<b class='flag-5'>RK3568</b>开发板<b class='flag-5'>驱动</b>开发<b class='flag-5'>指南</b>-输入子系统

    瑞芯微RK3568 USB驱动

    瑞芯微RK3568 USB驱动程序
    发表于 11-11 14:18 1次下载