SPI

这篇文档主要介绍如何在Ubuntu下使用SPI

使能SPI

默认SPI是失能的。如果需要使用SPI,可以通过overlays功能使能。

khadas@Khadas:~$ sudo vim /boot/env.txt

修改overlays部分,移除pwm_f和uart3, 打开SPI。

1
overlays=uart3 pwm_f i2c3 os08a10 --> overlays=i2c3 os08a10 spi1

Overlays文档请参考 –> 如何使用Device Tree Overlay

重启,SPI就会使能了。

连线

1
2
3
4
5
SPI
Sensor MOSI <--> SPIB_MISO
Sensor MISO <--> SPIB_MOSI
Sensor CS <--> SPIB_SS
Sensor CLK <--> SPIB_SCLK

简单测试

SPI默认配置一个回环测试设备。

khadas@Khadas:~$ ls /dev/spidev1.1
/dev/spidev1.1
  1. 获取测试代码
khadas@Khadas:~$ wget https://raw.githubusercontent.com/yan-wyb/source/master/c%26c%2B%2B/embedded/app/spi/spi_test/spidev_test.c
  1. 编译测试代码
khadas@Khadas:~$ gcc -o spidev_test spidev_test.c
  1. 短接PIN35和PIN37

短接MISO和MOSI,形成回环,自发自收

  1. 测试
khadas@Khadas:~$ cat ./spi_in.txt
Amazing Khadas!
khadas@Khadas:~$
khadas@Khadas:~$ ./spidev_test -i spi_in.txt -o ./spi_out.txt
spi mode: 0x0
bits per word: 8
max speed: 500000 Hz (500 KHz)
khadas@Khadas:~$ cat ./spi_out.txt
Amazing Khadas!