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
    +关注

    关注

    87

    文章

    11216

    浏览量

    208810
  • SPI
    SPI
    +关注

    关注

    17

    文章

    1695

    浏览量

    91269
  • RK3568
    +关注

    关注

    4

    文章

    492

    浏览量

    4911
  • 迅为电子
    +关注

    关注

    0

    文章

    25

    浏览量

    24
收藏 人收藏

    评论

    相关推荐

    RK3568开发Android12系统烧写固件

    RK3568开发Android12系统烧写 Android 固件
    的头像 发表于 08-01 16:22 2182次阅读
    <b class='flag-5'>迅</b><b class='flag-5'>为</b><b class='flag-5'>RK3568</b>开发Android12系统烧写固件

    RK3568核心板在智慧门禁产品中的解决方案

    RK3568核心板在智慧门禁产品中的解决方案
    的头像 发表于 07-14 15:50 743次阅读
    <b class='flag-5'>迅</b><b class='flag-5'>为</b><b class='flag-5'>RK3568</b>核心板在智慧门禁产品中的解决方案

    混合部署 | 在RK3568上同时部署RT-Thread和Linux系统

    (非对称多处理)是一种更灵活的架构,允许不同的核心运行不同的操作系统,实现更高效的资源利用和任务分配。通过 AMP,系统可以为不同的任务选择最合适的操作系统和处理方式。 当前iTOP-RK3568开发板
    发表于 09-18 10:54

    RK3568核心板

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

    RK3568开发板资料20个+手册+配套视频教程

    RK3568开发板资料20个+手册+配套视频教程
    的头像 发表于 02-14 14:37 6906次阅读
    <b class='flag-5'>迅</b><b class='flag-5'>为</b><b class='flag-5'>RK3568</b>开发板资料20个+手册+配套视频教程

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

    基于RK3568开发板的嵌入式学习之Linux驱动视频
    的头像 发表于 05-19 16:30 925次阅读
    <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开发板系统编程手册全新升级
    的头像 发表于 06-25 15:50 1080次阅读
    <b class='flag-5'>迅</b><b class='flag-5'>为</b><b class='flag-5'>RK3568</b>开发板系统编程手册全新升级

    RK3568开发板GPIO之外接模块

    RK3568开发板GPIO之外接模块
    的头像 发表于 08-24 17:41 1302次阅读
    <b class='flag-5'>迅</b><b class='flag-5'>为</b><b class='flag-5'>RK3568</b>开发板GPIO之外接模块

    RK3568开发板可实现多屏异显控方案

    RK3568开发板可实现多屏异显控方案
    的头像 发表于 07-15 17:30 1793次阅读
    <b class='flag-5'>迅</b><b class='flag-5'>为</b><b class='flag-5'>RK3568</b>开发板可实现多屏异显控方案

    RK3568开发板外接模块之HX711 称重模块

    RK3568开发板外接模块之HX711 称重模块
    的头像 发表于 08-30 15:24 1448次阅读
    <b class='flag-5'>迅</b><b class='flag-5'>为</b><b class='flag-5'>RK3568</b>开发板外接模块之HX711 称重模块

    itop-rk3568指导手册v3

    itop-rk3568指导手册,专为RK3568编写!拒绝网络拼凑!持续更新中.
    发表于 09-06 14:09 26次下载

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

    RK3568开发板驱动开发指南-输入子系统
    的头像 发表于 02-23 15:11 768次阅读
    <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 387次阅读
    北京<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上同时部署RT-Thread和Linux系统-电子

    混合部署 | 在RK3568上同时部署RT-Thread和Linux系统-电子
    的头像 发表于 09-06 15:32 339次阅读
    混合部署 | 在<b class='flag-5'>RK3568</b>上同时部署RT-Thread和<b class='flag-5'>Linux</b>系统-<b class='flag-5'>迅</b><b class='flag-5'>为</b>电子

    开发更便利!RK3568/RK3588 定制分区镜像发布

    开发更便利!RK3568/RK3588 定制分区镜像发布
    的头像 发表于 11-11 14:00 264次阅读
    开发更便利!<b class='flag-5'>迅</b><b class='flag-5'>为</b><b class='flag-5'>RK3568</b>/<b class='flag-5'>RK</b>3588 定制分区镜像发布