GPIO
Introducción
El header GPIO en las placas base reComputer es una interfaz hardware versátil diseñada para conectar el módulo de computación AI directamente con sensores y actuadores externos. Con un pinout altamente compatible con el ecosistema Raspberry Pi, permite a los desarrolladores integrar fácilmente electrónica lista para usar para prototipado rápido. Más allá de la entrada y salida digital básica, estos pines multiplexados se pueden configurar para soportar protocolos de comunicación estándar como I2C, SPI, UART y PWM, permitiendo un control de hardware fluido para proyectos de robótica e IoT usando bibliotecas simples como Jetson.GPIO.
reComputer J401
reComputer J401
Jetson.GPIO es la biblioteca Python de NVIDIA para controlar el header GPIO de 40 pines en dispositivos Jetson. Su API está intencionalmente diseñada para ser similar a RPi.GPIO, lo que la hace accesible para usuarios con experiencia en desarrollo Raspberry Pi.
Instalar con pip
Si la biblioteca no está preinstalada, el método más sencillo es:
sudo pip3 install Jetson.GPIO
Instalación manual
Si necesitas instalar la biblioteca desde el código fuente:
mkdir -p /opt/seeed/development_guide/05_gpio
cd /opt/seeed/development_guide/05_gpio
git clone https://github.com/NVIDIA/jetson-gpio
cd jetson-gpio
sudo python3 setup.py install
Permisos de usuario
Permitir que el usuario actual acceda a GPIO:
sudo groupadd -f -r gpio
sudo usermod -a -G gpio seeedReemplaza seeed con tu nombre de usuario real si es necesario.
Regla Udev
Copia el archivo de reglas y recarga udev:
cd /opt/seeed/development_guide/05_gpio/jetson-gpio
sudo cp lib/python/Jetson/GPIO/99-gpio.rules /etc/udev/rules.d/
sudo udevadm control --reload-rules
sudo udevadm trigger
Nota de compatibilidad con JetPack 6.2
En algunas configuraciones de JetPack 6.2, es posible que necesites exportar el nombre del modelo antes de usar la biblioteca:
export JETSON_MODEL_NAME=JETSON_ORIN_NANO40 pines
GPIO significa General Purpose Input/Output (Entrada/Salida de Propósito General). Estos pines permiten que el software lea señales digitales externas o controle periféricos simples como LEDs, botones, zumbadores y líneas de control.
Modos de numeración
La biblioteca Jetson.GPIO soporta dos esquemas de numeración comunes:
| Modo | Descripción | Uso típico |
|---|---|---|
BOARD | Numera los pines por su ubicación física en el header de 40 pines | Mejor cuando se cablea directamente desde la serigrafía del header o un diagrama de pines |
BCM | Numera los pines por el mapeo GPIO utilizado por la biblioteca | Mejor cuando se siguen ejemplos de GPIO en Python que hacen referencia a IDs GPIO lógicos |
Diseño GPIO.BOARD

Diseño GPIO.BCM

Referencia de pines de ejemplo
La imagen a continuación muestra un ejemplo adicional de referencia de pines que es útil antes de probar las funciones de entrada o salida.

Entrada GPIO
Esta sección muestra cómo leer una entrada GPIO en Jetson conectando un pin de prueba a GND y 3.3V y observando el estado de entrada en el software.
Conexión de hardware
Usa cables puente para conectar los pines del header como se muestra a continuación. Un método de prueba simple es conectar primero GPIO.BOARD 12 a GND.

