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

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

3天内不再提示

迅为RK3568驱动指南|如何在Linux中使用模拟SPI

北京迅为电子 2024-08-01 13:37 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

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

第194章 如何在Linux中使用模拟SPI
在讲解SPI基础的时候提到过SPI可以分为硬件SPI和软件SPI,在前面的章节中使用的都是硬件SPI,当硬件SPI不够用时,可以使用GPIO来模拟SPI,在本节课将对软件SPI进行讲解。

I2C协议相比,SPI通信协议比较简单,没有起始信号、应答信号和终止信号,所以不会从零编写模拟SPI的驱动代码,直接使用Linux源码中已经写好的驱动程序即可。

194.1 内核和设备树配置
首先将模拟SPI驱动编译进内核,在make menuconfig图形化配置界面中选中如下选项

Device Drivers --->

[*]SPI support -->

<*> GPIO-based bitbanging SPI Master //选中

wKgZomarHsaAQyPqAAQxtB2QSEw865.png

软件SPI选定的引脚为开发板背面的4个GPIO,具体引脚功能图如下所示:

wKgaomarHs-ACfOKAAE0CSCwdL0297.png

设备树修改步骤如下所示:

首先对rk3568-evb1-ddr4-v10.dtsi设备树进行修改,在根节点添加SPI5节点,具体内容如下所示:

spi5: spi@gpiol {
compatible = "spi-gpio";
#address-cells = <1>;
gpio-sck = <&gpio0 RK_PB0_GPIO_ACTIVE_LOW>;
gpio-miso = <&gpio1 RK_PB0_GPIO_ACTIVE_LOW>;
gpio-mosi = <&gpio1 RK_PB1_GPIO_ACTIVE_LOW>;
cs-gpios = <&gpio1 RK_PB2_GPIO_ACTIVE_LOW>;
num-chipselects = <1>;
pinctrl-names = "default";
pinctrl-0 = <&spi5_gpios>;
status = "disabled";
};

wKgZomarHtiAFA1EAAMS6Nqgf88656.png


然后对pinctrl节点进行追加,追加内容如下所示:

wKgaomarHuaAdKspAAJc5E6Xx48565.png

spi5_gpios: gpios {
rockchip,pins = <0 RK_PB0 0 &pcfg_pull_none>,
<1 RK_PB0 0 &pcfg_pull_none>,
<1 RK_PB1 0 &pcfg_pull_none>,
<1 RK_PB2 0 &pcfg_pull_none>,
>;
};


最后修改之前编写的mcp2515节点,修改之后的内容如下所示:

&spi5 {
status = "okay";
mcp2515:mcp2515@0 {
compatible = "rockchip,spidev";
reg = <0>;
spi-max-frequency = <10000000>;
status = "okay";
};
};

wKgaomarHvOAbOmnAAJ4yy_23g4226.png


修改完成之后保存,然后重新编译内核镜像,编译完成的内核镜像存放路径为“iTOP-3568开发板\03_【iTOP-RK3568开发板】指南教程\02_Linux驱动配套资料\04_Linux驱动程序\120_soft_spi\01_修改好的内核”。

194.2 运行测试
首先要确保烧写的是上一小节编译出来的内核,烧写完成开发板启动之后,使用“ls /dev/spidev5.0”查看是否存在spidev5.0节点,如下图所示:

wKgaomarHvyAbdGpAADOpaIO-qs289.png

修改完成之后保存,然后重新编译内核镜像,编译完成的内核镜像存放路径为“iTOP-3568开发板\03_【iTOP-RK3568开发板】指南教程\02_Linux驱动配套资料\04_Linux驱动程序\120_soft_spi\01_修改好的内核”。

194.2 运行测试
首先要确保烧写的是上一小节编译出来的内核,烧写完成开发板启动之后,使用“ls /dev/spidev5.0”查看是否存在spidev5.0节点,如下图所示:

wKgaomarHwCASgmcAAKVgN5Osgk207.png

