
Ich versuche, SPI auf meiner Platine zum Laufen zu bringen. Das ist dabei herausgekommen:
- SPI ist in Armbian nicht standardmäßig aktiviert, wir müssen es zuerst aktivieren (entsprechendes DT-Overlay aktivieren)
- Unter Linux kann auf SPI nur über /dev/spidev*.*-Dateien zugegriffen werden.
- Wenn ich in meinem Dev-Ordner keine SPI-Geräte sehe, ist SPI auf meinem Board nicht aktiviert.
- in den neuesten Versionen von Armbian kann SPI in Armbian-Config aktiviert werden (unter System/Hardware/spi-spidev)
- in früheren Versionen war es notwendig,
/boot/script.bin
in eine FEX-Datei zu dekompilieren, dort SPI zu aktivieren und es wieder zurückzukompilieren
Ich habe eine Neuinstallation von Armbian Bionic durchgeführt (ich habe früher auch Stretch ausprobiert), es aktualisiert und Spi-Spidev aktiviert, die Platine neu gestartet, aber immer noch keine Spidev-Dateien erhalten.
Hier ist meinarmbianmonitor
ProtokollSo überprüfe ich, ob SPI aktiviert ist:
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
Übrigens, mein Ziel ist es, ein Smart-Home-Projekt mit nrf24l01-Kommunikation zu erstellen, aber ich stecke bei einem Skriptfehler fest, der besagt could not open /dev/spidev0.0
(kein exaktes Einfügen)
Meine Frage ist also:wie aktiviere ich SPI, damit /dev/spidev*.*
Dateien angezeigt werden?
Antwort1
Okay, das war wirklich dumm. Ich musste einfach darüber lesenGerätebaum-Overlayssorgfältig.
Ich habe den erforderlichen SPI-Parameter nicht eingestellt param_spidev_spi_bus
. Hier ist mein armbianEnv.txt
jetziger:
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
Beachten Sie, dassarmbain-konfigurationsetzt diesen Parameter nicht, daher können Sie SPI nicht nur mit diesem Tool zum Laufen bringen. Daher ist es im Moment einfacher, armbianEnv.txt
direkt zu bearbeiten.
Antwort2
Ich habe einen Orange Pi Lite mitArmbianinstalliert. Ich habe einen MCP3208 Analog-Digital-Konverter, der Daten von einigen Sensoren abruft, und ich habe getan, was Rattrapper gesagt hat, aber in meinem Fall hat die SPI-Schnittstelle nicht funktioniert. Ich habe das Problem schließlich wie folgt gelöst:
- In der Befehlszeile:
sudo armbian-config -> system -> hardware -> enable spi-spidev
- Überprüfen Sie die SPI-Parameter
param_spidev_spi_bus = 0
wie von rattraper in der Datei /boot/armbianEnv.txt erklärt. In Overlays muss spi-spidev geschrieben werden. - Stellen Sie mit dem folgenden Befehl sicher, dass die Bibliothek spidev installiert ist:
sudo pip3 install spidev
- Stellen Sie abschließend sicher, dass Sie die spidev-Bibliothek in Ihr Skript importieren:
import spidev
Das hat bei mir funktioniert, daher hoffe ich, dass es auch bei Ihnen funktioniert.