我正试图让 SPI 在我的板上工作。这就是我想出的:
- armbian默认不开启SPI,我们需要先开启(开启对应的DT覆盖)
- 在 linux SPI 只能通过 /dev/spidev*.* 文件访问
- 如果我在我的 dev 文件夹中没有看到任何 spi 设备,那么我的板上没有启用 SPI
- 在最新版本的 armbian spi 中,可以在 armbain-config 中启用(在 System/Hardware/spi-spidev 下)
- 在以前的版本中,需要反编译
/boot/script.bin
成 fex 文件,在那里启用 SPI 并重新编译
我确实安装了 Armbian Bionic(我之前也尝试过 Stretch),更新它并启用了 spi-spidev,重新启动了开发板,但仍然没有 spidev 文件。
这是我的armbianmonitor
日志。这就是我检查是否启用了 SPI 的方式:
dima@orangepipcplus:~$ cat /boot/armbianEnv.txt
verbosity=1
logo=disabled
console=both
disp_mode=1920x1080p60
overlay_prefix=sun8i-h3
rootdev=UUID=09e9478d-c7f2-4b16-a2d7-66f5313ff813
rootfstype=ext4
overlays=spi-add-cs1 spi-jedec-nor spi-spidev
usbstoragequirks=0x2537:0x1066:u,0x2537:0x1068:u
dima@orangepipcplus:~$ ls /dev/*spi*
ls: cannot access '/dev/*spi*': No such file or directory
顺便说一句,我的目标是创建具有 nrf24l01 通信的智能家居项目,但我被困在脚本错误上could not open /dev/spidev0.0
(不完全粘贴)
所以我的问题是:如何启用 spi 以便/dev/spidev*.*
文件出现?
好吧,这真的很愚蠢。我只需要仔细阅读有关设备树覆盖的信息。
我没有设置所需的 SPI 参数
param_spidev_spi_bus
。这是我的armbianEnv.txt
现在:注意armbain-config没有设置这个参数,所以你不能只使用这个工具让 SPI 工作。所以现在
armbianEnv.txt
直接编辑更容易。我有一个安装了Armbian的 Orange Pi Lite。我有一个 MCP3208 模数转换器从一些传感器检索数据,我按照 rattrapper 所说的做了,但就我而言,SPI 接口不起作用。我终于通过以下方式解决了它:
sudo armbian-config -> system -> hardware -> enable spi-spidev
param_spidev_spi_bus = 0
,就像文件 /boot/armbianEnv.txt 中解释的 rattraper 一样。在叠加层中必须写入 spi-spidev。sudo pip3 install spidev
import spidev
这对我有用,所以我希望它也对你有用。