首页 > 其他分享 >RK3568驱动指南|第十六篇 SPI-第195章 实践:移植官方mcp2515驱动

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

时间:2024-07-31 16:18:55浏览次数:14  
标签:195 RK3568 SPI 内核 can1 驱动 mcp2515

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


【公众号】迅为电子

【粉丝群】258811263(加群获取驱动文档+例程)

【视频观看】嵌入式学习之Linux驱动(第十六篇 SPI_全新升级)_基于RK3568

第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 = <RK_PB0 IRQ_TYPE_EDGE_FALLING>;
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

标签:195,RK3568,SPI,内核,can1,驱动,mcp2515
From: https://www.cnblogs.com/topeet/p/18334890

相关文章

  • 利用人工智能ChatGPT自动生成基于PO的数据驱动测试框架
    简介PO(PageObject)设计模式将某个页面的所有元素对象定位和对元素对象的操作封装成一个Page类,并以页面为单位来写测试用例,实现页面对象和测试用例的分离。数据驱动测试(DDT)是一种方法,其中在数据源的帮助下重复执行相同顺序的测试步骤,以便在验证步骤进行时驱动那些步骤的输入值和......
  • 领域驱动大型结构之SYSTEM METAPHOR(系统隐喻)
      在领域驱动设计(Domain-DrivenDesign,DDD)中,"SystemMetaphor"是一种用于帮助开发团队和业务人员在理解和沟通系统时使用的概念模型。虽然"SystemMetaphor"并不是DDD的核心概念,但它在敏捷开发方法(如极限编程,XP)中被广泛使用,并且与DDD的理念有一定的契合之处。什......
  • 手把手教你玩转ESP8266(原理+驱动)
    在嵌入式开发中,无线通信的方式有很多,其中WIFI是绕不开的话题。说到WIFI通信,就不得不提ESP8266了。ESP8266是一款高性能的WIFI串口模块,实现透明传输。只要有一定的串口知识,不需要知道WIFI原理就可以上手,在业内应用广泛。1.源码下载STM32F103C8T6模板工程链接:https......
  • 【RK3568】点亮eDP屏幕+双屏异显
    一、驱动eDP屏幕    一般来说,屏幕的规格书中会找到屏幕的相关参数,如没有,也可直接找屏幕厂商要,首先打开屏幕的规格书,搜索EDIDTable,可找到如下信息:    (1)显示时序配置        将这些参数对应到设备树中,即可完成下面修改,关键节点就是显示时序配置的d......
  • ADUM4146BRWZ-RL驱动SIC的功耗计算
    通常的算法是将SiCMOSFET的栅极可以粗略地模拟为电容负载。但由于米勒电容和其他的非线性,因而把其电容负载的值等效于5倍输入SICMOS的Ciss,因而驱动的功耗近似为:PDISS​=CEST​×(VDD2​−VSS2​)2×fS​其中:CEST​ 是估算的电容值,等于SiCMOSFET的输入电容 CISS​ 乘以5......
  • AP5123 宽输入5-150V 外置MOS管平均电流型LED降压恒流驱动器 手电筒与汽车灯方案
    产品描述AP5123是一款外围电路简单的Buck型平均电流检测模式的LED恒流驱动器,适用于5-150V电压范围的非隔离式大功率恒流LED驱动领域。AP5123采用PWM工作模式,频率可变。利用平均电流检测模式,因此具有优异的负载调整率特性,高精度的输出电流特性。AP5123集成了高低亮功能,可......
  • 平台总线驱动和设备的匹配流程分析
    参考文章:https://blog.csdn.net/qq_44182115/article/details/1232315761、宏module_platform_driver//include/linux/platform_device.h展开为staticint__init__platform_driver_init(void)\{\ returnplatform_driver_register(&......
  • 解决ubuntu 22.04新内核6.5.0-15无法编译NVIDIA显卡驱动
    这里的新内核应该包括6.5.*系列的遇到的问题:在安装NVIDIA显卡驱动发现了一个问题,主要日志如下所示:make[3]:***[scripts/Makefile.build:251:/tmp/selfgz1310041/NVIDIA-Linux-x86_64-550.54.14/kernel/nvidia/nvlink_linux.o]Error1make[3]:Target'/tmp/selfgz131004......
  • 记录一次IPhone和Android手机usb网卡驱动的移植过程
    记录一次IPhone和Android手机USB网卡的移植过程移植环境IPhoneUSB网卡的快速移植1.**添加驱动支持**2.USB连接IPhone手机,留意手机的`信任弹窗`并点击确定和输入密码3.检查USB网卡是否生成4.如果生成的网卡没有自动分配IP,安装udhcpc5.验证测试AndroidUSB网卡的快......
  • 推出LP5810系列具有 I2C 和自动动画控制功能的 4 通道 RGBW LED 驱动器,适用于便携式和
    说明LP5810是一款具有自主动画引擎控制功能的4通道RGBWLED驱动器。该器件在点亮LED时具有0.4mA(典型值)的超低正常工作电流。该器件采用模拟调光和PWM调光两种方法实现强大的调光性能。每个LED的输出电流可在0.1mA至25.5mA或0.2mA至51mA之间以256个阶跃进......