char write_buf[] = {0x03, reg}; // SPI写缓冲区写入SPI读指令0x03 char read_buf; // SPI读缓冲区 int ret; ret = spi_write_then_read(spi_dev, write_buf, sizeof(write_buf), &read_buf, sizeof(read_buf)); //调用SPI写读函数 if (ret < 0) { printk("spi_write_then_read error...
然后将编译好的可执行文件spidev_fdx和spidev_test拷贝到开发板上使用即可。接下来介绍一下工具的使用方法 1.spidev_test工具的使用:基本介绍:spidev_test是一个用于测试和验证Linux中SPI设备驱动程序的用户空间工具。它使用spidev接口与SPI设备通信。这个工具主要用来检查SPI设备是否工作正常,以及对SPI设备进行基本...
根据SPI指令表可以得到读指令对应的指令格式为00000011,转换为16进制为0x03,所以只需要先向MCP2515写入0x03,然后就可以读取指定地址的寄存器数据了,编写读寄存器函数可以用到上一章讲解的先写后读spi_write_then_read函数,具体内容如下所示: char mcp2515_read_reg(char reg) { char write_buf[] = {0x03, reg...
第186章 通用SPI外设代码框架编写 经过前面两个章节的学习,相信大家已经对SPI有了基本的认识,从本章节开始将会逐步编写和完善SPI转CAN模块的驱动代码,而在编写驱动之前首先要对设备树进行完善。 186.1 设备树的完善 SPI转CAN模块要接的iTOP-RK3568的引脚如下所示: 可以根据引脚的网络标号得到要使能的SPI控制器为SPI0...
spi-max-frequency = <10000000>; status = "okay"; }; }; 保存退出之后,重新编译内核源码,最后将编译得到的boot.img烧写到开发板上。 而为了方便起见,迅为已经将修改完成的设备树以及编译完成的内核镜像放到了“iTOP-3568开发板\03_【iTOP-RK3568开发板】指南教程\02_Linux驱动配套资料\04_Linux驱动程序\119...
第184章 初步认识SPI 184.1 SPI基础知识 SPI(Serial Peripheral Interface)最初是由摩托罗拉公司在上世纪80年代末期提出和开发的一种串行通信协议。当时,随着微控制器技术的发展,越来越多的外围设备需要与微控制器进行数据交换。但传统的并行总线接口存在着引脚数量多、接线麻烦、功耗高等问题,不太适合嵌入式系统的需求...
第195章 实践:移植官方mcp2515驱动 在前面的章节中从零编写了一个mcp2515的驱动程序,旨在对SPI驱动相关的知识进行学习,但实际上mcp2515的驱动程序在内核中已经提供了,在本章节将会讲解如何移植官方mcp2515驱动。 195.1 内核和设备树配置 Linux内核源码中默认已经有了MCP2515的驱动程序,驱动具体路径为“linux_sdk/kernel/dri...
第195章 实践:移植官方mcp2515驱动 在前面的章节中从零编写了一个mcp2515的驱动程序,旨在对SPI驱动相关的知识进行学习,但实际上mcp2515的驱动程序在内核中已经提供了,在本章节将会讲解如何移植官方mcp2515驱动。 195.1 内核和设备树配置 Linux内核源码中默认已经有了MCP2515的驱动程序,驱动具体路径为“linux_sdk/kernel/dri...
首先将模拟SPI驱动编译进内核,在make menuconfig图形化配置界面中选中如下选项 Device Drivers ---> [*]SPI support --> <*> GPIO-based bitbanging SPI Master //选中 软件SPI选定的引脚为开发板背面的4个GPIO,具体引脚功能图如下所示: 设备树修改步骤如下所示: ...
《iTOP-RK3568开发板驱动开发指南》更新,本次更新内容对应的是驱动(第十五篇 i2C)(第十六篇 SPI)视频,后续资料会不断更新,不断完善,帮助用户快速入门,大大提升研发速度。 教程概览 文档教程更新至第16篇-SPI 第1篇 驱动基础篇 第2篇 字符设备基础