Accediendo y Controlando los 40 Pines GPIO de ODYSSEY - X86J41x5
Este tutorial demuestra cómo acceder y controlar los 40 pines GPIO de ODYSSEY - X86J41x5 bajo Linux (Ubuntu). Con esto, puedes comenzar a construir tus proyectos IoT usando ODYSSEY - X86J41x5 con facilidad!
Diagrama de Pines de los 40 Pines GPIO
Ubuntu 18.04
Ubuntu 20.04

Ubuntu 22.04

GPIO
Los pines predeterminados en el ODYSSEY - X86J41x5 están configurados para el modo de función, por lo que, por ejemplo, el pin 3 está configurado a I2C por defecto en lugar del modo GPIO. Si prefieres usar GPIO por defecto, por favor revisa a continuación.
El GPIO de 40 pines ha sido equipado con conversión de nivel bidireccional, y la corriente no debe exceder 1 mA durante su uso. Esto significa que la corriente de IO es bastante baja.
Puedes usar el GPIO o cambiar el pin del modo de función a GPIO usando la interfaz GPIO sysfs de Linux. Tomemos el pin 7 como ejemplo, el siguiente código encenderá un módulo LED conectado al Pin 7:
sudo -i
cd /sys/class/gpio
echo 337 > export
cd gpio337
echo "out" > direction
echo 1 > value

Para apagar el LED:
echo 0 > value
Después de terminar de usar el GPIO, es necesario desexportarlo:
echo "in" > direction
cd ..
echo 337 > unexport
Interrupciones
Para probar las interrupciones en ODYSSEY - X86J41x5, por favor sigue las instrucciones a continuación:
Aquí utilicé python-periphery para acceder a la interfaz GPIO en el espacio de usuario de Linux (numeración GPIO de Linux).
- Instala python3-pip.
sudo apt install python3-pip
- Instala python-periphery.
sudo pip3 install python-periphery
-
Descarga el script de prueba IRQtest a tu unidad local.
-
Cambia el directorio a donde está el script descargado y ejecuta el script de prueba:
sudo python3 IRQtest.py

Cambiar pines al modo GPIO predeterminado
Si prefieres que el conector de 40 pines esté en modo GPIO predeterminado, puedes hacer esto cambiando la configuración en el BIOS.
-
Reinicia tu ODYSSEY - X86J41x5 y mantén presionada la tecla DEL mientras arranca para entrar al menú del BIOS.
-
Navega a Advanced -> HAT Configuration.
-
¡Cambia la función GPIO al modo GPIO como prefieras!

Nota: También puedes configurar otros GPIO como salida por defecto.
Usar Grove Base Hat para Control Simple
También puedes usar Grove Base Hat para Raspberry Pi para señales digitales simples. Es decir, los puertos I2C y UART no se pueden usar por ahora (El firmware de Grove Base Hat para Odyssey-X86 está siendo desarrollado, y será lanzado muy pronto).
Tomemos el puerto D5
en Grove Base Hat como ejemplo:
Nota: Esto se refiere al sistema de numeración BCM de Raspberry Pi -> BCM5
. Así que por ahora para usar con Odyssey-X86, necesitas averiguar sus pines físicos, que es en realidad el Pin No. físico 29
. Referencia: Raspberry Pinouts.
Así que el pin físico para usar D5 en el Grove Base Hat conectado a Odyssey-X86 es el 29 que es el GPIO de linux 415
.
Ahora, podemos usar los mismos métodos de arriba para controlar este GPIO:
sudo -i
cd /sys/class/gpio
echo 415 > export
cd gpio415
echo "out" > direction
echo 1 > value

Para desexportar, sigue los mismos pasos que antes.
UART
Para verificar los dispositivos UART en ODYSSEY - X86J41x5, ejecuta el siguiente comando:
ls /sys/bus/pci/devices/0000\:00\:18.?/dw-apb-uart.*/tty/ | grep tty

El ttyS4
está asociado con el Pin UART en el conector de 40 pines (Pin 8 y Pin 10). Para acceder desde estos pines, por favor sigue:
sudo apt install screen
sudo screen /dev/ttyS4/ 115200
I2C
La velocidad I2C predeterminada para ODYSSEY - X86J41x5 es de 1 MB/s, la cual no se puede configurar.
Para identificar los puertos I2C en ODYSSEY - X86J41x5, puedes ejecutar el siguiente comando:
- i2c_designware.0 -> Canal I2C en Pin 27 y 28 (I2C6_SDA y I2C6_SCL)
ls /sys/bus/pci/devices/*/i2c_designware.0/ | grep i2c
- i2c_designware.1 -> Canal I2C en Pin 3 y 5 (I2C5_SDA y I2C5_SCL)
ls /sys/bus/pci/devices/*/i2c_designware.1/ | grep i2c

Y para detectar periféricos conectados al canal I2C 0 ejecuta el siguiente comando:
sudo apt install i2c-tools
sudo i2cdetect -r -y 0

Nota: Para el Canal I2C 1, cambia el último argumento 0 a 1.
SPI
Los dispositivos SPI pueden identificarse ejecutando el siguiente comando:
ls /sys/bus/pci/devices/0000\:00\:19.*/pxa2xx-spi.*/spi_master/ | grep spi

Habilitando SPI en el Espacio de Usuario
Para habilitar el acceso a dispositivos SPI por parte de los usuarios, siga los siguientes pasos:
-
Descargue el archivo zip aquí y descomprímalo en su unidad local.
-
Vaya al directorio donde descomprimió el archivo:
chmod +x acpi-add acpi-upgrades install_hooks
sudo ./install_hooks && sudo acpi-add spidev*
- Reinicia tu ODYSSEY - X86J41x5.
Ahora podrás verificar los dispositivos SPI dentro de /dev
ls /dev/spi*

Soporte Técnico y Discusión de Productos
¡Gracias por elegir nuestros productos! Estamos aquí para brindarle diferentes tipos de soporte para asegurar que su experiencia con nuestros productos sea lo más fluida posible. Ofrecemos varios canales de comunicación para satisfacer diferentes preferencias y necesidades.