🛠 Activer le bus SPI0 et piloter un petit écran TFT

Banana Pi BPI-M2 Zero (Allwinner H2+ / H3) · intermediaire · Schéma : IMG-bananapi-m2-zero-intermediaire-2-spi0-ecran-tft-m2-zero.svg — écran TFT 2,4 pouces (contrôleur ILI9341) câblé sur les broches SPI0 du BPI-M2 Zero : broches 19/21/23/24 (PC0 à PC3) plus 3V3 et GND, avec les étiquettes MOSI/MISO/CLK/CS.

Objectifs

Le connecteur 40 broches du BPI-M2 Zero amène le contrôleur SPI0 sur les broches 19/21/23/24 (signaux PC0 à PC3 d'après la table du wiki) : de quoi brancher un petit écran TFT à contrôleur ILI9341, un afficheur segmenté ou n'importe quel périphérique SPI. Vous allez activer le bus via la configuration Armbian, vérifier le contrôleur avec un boucle-à-boucle MOSI vers MISO, puis écrire des octets avec python-spidev avant d'aborder la couche framebuffer.

Matériel

Code complet

# 1) Activer SPI0 (overlay) puis redémarrer
grep overlays /boot/armbianEnv.txt
sudo armbian-config    # System > Hardware > SPI0 (spi-spidev)
sudo reboot

# 2) Le périphérique est apparu
ls /dev/spidev*
ls -l /sys/class/spi_master/ | cat

# 3) Test boucle-à-boucle : pont filaire broche 19 (MOSI) -> broche 21 (MISO)
sudo apt install -y python3-spidev
python3 - <<'EOF'
import spidev
spi = spidev.SpiDev
spi.open(0, 0)              # bus 0, cs0
spi.max_speed_hz = 8000000
rx = spi.xfer2([0xA5, 0x5A, 0xF0])
print("reçu :", [hex(b) for b in rx])   # attendu 0xa5 0x5a 0xf0 en boucle-à-boucle
EOF

# 4) Écran ILI9341 : piloter via un pilote framebuffer (fbtft) ou une
#    bibliothèque Python dédiée au contrôleur, en gardant SPI <= 8-16 MHz

Vérification attendue

Après activation, /dev/spidev0.0 existe ; le test boucle-à-boucle renvoie exactement les octets émis (0xa5, 0x5a, 0xf0), preuve que le contrôleur, le muxing PC0-PC3 et le câblage sont bons. Une fois l'écran branché, les bibliothèques ILI9341 affichent formes et texte.

Erreurs fréquentes

Autres tutoriels pour cette carte

Exemples de code pour cette carte

← Retour à la fiche 🛠 Tous les tutoriels