[!CAUTION] Verifica dos veces el mapeo de pines antes de cablear. Las conexiones incorrectas pueden cortocircuitar la placa.
Leer la señal
Ejecuta el script de ejemplo de los ejemplos de jetson-gpio:
cd /opt/seeed/development_guide/05_gpio/jetson-gpio/samples
sudo python3 simple_input.py
Si el resultado coincide con el nivel bajo esperado, reconecta el pin de prueba de GND a 3.3V y ejecuta el script de nuevo:
cd /opt/seeed/development_guide/05_gpio/jetson-gpio/samples
export JETSON_MODEL_NAME=JETSON_ORIN_NANO
python3 simple_input.py
La salida del terminal ahora debería reportar una señal de nivel alto.
Salida GPIO
Introducción
En JetPack 6.2, muchos pines que anteriormente soportaban tanto entrada como salida pueden comportarse solo como entrada hasta que se ajusta el pinmux. Esta página presenta dos formas prácticas de restaurar el comportamiento de salida en pines soportados:
- Un método temporal
busybox devmem - Un método más persistente de overlay de device-tree
Método 1: Salida temporal con busybox
Paso 1: Consultar el registro Pinmux
Usa jetson-gpio-pinmux-lookup para encontrar la dirección del registro de un pin del header:
jetson-gpio-pinmux-lookup 31
El ejemplo a continuación muestra el valor del registro devuelto para el pin 31.

Paso 2: Configurar el modo de salida
Instala busybox si es necesario:
sudo apt install busyboxLuego escribe el valor del registro pinmux:
sudo busybox devmem 0x02430070 w 0x004
Paso 3: Ejecutar la prueba de salida
Actualiza el script de ejemplo para usar el pin BCM correcto para tu caso de prueba, y luego ejecútalo:


cd /opt/seeed/development_guide/05_gpio/jetson-gpio/samples
export JETSON_MODEL_NAME=JETSON_ORIN_NANO
python3 simple_out.py
Puedes verificar el cambio de nivel de salida con un multímetro u osciloscopio.
Método 2: Overlay de Device-Tree
Este método es mejor si deseas que la configuración del pin persista.
Clona el proyecto auxiliar y edita el archivo DTS:
cd /opt/seeed/development_guide/05_gpio/jetson-gpio
git clone https://github.com/jetsonhacks/jetson-orin-gpio-patch.git
cd jetson-orin-gpio-patch
vim pin7_as_gpio.dts
Ajusta la definición del pin para el GPIO que deseas cambiar, y luego construye el overlay:
dtc -O dtb -o pin7_as_gpio.dtbo pin7_as_gpio.dts
sudo cp pin7_as_gpio.dtbo /boot
sudo /opt/nvidia/jetson-io/jetson-io.py

Después de que el overlay esté habilitado, usa el número de pin BCM conocido en el script de prueba.

Ejecuta la prueba de salida de nuevo:
cd /opt/seeed/development_guide/05_gpio/jetson-gpio/samples
python3 simple_out.pyReferencias
reComputer Super J401
reComputer Super J401
Introducción
GPIO significa General Purpose Input/Output (Entrada/Salida de Propósito General). Estos pines permiten que el software lea señales digitales externas o controle periféricos simples como LEDs, botones, zumbadores y líneas de control. El reComputer Super cuenta con un header de extensión de 40 pines que proporciona acceso a los pines GPIO, permitiendo una integración fácil con dispositivos externos.

