🛠 Maîtriser les E/S : GPIO, Capteurs et Affichage sur CM3588

Module SOM FriendlyElec CM3588 (Rockchip RK3588) · avance · Guide avancé pour configurer les GPIO, interfacer des capteurs via MIPI/I2C et piloter des affichages HDMI/MIPI sur le module CM3588.

Objectifs

Ce tutoriel vise à exploiter les capacités d'entrée/sortie avancées du module CM3588. Vous apprendrez à manipuler les 81 GPIO disponibles, à configurer les interfaces MIPI CSI pour les caméras, et à gérer la sortie vidéo HDMI 2.1 ou MIPI DSI. L'accent est mis sur la configuration du Device Tree et l'utilisation des outils de ligne de commande Linux pour un contrôle précis.

Matériel nécessaire

Étapes

Connectez-vous en SSH. Assurez-vous que les outils de contrôle GPIO sont installés : ``bash sudo apt update && sudo apt install gpiod libgpiod-tools ` Identifiez les broches disponibles via le fichier de configuration : `bash cat /sys/kernel/debug/gpio ``

  1. Préparation de l'environnement

Le CM3588 expose ses GPIO via le contrôleur pinctrl. Pour contrôler une broche spécifique (ex: GPIO1_A0), utilisez gpioset ou gpioget. Exemple pour mettre une sortie à l'état haut : ``bash # Identifier le GPIO correspondant dans le système gpiodetect # Activer la broche (numéro à adapter selon le schéma de la base) gpioset gpiochip0 10=1 `` Pour une utilisation programmée en C, utilisez la bibliothèque libgpiod.

  1. Configuration des GPIO

Activez l'interface I2C dans le Device Tree. Vérifiez la présence du bus : ``bash ls /dev/i2c-* i2cdetect -y 1 ` Si le capteur apparaît, installez les drivers spécifiques. Pour un capteur de température, lisez les registres via i2cget : `bash i2cget -y 1 0x76 0xd0 ``

  1. Interfaçage avec un capteur I2C

Le RK3588 supporte 8K@60Hz. Vérifiez la détection de l'écran : ``bash xrandr --listmonitors ` Pour forcer une résolution spécifique, éditez le fichier de configuration du serveur graphique ou utilisez xrandr : `bash xrandr --output HDMI-1 --mode 3840x2160 --rate 60 ` Pour les écrans MIPI DSI, la configuration se fait exclusivement via le Device Tree (node dsi`), en définissant les timings et la résolution native du panneau.

  1. Gestion de l'affichage HDMI 2.1

Connectez la caméra. Vérifiez la détection du capteur image : ``bash dmesg | grep -i csi ` Utilisez v4l2-ctl pour tester le flux vidéo : `bash v4l2-ctl --list-devices v4l2-ctl -d /dev/video0 --set-fmt-video=width=1920,height=1080,pixelformat=NV12 ``

  1. Caméra MIPI CSI

Vérification

Pour les GPIO, utilisez un multimètre pour confirmer les niveaux de tension (0V/3.3V). Pour l'I2C, assurez-vous que les lectures sont cohérentes avec les spécifications du capteur. Pour l'affichage, vérifiez l'absence d'artefacts visuels et la stabilité du signal 8K si applicable. Pour la caméra, capturez une image avec ffmpeg :

ffmpeg -f v4l2 -video_size 1920x1080 -i /dev/video0 -frames:v 1 test.jpg

Pour aller plus loin

Explorez l'utilisation des DMA pour transférer les données des capteurs sans surcharger le CPU. Étudiez les overlays Device Tree pour charger dynamiquement des configurations sans recompiler le noyau. Enfin, optimisez la consommation énergétique en mettant en veille les interfaces non utilisées via le framework de gestion de l'énergie du noyau Linux.

Autres tutoriels pour cette carte

Exemples de code pour cette carte

← Retour à la fiche 🛠 Tous les tutoriels