🛠 Pilotage GPIO et E/S industrielles sur BPI-5202

Ordinateur industriel monocarte BPI-5202 Loongson 2K1000LAi · avance · Maîtrisez l'accès bas niveau aux GPIO et aux modules d'extension du BPI-5202 pour l'automatisation industrielle.

Objectifs

Ce tutoriel avancé vise à configurer et piloter les entrées-sorties numériques du BPI-5202. Nous allons exploiter le port GPIO 20 broches et les modules d'extension (DI/DO) via le bus interne. L'objectif est de réaliser une boucle de contrôle simple : lire un état logique (capteur) et commander un actionneur (LED ou relais), en utilisant le support matériel LoongArch.

Matériel nécessaire

Étapes

Connectez-vous en terminal. Vérifiez que le noyau a bien détecté le contrôleur GPIO spécifique à LoongArch. Utilisez dmesg | grep gpio pour confirmer l'initialisation du driver. Notez les numéros de base assignés aux ports physiques.

  1. Vérification de la détection matérielle

Sous Linux, les GPIO sont exposés via sysfs. Supposons que le GPIO physique 1 soit mappé sur le GPIO système 100. Créez le lien si nécessaire : ``bash echo 100 > /sys/class/gpio/export echo out > /sys/class/gpio/gpio100/direction ` Pour une entrée (capteur), remplacez out par in`. Assurez-vous que les résistances de pull-up/down sont configurées si le module le permet, ou dépendez des caractéristiques du module d'extension DI/DO.

  1. Configuration du mode d'entrée/sortie

Pour mettre la sortie à l'état haut (3.3V ou 5V selon le module) : ``bash echo 1 > /sys/class/gpio/gpio100/value ` Pour lire l'état d'une entrée configurée en mode in : `bash cat /sys/class/gpio/gpio101/value `` Écrivez un script Bash simple pour basculer l'état toutes les secondes afin de tester la réactivité.

  1. Pilotage et lecture

Si vous utilisez un module DI/DO connecté au bus interne, les GPIO peuvent être regroupés. Consultez la documentation du module pour connaître le décalage d'adresse. Le bus interne gère la logique, mais l'exposition Linux reste standard via sysfs ou /dev/gpiochipX avec libgpiod.

  1. Utilisation des modules d'extension

Pour des applications critiques, évitez les changements d'état rapides via sysfs (trop lent). Utilisez l'interface ioctl directe ou configurez le noyau pour l'accès mémoire direct aux registres GPIO du 2K1000LA, en respectant les adresses physiques définies dans le Device Tree.

  1. Optimisation temps réel

Vérification

Utilisez un multimètre pour mesurer la tension sur la broche concernée : elle doit être proche de 0V (état bas) ou de la tension de référence (état haut). Pour les entrées, court-circuitez la broche à la masse pour vérifier que la commande cat renvoie bien 0.

Pour aller plus loin

Explorez l'utilisation de libgpiod pour une gestion plus robuste des événements GPIO. Intégrez ces E/S dans un système SCADA léger ou utilisez les ports CAN2.0 pour une communication réseau industrielle distribuée.

Autres tutoriels pour cette carte

Exemples de code pour cette carte

← Retour à la fiche 🛠 Tous les tutoriels