Conexión de hardware
El reComputer Super cuenta con un header de extensión de 40 pines que proporciona acceso a los pines GPIO. Para usar los pines GPIO, necesitas conectar dispositivos externos a los pines apropiados de este header.
Pinout del header de 40 pines
Los detalles del header de 40 pines se muestran a continuación:
| Pin del header | Señal | Pin BGA | Función predeterminada |
|---|---|---|---|
| 1 | 3.3V | - | Alimentación principal 3.3V |
| 2 | 5V | - | Alimentación principal 5V |
| 3 | I2C1_SDA | PDD.02 | Datos I2C #1 |
| 4 | 5V | - | Alimentación principal 5V |
| 5 | I2C1_SCL | PDD.01 | Reloj I2C #1 |
| 6 | GND | - | Tierra |
| 7 | GPIO09 | PAC.06 | Entrada/Salida de propósito general |
| 8 | UART1_TXD | PR.02 | Transmisión UART #1 |
| 9 | GND | - | Tierra |
| 10 | UART1_RXD | PR.03 | Recepción UART #1 |
| 11 | UART1_RTS | PR.04 | Solicitud de envío UART #1 |
| 12 | I2S0_SCLK | PH.07 | Reloj I2S #0 de audio |
| 13 | SPI1_SCK | PY.00 | Reloj SPI #1 |
| 14 | GND | - | Tierra |
| 15 | GPIO12 | PN.01 | Entrada/Salida de propósito general |
| 16 | SPI1_CS1 | PY.04 | Selección de chip SPI #1 #1 |
| 17 | 3.3V | - | Alimentación principal 3.3V |
| 18 | SPI1_CS0 | PY.03 | Selección de chip SPI #1 #0 |
| 19 | SPI0_MOSI | PZ.05 | SPI #0 Master Out / Slave In |
| 20 | GND | - | Tierra |
| 21 | SPI0_MISO | PZ.04 | SPI #0 Master In / Slave Out |
| 22 | SPI1_MISO | PY.01 | SPI #1 Master In / Slave Out |
| 23 | SPI0_SCK | PZ.03 | Reloj SPI #0 |
| 24 | SPI0_CS0 | PZ.06 | Selección de chip SPI #0 #0 |
| 25 | GND | - | Tierra |
| 26 | SPI0_CS1 | PZ.07 | Selección de chip SPI #0 #1 |
| 27 | ID_I2C_SDA (I2C0_SDA) | PDD.00 | Datos I2C #0 |
| 28 | ID_I2C_SCL (I2C0_SCL) | PCC.07 | Reloj I2C #0 |
| 29 | GPIO01 | PQ.05 | Entrada/Salida de propósito general |
| 30 | GND | - | Tierra |
| 31 | GPIO11 | PQ.06 | Entrada/Salida de propósito general |
| 32 | GPIO07 | PG.06 | Entrada/Salida de propósito general |
| 33 | GPIO13 | PG.00 | Reservado del sistema |
| 34 | GND | - | Tierra |
| 35 | I2S0_LRCK (I2S0_FS) | PI.02 | Sincronización de trama I2S #0 de audio |
| 36 | UART1_CTS | PR.05 | Borrar para enviar UART #1 |
| 37 | SPI1_MOSI | PY.02 | SPI #1 Master Out / Slave In |
| 38 | I2S0_SDIN (I2S0_DIN) | PI.01 | Entrada de datos I2S #0 de audio |
| 39 | GND | - | Tierra |
| 40 | I2S0_SDOUT (I2S0_DOUT) | PI.00 | Salida de datos I2S #0 de audio |
Instalación de la biblioteca GPIO
Modos de numeración
La biblioteca Jetson.GPIO soporta dos esquemas de numeración comunes:
| Modo | Descripción | Uso típico |
|---|---|---|
BOARD | Numera los pines por su ubicación física en el header de 40 pines | Mejor cuando se cablea directamente desde la serigrafía del header o un diagrama de pines |
BCM | Numera los pines por el mapeo GPIO utilizado por la biblioteca | Mejor cuando se siguen ejemplos de GPIO en Python que hacen referencia a IDs GPIO lógicos |
Ejemplos de uso de GPIO
Salida GPIO básica
import Jetson.GPIO as GPIO
import time
# Establecer modo GPIO
GPIO.setmode(GPIO.BOARD)
# Definir pin
output_pin = 12
# Configurar el pin
GPIO.setup(output_pin, GPIO.OUT)
try:
while True:
# Encender el pin
GPIO.output(output_pin, GPIO.HIGH)
time.sleep(1)
# Apagar el pin
GPIO.output(output_pin, GPIO.LOW)
time.sleep(1)
except KeyboardInterrupt:
# Limpiar
GPIO.cleanup()Entrada GPIO básica
import Jetson.GPIO as GPIO
import time
# Establecer modo GPIO
GPIO.setmode(GPIO.BOARD)
# Definir pin
input_pin = 11
# Configurar el pin
GPIO.setup(input_pin, GPIO.IN)
try:
while True:
# Leer el valor del pin
value = GPIO.input(input_pin)
print(f"Valor del pin: {value}")
time.sleep(0.5)
except KeyboardInterrupt:
# Limpiar
GPIO.cleanup()Funciones GPIO específicas de Super
El header de 40 pines del reComputer Super proporciona acceso a una gama de pines GPIO, permitiendo una integración flexible con dispositivos externos. Esto lo hace ideal para una variedad de aplicaciones, incluyendo:
- Control de LEDs y otros indicadores
- Lectura de pulsaciones de botones y entradas de sensores
- Control de motores y actuadores
- Interfaz con otros microcontroladores y dispositivos
Precauciones de seguridad
- Siempre verifica dos veces las conexiones de los pines antes de aplicar energía
- Usa resistencias apropiadas al conectar LEDs y otros componentes
- Evita cortocircuitos en los pines GPIO
- Ten en cuenta la corriente máxima nominal para los pines GPIO
Lecturas adicionales
Seeed Jetson AGX Orin Kit
Seeed Jetson AGX Orin Kit
Introducción
El Seeed Jetson AGX Orin Kit incluye un header de extensión de 40 pines (2 × 20, paso de 2,54 mm) (J30).
Pinout del header de 40 pines
El conector de extensión de 40 pines incluye varias interfaces de audio y control, incluyendo:
- Audio: I2S, Micrófono digital, Reloj y Control
- I2C (2x), SPI, UART, CAN y PWM (2x)
- GPIOs (tanto dedicados como compartidos con otros pines de interfaz)
Todos los pines de señal son de nivel 3.3V.
[!NOTE] Muchas de las señales en el Header de Extensión de 40 pines provienen de traductores de nivel TI TXB0108. Debido al diseño de estos dispositivos, los controladores de salida son muy débiles, por lo que pueden ser sobreactivados por la salida de otro dispositivo conectado para soporte bidireccional. Las señales asociadas con estos buffers tienen un "3" en la columna de notas de la siguiente tabla. Consulte la Nota de Aplicación de Consideraciones de Uso de GPIO del Header de Extensión de 40 pines del Jetson Nano Developer Kit para más información.


