按照这个方法
修改 /boot/env.txt ,并且 Short-circuit PIN35 and PIN37 了。
关掉机器,重新打开,还是没找到/dev/spidev1.1 设备。
overlays=uart3 pwm_f i2c3 os08a10 → overlays=i2c3 os08a10 spi
这里写错了。
应该是
overlays=uart3 pwm_f i2c3 os08a10 → overlays=i2c3 os08a10 spi1
表示对khadas 官方文档的极其不满。
@ideafold 抱歉,文档已经修复,感谢反馈。
即使Short-circuit PIN35 and PIN37 了,
按照
文档操作,./spi_out.txt 也没数据。
khadas@Khadas:~/projects/Localization/source/c&c++/embedded/app/spi/spi_test$ cat spi_in.txt
Amazing Khadas!
是由内容的。
另外我系统的spi是这个
ll /dev/spidev1.0
crw-rw---- 1 root root 153, 0 Nov 17 12:06 /dev/spidev1.0
合理吗?
请问下,你系统的overlays 是怎么设置的呢?
@ideafold 你的系统应该没有更新,spi1.0也是可以的.
overlays=i2c3 i2s os08a10 watchdog spi1
你测试时,除了Short-circuit PIN35 and PIN37 之外,gpio口还需要做什么接线吗?
不需要,如我上图,就是只接这两个就可以。
那我是没有接错。
dmesg 能看到spi口的log之类的吗?
本人对i2c、spi不熟悉
khadas@Khadas:~$ dmesg | grep spi
[ 2.541648] meson-spicc ffd15000.spi: registered master spi1
[ 2.541737] spi spi1.1: setup mode 0, 8 bits/w, 100000000 Hz max --> 0
[ 2.542016] meson-spicc ffd15000.spi: registered child spi1.1
[ 218.910522] spidev spi1.1: setup mode 0, 8 bits/w, 100000000 Hz max --> 0
[ 218.910531] spidev spi1.1: spi mode 0
[ 218.910541] spidev spi1.1: setup mode 0, 8 bits/w, 100000000 Hz max --> 0
[ 218.910546] spidev spi1.1: 8 bits per word
[ 218.910554] spidev spi1.1: setup mode 0, 8 bits/w, 500000 Hz max --> 0
你这边看看你的dmesg有没有报SPI的错
这里应该修改成1.0.你修改完重新编译测试下
我已经改为1.0了的。 -----------------------------------
@ideafold 你有示波器么?量一下发送时,有没有数据从SPI口出来,需要控制的东西不多,就这么几个,从你提供的信息来看,应该是没有问题的
手头上暂时没有示波器。这个问题看起来比较复杂。后面有空再看一下。
@ideafold 你这边使用spi是有什么需求么?如果你着急使用,我这边可以给一个我的固件给你测试,不知道会不会存在这方面的差异