Como habilitar o SPI no Orange PI PC+ no Armbian?

Como habilitar o SPI no Orange PI PC+ no Armbian?

Estou tentando fazer o SPI funcionar na minha placa. Foi isso que eu descobri:

  • O SPI não está habilitado por padrão no armbian, precisamos habilitá-lo primeiro (habilitar a sobreposição DT correspondente)
  • no Linux, o SPI só pode ser acessado por meio de arquivos /dev/spidev*.*
  • se eu não vir nenhum dispositivo spi na minha pasta dev, então o SPI não está habilitado na minha placa
  • nas versões mais recentes do armbian spi pode ser habilitado em armbain-config (em Sistema/Hardware/spi-spidev)
  • nas versões anteriores era necessário descompilar  /boot/script.binno arquivo fex, habilitar o SPI lá e compilar novamente

Fiz uma instalação limpa do Armbian Bionic (também tentei o Stretch anteriormente), atualizei-o e habilitei o spi-spidev, reiniciei a placa, mas ainda não obtive arquivos spidev. 

Aqui está o meuarmbianmonitor registro. É assim que verifico se o SPI está habilitado:

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

Aliás, meu objetivo é criar um projeto de casa inteligente com comunicação nrf24l01, mas estou preso em um erro de script que diz could not open /dev/spidev0.0(não colar exatamente)

Então minha pergunta é:como habilitar o spi para que /dev/spidev*.*os arquivos apareçam?

Responder1

Ok, isso foi realmente estúpido. Eu só precisava ler sobreSobreposições de árvore de dispositivoscom cuidado.

Não defini o parâmetro SPI necessário param_spidev_spi_bus. Aqui está o meu armbianEnv.txtagora:

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

Observe quearmbain-confignão define esse parâmetro, portanto você não pode fazer o SPI funcionar usando apenas esta ferramenta. Então, por enquanto é mais fácil editar armbianEnv.txtdiretamente.

Responder2

Eu tenho um Orange Pi Lite comarmianoinstalado.Tenho um conversor analógico para digital MCP3208 recuperando dados de alguns sensores e fiz o que o rattrapper disse, mas, no meu caso, a interface SPI não funcionou. Finalmente resolvi fazendo o seguinte:

  1. Na linha de comando: sudo armbian-config -> system -> hardware -> enable spi-spidev
  2. Verifique o parâmetro SPI param_spidev_spi_bus = 0exatamente como o rattraper explicado no arquivo /boot/armbianEnv.txt. Nas sobreposições deve ser escrito spi-spidev.
  3. Certifique-se de que a biblioteca spidev esteja instalada com o seguinte comando: sudo pip3 install spidev
  4. Por fim, certifique-se de importar a biblioteca spidev em seu script:import spidev

Foi isso que funcionou para mim, então espero que funcione para você também.

informação relacionada