Skip to main content

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.

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
info

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.

Loading Comments...