4.SPI通信

4.1 SPI功能特点

SPI (serial peripheral interface),以下是 linux 4.4 SPI 驱动支持的一些特性︰ + 默认采用摩托罗拉 SPI 协议 + 支持 8 位和 16 位 + 软件可编程时钟频率和传输速率高达 50MHz + 支持 SPI 4 种传输模式配置 + 每个 SPI 控制器支持一个到两个片选 + 框架支持 slave 和 master 两种模式

4.2 SPI引脚

SPI_0

SPI

引脚

功能

MOSI

19

主设备输出/从设备输入

MISO

21

主设备输入/从设备输出

CLOCK

23

时钟信号线

CS0

24

片选信号线0

注意

spidev3.0控制CS0

4.3 dts配置

在arch/arm64/boot/dts/rockchip/rk3568-toybrick-x0-linux.dts中使能spi

 1&spi3 {
 2    status = "okay";
 3    pinctrl-0 = <&spi3m1_cs0  &spi3m1_pins>;
 4    pinctrl-1 = <&spi3m1_cs0  &spi3m1_pins_hs>;
 5    spidev:spidev@0 {
 6            compatible = "rockchip,spidev";
 7            reg = <0>;
 8            spi-max-frequency = <10000000>;
 9            status = "okay";
10    };
11};

4.4 检查SPI设备

在板子终端输入以下命令查看spi设备是否生成

SPI_1

4.5 SPI回环测试

短接MOSI和MISO(优先使用调帽短接,确保数据稳定)

SPI_4

使用网上的回环测试程序测试spi是否正常

短接时,数据无误

SPI_2

没有短接时,数据乱码

SPI_3