Как включить SPI на Orange PI PC+ в Armbian?

Как включить SPI на Orange PI PC+ в Armbian?

Я пытаюсь заставить SPI работать на моей плате. Вот что у меня получилось:

  • SPI по умолчанию не включен в armbian, сначала его нужно включить (включить соответствующий оверлей DT)
  • в Linux доступ к SPI возможен только через файлы /dev/spidev*.*
  • если я не вижу никаких устройств spi в папке dev, значит 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-configне устанавливает этот параметр, поэтому вы не сможете заставить 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. В оверлеях должно быть написано spi-spidev.
  3. Убедитесь, что библиотека spidev установлена, выполнив следующую команду: sudo pip3 install spidev
  4. Наконец, убедитесь, что вы импортируете библиотеку spidev в свой скрипт:import spidev

Это то, что сработало у меня, поэтому я надеюсь, что это сработает и у вас.

Связанный контент