如何在 Armbian 中启用 Orange PI PC+ 上的 SPI?

如何在 Armbian 中启用 Orange PI PC+ 上的 SPI?

我正在尝试让 SPI 在我的板上工作。这就是我想到的:

  • SPI在armbian中默认是没有开启的,我们需要先开启它(开启对应的DT Overlay)
  • 在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*.*文件出现?

答案1

好吧,这真的很愚蠢。我只需要阅读有关设备树覆盖小心。

我没有设置所需的SPI参数param_spidev_spi_bus。这是我的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-spidev
param_spidev_spi_bus=0
usbstoragequirks=0x2537:0x1066:u,0x2537:0x1068:u

注意armbain 配置没有设置此参数,因此仅使用此工具无法使 SPI 工作。所以现在直接编辑会更容易armbianEnv.txt

答案2

我有一个 Orange Pi Lite阿姆比安我有一个 MCP3208 模数转换器,从一些传感器检索数据,我按照 Rattrapper 所说的做了,但是,就我而言,SPI 接口不起作用。我最终通过以下方法解决了这个问题:

  1. 在命令行中: sudo armbian-config -> system -> hardware -> enable spi-spidev
  2. 检查SPI参数,param_spidev_spi_bus = 0就像rattraper在文件/boot/armbianEnv.txt中解释的那样。在overlays中必须写spi-spidev。
  3. 确保使用以下命令安装了 spidev 库: sudo pip3 install spidev
  4. 最后,确保您在脚本中导入 spidev 库:import spidev

这对我有用,所以我希望它也对你有用。

相关内容