[!NOTE] Notas:
- Esta es la capacidad de corriente por pin de alimentación.
- Estos pines se conectan al SoC a través de un traductor de nivel FXMA2102L8X. Son de drenador abierto (ya sea pull-up, o conducido a bajo por el SoC cuando se configura como salida). La máxima conducción que cumple con la hoja de datos VOL es 1mA.
- Consulte la nota relacionada arriba de la tabla.
- Estos pines se conectan a un buffer SN74LVC4T245.
- Estos pines están directamente conectados al SoC. La máxima conducción que cumple con la hoja de datos VOL/VOH completa es 1mA.
- Para el valor predeterminado de encendido, "pd" = Pull-down interno del SoC, "pu" = Pull-up interno del SoC, y "z" = Tristate
- En la columna Tipo/Dir, Salida es hacia el header de extensión. Entrada es desde el header de extensión. Bidir es para señales bidireccionales.
- La dirección indicada coincide con la indicada en los esquemas de diseño de referencia. Estas señales soportan funcionalidad GPIO y pueden ser bidireccionales.
Header de automatización
El Seeed Jetson AGX Orin Kit incluye un header de 12 pines, paso de 2,54 mm (J42) que hace accesibles varias señales críticas de control del sistema.
- Pin #1, #12: GND
- Pin #2, #3, #4: Entrada, misma función que tres botones: Recovery, Reset, Power.
- Pin #5-#6: Abierto: Auto encendido deshabilitado; Cortocircuitado: Auto encendido habilitado.
- Pin #7: CVB_STBY: salida, indicando si el módulo está en reposo o no.
- Pin #8: SYSTEM_OC: entrada, para activar la limitación de Tegra.
- Pin #9-#10: Abierto: Wake(Boot) on LAN desde estado apagado deshabilitado; Cortocircuitado: Wake(Boot) on LAN desde estado apagado habilitado.
- Pin #11: JTAG_TRST, Reset de prueba JTAG.
