
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.bin
no 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.txt
agora:
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.txt
diretamente.
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:
- Na linha de comando:
sudo armbian-config -> system -> hardware -> enable spi-spidev
- Verifique o parâmetro SPI
param_spidev_spi_bus = 0
exatamente como o rattraper explicado no arquivo /boot/armbianEnv.txt. Nas sobreposições deve ser escrito spi-spidev. - Certifique-se de que a biblioteca spidev esteja instalada com o seguinte comando:
sudo pip3 install spidev
- 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.