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 | +-----------+----------+---------------------------+ .. attention:: spidev3.0控制CS0 **4.3 dts配置** -------------- 在arch/arm64/boot/dts/rockchip/rk3568-toybrick-x0-linux.dts中使能spi .. code-block:: bash :linenos: &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.4 检查SPI设备** -------------- 在板子终端输入以下命令查看spi设备是否生成 |SPI_1| **4.5 SPI回环测试** -------------- 短接MOSI和MISO(优先使用调帽短接,确保数据稳定) |SPI_4| 使用网上的回环测试程序测试spi是否正常 短接时,数据无误 |SPI_2| 没有短接时,数据乱码 |SPI_3| .. |SPI_0| image:: picture/SPI_0.png :width: 7in :height: 3.92708in .. |SPI_1| image:: picture/SPI_1.png :width: 5.5in :height: 1.8in .. |SPI_2| image:: picture/SPI_2.png :width: 5.5in :height: 1.8in .. |SPI_3| image:: picture/SPI_3.png :width: 5.5in :height: 1.8in .. |SPI_4| image:: picture/SPI_4.png :width: 5in :height: 3in