Cómo utilizar GPIO de 40 pines en placas reComputer Jetson
Esta wiki demuestra cómo acceder y controlar el GPIO de 40 pines de las placas reComputer Jetson. Para esta wiki, hemos utilizado la reComputer J4012 como ejemplo. Sin embargo, los pasos también serán similares para otras placas reComputer Jetson.
Antes de empezar
Aquí hay información que necesitas saber antes de comenzar a trabajar con el GPIO de 40 pines en dispositivos reComputer Jetson.
-El voltaje de operación por Pin GPIO es de 3.3V
- No se puede volver a alimentar las placas reComputer Jetson a través de GPIO debido a la limitación actual de los pines GPIO.
Encontrar el nombre del GPIO
Paso 1: Abre la hoja de datos de una placa reComputer Jetson. A continuación puedes encontrar hojas de datos de todas las placas reComputer Jetson que están disponibles.
- reComputer J1010
- reComputer J2011
- reComputer J2012
- reComputer J1020
- reComputer J2021
- reComputer J2022
- reComputer J1020 V2
- reComputer J4011
- reComputer J4012
- reComputer J3010
- reComputer J3011
Para esta wiki elegímos la hoja de datos de la reComputer J4012.
Paso 2: Navega a la sección 40 Pin Expansion Header - J10

Paso 3: Busca el nombre del Header Pin.° y asegúrate de que su uso predeterminado sea GPIO en la columna Default Usage / Description.
Por ejemplo, revisemos el Header Pin 15. Su Default Usage (Uso predeterminado) es GPIO

Paso 4: Para el mismo pin, busca el nombre en la columna Module Pin Name. En nuestro ejemplo, es el GPIO12
Acceder y contralar el GPIO
Tenemos 2 métodos diferentes para acceder a los GPIO en las placas Jetson según la disponibilidad de las etiquetas GPIO directamente. Usando el primer método, podemos conocer directamente las etiquetas de los pines GPIO después de ejecutar un comando dentro del dispositivo. Sin embargo, si las etiquetas de los pines no se muestran directamente, puedes utilizar el segundo método.
Método 1
En este método, el archivo dts para GPIO se incluye dentro de la versión JetPack que actualiza y ya tendrá GPIO etiquetado correctamente para que puedas obtener las etiquetas de los pines directamente desde el dispositivo.
Paso 1: Ingresa a la terminal del dispositivo Jetson y ejecuta este comando
sudo su
cat /sys/kernel/debug/gpio
Paso 2: Busca el número GPIO correspondiente al Module Pin Name que obtuvimos antes

En este caso es gpio-268 correspondiente a GPIO12
Paso 3: Ejecuta lo siguiente dentro de la terminal para exportar el pin gpio-268
cd /sys/class/gpio
echo 268 > export
Paso 4: Establece la dirección y establece el valor. Aquí la dirección puede ser entrada/salida y el valor puede ser 0/1
Por ejemplo, para configurar el GPIO12 en alto
cd gpio268
echo "out" > direction
echo 1 > value
Para configurar el GPIO12 en bajo
echo 0 > value
Paso 5: Para restablecer el pin GPIO que exportaste al estado predeterminado, ejecuta lo siguiente
cd ..
echo 268 > unexport
Método 2
En este método, el archivo dts para GPIO no está incluido dentro de la versión JetPack que actualiza y no tendrá los GPIO etiquetados correctamente. Por lo tanto, debemos consultar otro documento (pinmux) y obtener la información de la etiqueta del pin. Consulta los enlaces a continuación según el SoM.
Paso 1: Descarga el documento pinmux según el SoM que estés utilizando. Aquí elegimos el documento Jetson Orin NX/ Nano
Paso 2: Busca la etiqueta GPIO (en la columna Uso del cliente) correspondiente al nombre del pin del módulo que obtuvimos antes. Por ejemplo, para GPIO12, es GPIO3_PN.01 y aquí nos referimos a PN.01

Paso 3: Ingresa a la terminal del dispositivo Jetson y ejecuta este comando
sudo su
cat /sys/kernel/debug/gpio
Paso 4: Busca el número GPIO correspondiente a la etiqueta GPIO que obtuvimos antes

En este caso es gpio-433 correspondiente a PN.01 que también es igual a GPIO12
Paso 5: Ejecuta lo siguiente dentro de la terminal para exportar el pin gpio-433
cd /sys/class/gpio
echo 433 > export
Paso 6: Establece la dirección y establece el valor. Aquí la dirección puede ser entrada/salida y el valor puede ser 0/1
Por ejemplo, para configurar el GPIO12 en alto
cd PN.01
echo "out" > direction
echo 1 > value
Para configurar el GPIO12 en bajo
echo 0 > value
Paso 7: Para restablecer el pin GPIO que exportaste al estado predeterminado, ejecuta lo siguiente
cd ..
echo 433 > unexport
Para Jetpack6+
De manera similar al método 2, necesitamos consultar otro documento (pinmux) y obtener la información de la etiqueta del pin. Consulta los enlaces a continuación según el SoM.
Paso 1: Descarga el documento pinmux según el SoM que estés utilizando. Aquí elegimos el documento Jetson Orin NX/ Nano
Paso 2: Busca la etiqueta GPIO (en la columna Uso del cliente) correspondiente al nombre del pin del módulo que obtuvimos antes. Por ejemplo, para GPIO12, es GPIO3_PN.01 y aquí nos referimos a PN.01

Paso 3: Ingresa a la terminal del dispositivo Jetson y ejecuta este comando
sudo apt update
sudo apt install gpiod
gpioinfo
Paso 4: Busca el número GPIO correspondiente a la etiqueta GPIO que obtuvimos antes


En este caso, es gpiochip0 línea85 correspondiente a PN.01 que también es igual a GPIO12
Paso 5: Luego podemos usar el comando gpioset para configurar el modo de trabajo del GPIO.
# To set GPIO12 to HIGH
sudo gpioset --mode=wait gpiochip0 85=1
# To set GPIO12 to LOW
sudo gpioset --mode=wait gpiochip0 85=0
Si deseas obtener más información sobre el comando gpioset, consulta esto: https://www.acmesystems.it/gpiod
Soporte Tech y discusión del producto
¡Gracias por elegir nuestros productos! Estamos aquí para darte soporte y asegurar que tu experiencia con nuestros productos sea la mejor posible. Tenemos diversos canales de comunicación para adaptarnos distintas preferencias y necesidades.