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

SPI | 引脚 | 功能 |
---|---|---|
MOSI | 19 | 主设备输出/从设备输入 |
MISO | 21 | 主设备输入/从设备输出 |
CLOCK | 23 | 时钟信号线 |
CS0 | 24 | 片选信号线0 |
Warning
spidev3.0控制CS0
3. dts配置
在arch/arm64/boot/dts/rockchip/rk3568-toybrick-x0-linux.dts中使能spi
&spi3 {
status = "okay";
pinctrl-0 = <&spi3m1_cs0 &spi3m1_pins>;
pinctrl-1 = <&spi3m1_cs0 &spi3m1_pins_hs>;
spidev:spidev@0 {
compatible = "rockchip,spidev";
reg = <0>;
spi-max-frequency = <10000000>;
status = "okay";
};
};
4. 检查SPI设备
在板子终端输入以下命令查看spi设备是否生成
5. SPI回环测试
短接MOSI和MISO(优先使用调帽短接,确保数据稳定)

使用网上的回环测试程序测试spi是否正常
短接时,数据无误
没有短接时,数据乱码