当前位置: 首页 > news >正文

Linux通用SPI作为Master——回环测试

一、本文以RK3506平台为例进行演示

(1)配置设备树支持使用通用SPI

&spi0 {status = "okay";pinctrl-0 = <&rm_io31_spi0_clk &rm_io30_spi0_mosi &rm_io29_spi0_miso &rm_io26_spi0_csn0>;my_spidev: my-spidev@0 {compatible = "rockchip,spidev";reg = <0>;spi-max-frequency = <1000000>;status = "okay";};
};

(2)使能Linux配置支持SPI

Master配置支持:

用户层SPI模式支持:

配置完后重新编译内核镜像进行测试

/dev/spidev0.0 表示一个 SPI 总线上的具体设备。0.0 是一个标识符,用于区分系统中的不同 SPI 控制器和设备。这个标识符由两部分组成:

第一个数字 0:表示SPI总线的编号。一个系统中可能有多个SPI控制器,每个控制器对应一个总线编号,从0开始。
第二个数字0:表示连接在该SPI总线上的具体设备编号。一个SPI总线上可以连接多个设备,每个设备通过片选信号(Chip Select, CS)进行区分,设备编号从0开始。

(3)使用Linux自带的SPI应用程序进行回环测试

编译spi工具应用程序

执行以下命令进行编译

make CC=/home/fae/work/czx-fae/3506-v1/rk3506_linux6.1_rkr4_v1/prebuilts/gcc/linux-x86/arm/gcc-arm-10.3-2021.07-x86_64-arm-none-linux-gnueabihf/bin/arm-none-linux-gnueabihf-gcc LD=/home/fae/work/czx-fae/3506-v1/rk3506_linux6.1_rkr4_v1/prebuilts/gcc/linux-x86/arm/gcc-arm-10.3-2021.07-x86_64-arm-none-linux-gnueabihf/bin/arm-none-linux-gnueabihf-ld

(4)测试验证

使用杜邦线将MISO和MOSI短接进行回环测试

./spidev_test -D /dev/spidev0.0 -s 1000000 -v -p 'okay'

关键参数说明:
  • -D /dev/spidevX.Y:指定 SPI 设备节点(必选),如 /dev/spidev0.0(X 为主控制器编号,Y 为从机编号)。
  • -l:启用回环模式(核心参数,必须添加)。
  • -s <速率>:设置 SPI 通信的最大速率(Hz),如 -s 1000000 表示 1MHz(需与设备支持的速率匹配)。
  • -b <位宽>:设置每字的位数(bits per word),通常为 8(即 1 字节),如 -b 8
  • -H <0或1>:设置时钟相位(CPHA),0 表示数据在时钟第一个边沿采样,1 表示第二个边沿采样(需与从机一致)。
  • -O <0或1>:设置时钟极性(CPOL),0 表示空闲时时钟为低电平,1 表示空闲时为高电平(需与从机一致)。

    http://www.dtcms.com/a/309084.html

    相关文章:

  • Redis学习-----Redis的基本数据类型
  • Dify版本升级实操
  • Edge中如何找到原IE浏览器的Internet选项
  • 基于html,css,jquery,django,lstm,cnn,tensorflow,bert,推荐算法,mysql数据库
  • 8月1日RED指令强制生效,您的设备准备好了吗?
  • uniapp 开发微信小程序,获取经纬度(uni.getLocation)并且转化详细地址(‌高德地图逆地理编码API、‌腾讯地图逆地理编码)
  • 【华为机试】127. 单词接龙
  • Python match-case 模式匹配详解
  • 【Mysql】字段隐式转换对where条件和join关联条件的影响
  • 【Java面试题】缓存穿透
  • 什么是doris
  • 优化网站域名的SEO策略指南
  • Qt开发中的安全技术问题详解
  • MySQL(172)如何进行MySQL的全局变量设置?
  • 深度揭秘端口映射:原理、场景、路由映射故障,与内网IP端口映射外网工具的选择
  • 微服务消息队列之RabbitMQ,深入了解
  • 逻辑斯蒂回归的模型优化
  • IO流-文件实例
  • MySQL--组从复制的详解及功能演练
  • 数据赋能(371)——数据挖掘——概述
  • java的冒泡排序算法
  • 从O(n²)到O(n log n):深度剖析快速排序的内存优化与cache-friendly实现
  • Java Map和Set
  • Vue 3.5 defineModel:让组件开发效率提升 10 倍
  • 自行实现log2对数运算
  • Pydantic模块学习
  • TDengine 中 TDgp 中添加机器学习模型
  • AT6668B芯片说明书
  • unity学习——视觉小说开发(一)
  • 51单片机入门:模块化编程