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

    文章

    11522

    浏览量

    214316
  • SPI
    SPI
    +关注

    关注

    17

    文章

    1806

    浏览量

    96348
  • RK3568
    +关注

    关注

    5

    文章

    591

    浏览量

    6547
  • 迅为电子
    +关注

    关注

    0

    文章

    68

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

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

    RK3568开发板驱动指南Linux中通用SPI
    的头像 发表于 01-23 11:02 ?2931次阅读
    <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开发板OpenHarmony系统南向驱动开发内核HDF驱动框架架构

    北京RK3568开发板OpenHarmony系统南向驱动开发内核HDF驱动框架架构
    的头像 发表于 03-11 14:13 ?1168次阅读
    北京<b class='flag-5'>迅</b><b class='flag-5'>为</b><b class='flag-5'>RK3568</b>开发板OpenHarmony系统南向<b class='flag-5'>驱动</b>开发内核HDF<b class='flag-5'>驱动</b>框架架构

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

    RK3568驱动指南GPIO子系统实战:实现动态切换引脚复用功能
    的头像 发表于 05-22 14:27 ?971次阅读
    <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 ?899次阅读
    <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 ?2216次阅读
    <b class='flag-5'>迅</b><b class='flag-5'>为</b><b class='flag-5'>RK3568</b>核心板

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

    基于RK3568开发板的嵌入式学习之Linux驱动视频
    的头像 发表于 05-19 16:30 ?1422次阅读
    <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 ?1644次阅读
    <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 ?1106次阅读
    北京<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 ?842次阅读
    混合部署 | 在<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开发板SPI驱动指南-mcp2515驱动编写:读寄存器函数

    RK3568开发板SPI驱动指南-mcp2515驱动
    的头像 发表于 01-20 14:43 ?1102次阅读
    <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 ?671次阅读
    【北京<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 ?497次阅读
    <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 ?497次阅读
    <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开发板如何将 Linux 板卡虚拟成U盘

    技术分享 | RK3568开发板如何将 Linux 板卡虚拟成U盘
    的头像 发表于 06-04 10:57 ?547次阅读
    技术分享 | <b class='flag-5'>迅</b><b class='flag-5'>为</b><b class='flag-5'>RK3568</b>开发板如何将 <b class='flag-5'>Linux</b> 板卡虚拟成U盘

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

    RK3568 重制版RK3568驱动指南全面升级
    的头像 发表于 07-28 15:25 ?474次阅读
    <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>全面升级