🛠 Dominar E/S: GPIO, Sensores y Pantallas en CM3588

Módulo 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.

Objetivos

Este tutorial tiene como objetivo explotar las capacidades avanzadas de E/S del módulo CM3588. Aprenderás a manipular los 81 GPIOs disponibles, configurar interfaces MIPI CSI para cámaras y gestionar la salida de vídeo HDMI 2.1 o MIPI DSI. El enfoque está en la configuración del Device Tree y el uso de herramientas de línea de comandos de Linux para un control preciso.

Hardware Necesario

Pasos

Inicia sesión vía SSH. Asegúrate de que las herramientas de control GPIO estén instaladas: ``bash sudo apt update && sudo apt install gpiod libgpiod-tools ` Identifica los pines disponibles mediante el archivo de configuración: `bash cat /sys/kernel/debug/gpio ``

  1. Preparación del Entorno

El CM3588 expone sus GPIOs a través del controlador pinctrl. Para controlar un pin específico (ej: GPIO1_A0), usa gpioset o gpioget. Ejemplo para poner una salida en alto: ``bash # Identificar el GPIO correspondiente en el sistema gpiodetect # Activar el pin (número a adaptar según el esquema de la base) gpioset gpiochip0 10=1 `` Para uso programado en C, usa la biblioteca libgpiod.

  1. Configuración de GPIO

Habilita la interfaz I2C en el Device Tree. Verifica la presencia del bus: ``bash ls /dev/i2c-* i2cdetect -y 1 ` Si el sensor aparece, instala los controladores específicos. Para un sensor de temperatura, lee los registros mediante i2cget: `bash i2cget -y 1 0x76 0xd0 ``

  1. Interfaz con un Sensor I2C

El RK3588 soporta 8K@60Hz. Verifica la detección de pantalla: ``bash xrandr --listmonitors ` Para forzar una resolución específica, edita el archivo de configuración del servidor gráfico o usa xrandr: `bash xrandr --output HDMI-1 --mode 3840x2160 --rate 60 ` Para pantallas MIPI DSI, la configuración se realiza exclusivamente a través del Device Tree (nodo dsi`), definiendo tiempos y resolución nativa del panel.

  1. Gestión de Pantalla HDMI 2.1

Conecta la cámara. Verifica la detección del sensor de imagen: ``bash dmesg | grep -i csi ` Usa v4l2-ctl para probar el flujo de vídeo: `bash v4l2-ctl --list-devices v4l2-ctl -d /dev/video0 --set-fmt-video=width=1920,height=1080,pixelformat=NV12 ``

  1. Cámara MIPI CSI

Verificación

Para los GPIOs, usa un multímetro para confirmar los niveles de voltaje (0V/3.3V). Para I2C, asegúrate de que las lecturas sean consistentes con las especificaciones del sensor. Para la pantalla, verifica la ausencia de artefactos visuales y la estabilidad de la señal 8K si aplica. Para la cámara, captura una imagen con ffmpeg:

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

Para Ir Más Allá

Explora el uso de DMA para transferir datos de sensores sin sobrecargar la CPU. Estudia los overlays de Device Tree para cargar configuraciones dinámicamente sin recompilar el kernel. Finalmente, optimiza el consumo energético poniendo en reposo las interfaces no utilizadas mediante el framework de gestión de energía del kernel de Linux.

Otros tutoriales para esta placa

Ejemplos de código para esta placa

← Volver a la ficha 🛠 Todos los tutoriales