🛠 Apprivoiser les LED et la touche ADC du carrier CM4IO

Banana Pi BPI-CM4 (Amlogic A311D, format Raspberry Pi CM4) · debutant · Schéma : IMG-bananapi-cm4-debutant-2-leds-et-cle-adc-cm4io.svg — gros plan du carrier BPI-CM4IO : LED bleue (GPIOAO_7), LED verte (GPIOAO_2), bouton « Function » relié au SARADC, header 26 broches en bas d'image.

Objectifs

Le device tree mainline (meson-g12b-bananapi-cm4-cm4io.dts, Linux ≥ 6.4) enregistre déjà les deux LED du carrier (bleue = GPIOAO_7, verte = GPIOAO_2) et le bouton « AD-Key » du carrier, une touche à résistance sur le canal 2 du SARADC. Pas besoin de bibliothèque GPIO : vous allez piloter les LED via l'API LED class de /sys et lire le bouton avec evtest.

Matériel

Code complet

sudo apt update && sudo apt install -y gpiod evtest

# Les deux LED sont des périphériques LED class
ls /sys/class/leds/
cat /sys/class/leds/blue:status/trigger   # la liste des triggers, default=heartbeat

# LED bleue = activité CPU, LED verte = allumée manuellement
echo cpu  | sudo tee /sys/class/leds/blue:status/trigger
echo none | sudo tee /sys/class/leds/green:status/trigger
echo 255  | sudo tee /sys/class/leds/green:status/brightness

# Faire monter la charge pour voir le trigger « cpu » réagir
sudo apt install -y stress-ng && stress-ng --matrix 0 --timeout 30s &

# Le bouton AD-Key (SARADC ch2, seuil 1,71 V) arrive comme périphérique evdev
sudo evtest    # choisir le périphérique adc-keys, appuyer : événement KEY_FN

Vérification attendue

La LED bleue clignote selon la charge CPU (nettement plus rapide pendant stress-ng) ; la LED verte reste allumée après le echo 255 ; evtest affiche des événements EV_KEY / KEY_FN à chaque appui sur la touche Function du carrier.

Erreurs fréquentes

Autres tutoriels pour cette carte

Exemples de code pour cette carte

← Retour à la fiche 🛠 Tous les tutoriels