🛠 Configurer les E/S GPIO et IIO sur BPI-5202 Loongson

Ordinateur industriel monocarte BPI-5202 Loongson 2K1000LAi · intermediaire · Apprenez à interfacer des capteurs et actionneurs via le bus GPIO et le sous-système IIO sur la carte industrielle BPI-5202.

Objectifs

Ce tutoriel vise à maîtriser l'interface des périphériques externes via le port GPIO de 20 broches et le sous-système IIO (Industrial I/O) du BPI-5202. Contrairement aux cartes de développement grand public, cette carte industrielle utilise une architecture LoongArch avec des spécificités de bus interne pour les modules d'extension (DI, DO, AI, AO). L'objectif est de lire un état logique (bouton) et de commander une sortie (LED) ou de lire une donnée analogique si un module AI est connecté, en utilisant les outils standard Linux adaptés à Loongnix ou KylinOS.

Matériel nécessaire

Étapes

Le port de 20 broches expose les lignes du contrôleur GPIO interne. Sous Linux, ces lignes sont mappées dynamiquement. Ouvrez un terminal et identifiez les contrôleurs GPIO disponibles : ``bash ls /sys/class/gpio/ `` Notez le numéro du contrôleur principal (ex: gpiochip0). Pour connaître les broches physiques exposées sur le connecteur de 20 pins, consultez la documentation technique spécifique au module d'extension utilisé, car le mappage dépend du bus interne (I2C/SPI/GPIO natif).

  1. Identification des broches GPIO :

Pour contrôler une LED connectée à une broche de sortie (supposons le GPIO 10 pour l'exemple), exportez-la dans l'espace utilisateur : ``bash echo 10 > /sys/class/gpio/export ` Définissez la direction en sortie : `bash echo out > /sys/class/gpio/gpio10/direction ``

  1. Exportation d'une broche GPIO :

Allumez la LED en écrivant 1 dans la valeur : ``bash echo 1 > /sys/class/gpio/gpio10/value ` Éteignez-la avec 0 : `bash echo 0 > /sys/class/gpio/gpio10/value ``

  1. Commande de la sortie (LED) :

Pour un bouton connecté à une broche d'entrée (supposons GPIO 11), exportez et configurez la direction en entrée : ``bash echo 11 > /sys/class/gpio/export echo in > /sys/class/gpio/gpio11/direction ` Lisez l'état logique (0 ou 1) : `bash cat /sys/class/gpio/gpio11/value ``

  1. Lecture d'une entrée (Bouton) :

Si un module d'extension Analogique est connecté, le GPIO natif ne suffit pas. Utilisez les outils IIO. Installez libiio-tools si nécessaire. Listez les canaux disponibles : ``bash iio_info ` Lisez une valeur brute d'un canal analogique (ex: in_voltage0_raw) : `bash cat /sys/bus/iio/devices/iio\:device0/in_voltage0_raw ``

  1. Utilisation du sous-système IIO (pour modules AI/AO) :

Vérification

Pour aller plus loin

Explorez l'utilisation de libgpiod pour une gestion plus robuste des GPIO, évitant les problèmes de concurrence des fichiers sysfs. Pour les applications temps réel critiques, envisagez l'utilisation de l'API IIO en C via libiio pour une latence réduite. N'oubliez pas de sécuriser les accès GPIO si votre application tourne en multi-utilisateurs.

Autres tutoriels pour cette carte

Exemples de code pour cette carte

← Retour à la fiche 🛠 Tous les tutoriels