可以看到TX和RX收发的数据是一样,证明SPI回环成功,至此模拟SPI测试就完成了。

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

    关注

    88

    文章

    11628

    浏览量

    217990
  • SPI
    SPI
    +关注

    关注

    17

    文章

    1866

    浏览量

    99830
  • RK3568
    +关注

    关注

    5

    文章

    628

    浏览量

    7586
  • 迅为电子
    +关注

    关注

    0

    文章

    83

    浏览量

    305
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    RK3568开发板驱动指南Linux中通用SPI设备驱动

    RK3568开发板驱动指南Linux中通用SPI
    的头像 发表于 01-23 11:02 3435次阅读
    <b class='flag-5'>迅</b><b class='flag-5'>为</b><b class='flag-5'>RK3568</b>开发板<b class='flag-5'>驱动</b><b class='flag-5'>指南</b><b class='flag-5'>Linux</b>中通用<b class='flag-5'>SPI</b>设备<b class='flag-5'>驱动</b>

    RK3568驱动指南GPIO子系统实战:实现动态切换引脚复用功能

    RK3568驱动指南GPIO子系统实战:实现动态切换引脚复用功能
    的头像 发表于 05-22 14:27 1687次阅读
    <b class='flag-5'>迅</b><b class='flag-5'>为</b><b class='flag-5'>RK3568</b><b class='flag-5'>驱动</b><b class='flag-5'>指南</b>GPIO子系统实战:实现动态切换引脚复用功能

    RK3568开发板驱动指南GPIO子系统三级节点操作函数实验

    RK3568开发板驱动指南GPIO子系统三级节点操作函数实验
    的头像 发表于 05-26 15:39 1270次阅读
    <b class='flag-5'>迅</b><b class='flag-5'>为</b><b class='flag-5'>RK3568</b>开发板<b class='flag-5'>驱动</b><b class='flag-5'>指南</b>GPIO子系统三级节点操作函数实验

    RK3568核心板

    RK3568核心板
    的头像 发表于 03-03 15:55 3039次阅读
    <b class='flag-5'>迅</b><b class='flag-5'>为</b><b class='flag-5'>RK3568</b>核心板

    基于RK3568开发板的嵌入式学习之Linux驱动视频

    基于RK3568开发板的嵌入式学习之Linux驱动视频
    的头像 发表于 05-19 16:30 1737次阅读
    <b class='flag-5'>迅</b><b class='flag-5'>为</b>基于<b class='flag-5'>RK3568</b>开发板的嵌入式学习之<b class='flag-5'>Linux</b><b class='flag-5'>驱动</b>视频

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

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

    北京RK3568开发板嵌入式学习之Linux驱动全新更新-CAN+

    北京RK3568开发板嵌入式学习之Linux驱动全新更新-CAN+
    的头像 发表于 09-04 15:29 1434次阅读
    北京<b class='flag-5'>迅</b><b class='flag-5'>为</b><b class='flag-5'>RK3568</b>开发板嵌入式学习之<b class='flag-5'>Linux</b><b class='flag-5'>驱动</b>全新更新-CAN+

    RK3568开发板SPI驱动指南-mcp2515驱动编写:读寄存器函数

    RK3568开发板SPI驱动指南-mcp2515驱动
    的头像 发表于 01-20 14:43 1509次阅读
    <b class='flag-5'>迅</b><b class='flag-5'>为</b><b class='flag-5'>RK3568</b>开发板<b class='flag-5'>SPI</b><b class='flag-5'>驱动</b><b class='flag-5'>指南</b>-mcp2515<b class='flag-5'>驱动</b>编写:读寄存器函数

    【北京】iTOP-RK3568OpenHarmony系统南向驱动开发GPIO基础知识

    【北京】iTOP-RK3568OpenHarmony系统南向驱动开发GPIO基础知识
    的头像 发表于 03-06 11:23 1016次阅读
    【北京<b class='flag-5'>迅</b><b class='flag-5'>为</b>】iTOP-<b class='flag-5'>RK3568</b>OpenHarmony系统南向<b class='flag-5'>驱动</b>开发GPIO基础知识

    RK3568驱动指南GPIO子系统 GPIO操作函数实验

    电子RK3568开发板驱动指南GPIO子系统 GPIO操作函数实验
    的头像 发表于 05-28 15:24 1046次阅读
    <b class='flag-5'>迅</b><b class='flag-5'>为</b><b class='flag-5'>RK3568</b><b class='flag-5'>驱动</b><b class='flag-5'>指南</b>GPIO子系统 GPIO操作函数实验

    RK3568开发板驱动指南GPIO子系统GPIO子系统API函数的引入

    RK3568开发板驱动指南GPIO子系统GPIO子系统API函数的引入
    的头像 发表于 05-29 14:05 837次阅读
    <b class='flag-5'>迅</b><b class='flag-5'>为</b><b class='flag-5'>RK3568</b>开发板<b class='flag-5'>驱动</b><b class='flag-5'>指南</b>GPIO子系统GPIO子系统API函数的引入

    RK3568 重制版RK3568驱动指南全面升级

    RK3568 重制版RK3568驱动指南全面升级
    的头像 发表于 07-28 15:25 1514次阅读
    <b class='flag-5'>迅</b><b class='flag-5'>为</b><b class='flag-5'>RK3568</b> 重制版<b class='flag-5'>RK3568</b><b class='flag-5'>驱动</b><b class='flag-5'>指南</b>全面升级

    嵌入式Linux新手入门:为什么RK3568+资料是黄金组合

    嵌入式Linux新手入门:为什么RK3568+资料是黄金组合
    的头像 发表于 11-04 14:05 254次阅读
    嵌入式<b class='flag-5'>Linux</b>新手入门:为什么<b class='flag-5'>迅</b><b class='flag-5'>为</b><b class='flag-5'>RK3568</b>+<b class='flag-5'>迅</b><b class='flag-5'>为</b>资料是黄金组合

    实战RK3568性能调优:如何利用资料压榨NPU潜能-在Android系统中使用NPU

    《实战RK3568性能调优:如何利用资料压榨NPU潜能-在Android系统中使用NPU》
    的头像 发表于 11-07 13:42 229次阅读
    实战<b class='flag-5'>RK3568</b>性能调优:如何利用<b class='flag-5'>迅</b><b class='flag-5'>为</b>资料压榨NPU潜能-在Android系统<b class='flag-5'>中使</b>用NPU

    工业RK3568稳定可靠】itop-3568开发板Linux驱动开发实战:RK3568内核模块符号导出详解

    工业RK3568稳定可靠】itop-3568开发板Linux驱动开发实战:
    的头像 发表于 11-21 13:25 668次阅读
    【<b class='flag-5'>迅</b><b class='flag-5'>为</b>工业<b class='flag-5'>RK3568</b>稳定可靠】itop-<b class='flag-5'>3568</b>开发板<b class='flag-5'>Linux</b><b class='flag-5'>驱动</b>开发实战:<b class='flag-5'>RK3568</b>内核模块符号导出详解