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

RK3568 --- SPI主从模式配置

文章目录

  • 一、连接
  • 二、内核配置
  • 三、设备树
  • 四、测试
    • (一)主发从收
    • (二)主收从发

一、连接

使用rk3568的SPI0 和 SPI2,SPI0设置为从设备,SPI2设置为主设备

主设备 SPI2 从设备 SPI0 ============= ============= MOSI ───► MOSI [主出 → 从入] MISO ◄─── MISO [主入 ← 从出] CLK ───► CLK [主时钟输出] CS0 ───► CS0 [主片选输出] GND ──── GND

二、内核配置

CONFIG_SPI=y CONFIG_SPI_ROCKCHIP_SLAVE=y CONFIG_SPI_SLAVE=y

三、设备树

&spi2 { pinctrl-names = "default", "high_speed"; pinctrl-0 = <&spi2m1_cs0 &spi2m1_cs1 &spi2m1_pins>; pinctrl-1 = <&spi2m1_cs0 &spi2m1_cs1 &spi2m1_pins_hs>; status = "okay"; spi@0 { compatible = "rockchip,spidev"; reg = <0>; spi-max-frequency = <50000000>; }; spi@1 { compatible = "rockchip,spidev"; reg = <1>; spi-max-frequency = <50000000>; }; }; &spi0 { pinctrl-names = "default", "high_speed"; pinctrl-0 = <&spi0m1_cs0 &spi0m1_pins>; pinctrl-1 = <&spi0m1_cs0 &spi0m1_pins_hs>; status = "okay"; spi-slave; slave@0 { compatible = "rockchip,spidev"; reg = <0>; spi-max-frequency = <33000000>; status = "okay"; }; };
  • 注意: 当 master 速率超过⼀定频率后,建议传输过程设置 performance 模式,避免传输过程 DRAM 变频导致控
    制器缓存溢出

四、测试

(一)主发从收

第一步:执行从机read,阻塞等待主机ddif=/dev/spidev0.0of=/tmp/slave_rx.binbs=16count=1iflag=fullblock 第二步:主机发送16字节printf'ABCDEFGHABCDEFGH'|ddof=/dev/spidev2.0bs=16count=1第三步:验证从设备收到数据 hexdump /tmp/slave_rx.bin

注 : hexdump是小端显示,以下述收到内容为例
root@OK3568-C-buildroot:/# hexdump /tmp/slave_rx.bin
0000000 6548 6c6c 536f 4950 5330 616c 6576 736c
实际收到的是
4865 6c6c 6f53 5049 3053 6c61 7665 6c73
ASCII码转化即HelloSPI0Slave!!

(二)主收从发

第一步:执行从机write,阻塞等待主机printf'ABCDEFGHABCDEFGH'|ddof=/dev/spidev0.0bs=16count=1iflag=fullblock 第二步 主设备触发ddif=/dev/spidev2.0of=/tmp/master_rx.binbs=16count=1iflag=fullblock 第三步:查看主设备端RX收到的数据是否一致 hexdump /tmp/master_rx.bin
http://www.cnnetsun.cn/news/3896194.html

相关文章:

  • 2026年实时转文字工具怎么选?这份靠谱推荐指南帮你不踩雷
  • UE5 Chaos物理系统:几何体集自动破碎的3种核心控制方案详解
  • MCP端到端流程
  • UE5蓝图开发:从可视化编程到高效游戏逻辑实现
  • AI把SD-WAN运维成本打下来了!2026企业组网如何从拼带宽转向拼智能调度?
  • 技术解析:ArduPilot任务规划系统在多无人机协同作业中的应用与优化
  • 网站建设php文件放哪里:初学者的避坑指南与服务器部署全解析
  • Scalastyle完全指南:如何快速提升Scala代码质量与规范
  • Delon表单组件ST使用教程:3分钟打造专业数据表格
  • LLaVA-OneVision-2推理部署最佳实践:TensorRT加速与内存优化
  • 免费开源网页监控神器:Changedetection.io的8大核心应用场景与实战指南
  • 《分布式系统服务拆分策略 线上高并发排障实战》
  • 商业网站建设案例教程:从0到1打造高转化官网的实战心法与避坑指南
  • react-typeahead测试策略:确保组件稳定运行的完整方案
  • Zotero Style插件终极指南:高效文献管理的视觉革命
  • 群晖NAS硬盘兼容性终极解决方案:3步解锁任意硬盘支持
  • Intel Texture Works终极指南:在Photoshop中实现专业级游戏纹理压缩
  • Zilla实战案例:构建高效实时数据管道的完整步骤与最佳实践
  • Android-Serialport高级技巧:数据粘包处理与高效串口通信
  • Three.js 快速入门教程【二十】3D模型加载优化实战:使用gltf-pipeline与Draco对模型进行压缩,提高加载速度和流畅性
  • 终极Switch模拟器Ryujinx:免费开源工具带你畅玩4000+款Switch游戏
  • 揭秘自适应网站建设特点:为什么现在的企业都在悄悄重构网站?
  • WeatherBench完整指南:数据驱动天气预报的终极基准平台
  • LLaVA-OneVision-2数据集深度探索:VideoCaption与Spatial数据应用详解
  • 一文读懂gh_mirrors/bi/binary_search中的循环展开优化技术
  • 保持Teams在线状态:Powershellisfun防止自动变为离开状态的终极技巧
  • MoveKit未来展望:即将上线的WMI事件订阅与DCOM劫持技术
  • TrWebOCR技术解析:构建高精度中文离线OCR系统的架构设计与实践
  • Powershellisfun安全工具:检查URL安全性的实用脚本教程
  • 亲测有效:2026年结合pandownload解析工具实现百度网盘高速下载指南