🛠 Configuración de E/S GPIO e IIO en BPI-5202 Loongson

Computador industrial de placa única 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

Este tutorial tiene como objetivo dominar la interfaz de periféricos externos a través del puerto GPIO de 20 pines y el subsistema IIO (Industrial I/O) en la BPI-5202. A diferencia de las placas de desarrollo de consumo, esta tarjeta industrial utiliza una arquitectura LoongArch con características específicas de bus interno para módulos de extensión (DI, DO, AI, AO). El objetivo es leer un estado lógico (botón) y controlar una salida (LED) o leer datos analógicos si se conecta un módulo AI, utilizando herramientas estándar de Linux adaptadas para Loongnix o KylinOS.

Matériel nécessaire

Étapes

El puerto de 20 pines expone las líneas del controlador GPIO interno. En Linux, estas líneas se asignan dinámicamente. Abra una terminal e identifique los controladores GPIO disponibles: ``bash ls /sys/class/gpio/ `` Anote el número del controlador principal (ej: gpiochip0). Para conocer los pines físicos expuestos en el conector de 20 pines, consulte la documentación técnica específica del módulo de extensión utilizado, ya que el mapeo depende del bus interno (I2C/SPI/GPIO nativo).

  1. Identificación de pines GPIO:

Para controlar un LED conectado a un pin de salida (supongamos GPIO 10 para el ejemplo), expórtelo al espacio de usuario: ``bash echo 10 > /sys/class/gpio/export ` Defina la dirección como salida: `bash echo out > /sys/class/gpio/gpio10/direction ``

  1. Exportar un pin GPIO:

Encienda el LED escribiendo 1 en el valor: ``bash echo 1 > /sys/class/gpio/gpio10/value ` Apáguelo con 0: `bash echo 0 > /sys/class/gpio/gpio10/value ``

  1. Controlar la salida (LED):

Para un botón conectado a un pin de entrada (supongamos GPIO 11), expórtelo y configure la dirección como entrada: ``bash echo 11 > /sys/class/gpio/export echo in > /sys/class/gpio/gpio11/direction ` Lea el estado lógico (0 o 1): `bash cat /sys/class/gpio/gpio11/value ``

  1. Leer una entrada (Botón):

Si se conecta un módulo de extensión analógico, el GPIO nativo no es suficiente. Use herramientas IIO. Instale libiio-tools si es necesario. Liste los canales disponibles: ``bash iio_info ` Lea un valor bruto de un canal analógico (ej: in_voltage0_raw): `bash cat /sys/bus/iio/devices/iio\:device0/in_voltage0_raw ``

  1. Usar el subsistema IIO (para módulos AI/AO):

Vérification

Pour aller plus loin

Explore el uso de libgpiod para una gestión más robusta de GPIO, evitando problemas de concurrencia de archivos sysfs. Para aplicaciones críticas en tiempo real, considere usar la API IIO en C a través de libiio para una latencia reducida. Recuerde asegurar el acceso GPIO si su aplicación se ejecuta en un entorno multiusuario.

Otros tutoriales para esta placa

Ejemplos de código para esta placa

← Volver a la ficha 🛠 Todos los tutoriales