Como usar o GPIO de 40 pinos nas placas reComputer Jetson
Este wiki demonstra como acessar e controlar o GPIO de 40 pinos das placas reComputer Jetson. Para este wiki, usamos o reComputer J4012 como exemplo. Porém, as etapas serão semelhantes para outras placas reComputer Jetson também.
Antes de começar
Aqui estão algumas informações que você precisa saber antes de começar a trabalhar com o GPIO de 40 pinos em dispositivos reComputer Jetson.
- O nível de tensão por pino GPIO é 3,3 V
- Você não pode alimentar as placas reComputer Jetson via GPIO por causa da limitação de corrente dos pinos GPIO
Encontrar o nome do GPIO
Passo 1: Abra o datasheet de uma placa reComputer Jetson. Abaixo você pode encontrar os datasheets de todas as placas reComputer Jetson disponíveis.
-
- reComputer J1010
-
- reComputer J2011
- reComputer J2012
- reComputer J1020
-
- reComputer J2021
- reComputer J2022
- reComputer J1020 V2
-
- reComputer J4011
- reComputer J4012
- reComputer J3010
- reComputer J3011
Aqui escolhemos o datasheet do reComputer J4012.
Passo 2: Navegue até a seção 40 Pin Expansion Header - J10

Passo 3: Encontre o nome do Header Pin #, certificando-se de que o uso padrão é GPIO na coluna Default Usage / Description
Por exemplo, verifique o Header Pin 15. O Default Usage dele é GPIO

Passo 4: Para o mesmo pino, encontre o nome na coluna Module Pin Name. No nosso exemplo, é GPIO12
Acessar e controlar o GPIO
Agora temos 2 métodos diferentes para acessar os GPIOs nas placas Jetson com base na disponibilidade dos rótulos de GPIO diretamente. Usando o primeiro método, podemos saber diretamente os rótulos dos pinos GPIO depois de executar um comando no dispositivo. No entanto, se os rótulos dos pinos não forem mostrados diretamente, você pode usar o segundo método.
Método 1
Neste método, o arquivo dts para GPIO está incluído dentro da versão do JetPack que você grava e já terá os GPIOs rotulados corretamente para que você possa obter os rótulos dos pinos diretamente do dispositivo.
Passo 1: Entre no terminal do dispositivo Jetson e execute este comando
sudo su
cat /sys/kernel/debug/gpio
Passo 2: Encontre o número do GPIO correspondente ao Module Pin Name que obtivemos antes

Neste caso, é gpio-268 correspondente a GPIO12
Passo 3: Execute o seguinte no terminal para exportar o pino gpio-268
cd /sys/class/gpio
echo 268 > export
Passo 4: Defina a direção e o valor. Aqui a direção pode ser in/ out e o valor pode ser 0/ 1
Por exemplo, para definir o GPIO12 como HIGH
cd gpio268
echo "out" > direction
echo 1 > value
Para definir o GPIO12 como LOW
echo 0 > value
Passo 5: Para definir o pino GPIO que você exportou de volta ao estado padrão, execute o seguinte
cd ..
echo 268 > unexport
Método 2
Neste método, o arquivo dts para GPIO não está incluído dentro da versão do JetPack que você grava e não terá os GPIOs rotulados corretamente. Portanto, precisamos consultar outro documento (pinmux) e obter essas informações de rótulo de pino. Consulte os links abaixo de acordo com o SoM.
Passo 1: Baixe o documento pinmux de acordo com o SoM que você está usando. Aqui escolhemos o documento Jetson Orin NX/ Nano
Passo 2: Encontre o rótulo do GPIO (na coluna Customer Usage) correspondente ao Module Pin Name que obtivemos antes. Por exemplo, para GPIO12, é GPIO3_PN.01 e aqui nos referimos a PN.01

Passo 3: Entre no terminal do dispositivo Jetson e execute este comando
sudo su
cat /sys/kernel/debug/gpio
Passo 4: Encontre o número do GPIO correspondente ao rótulo do GPIO que obtivemos antes

Neste caso, é gpio-433 correspondente a PN.01, que também é igual a GPIO12
Passo 5: Execute o seguinte no terminal para exportar o pino gpio-433
cd /sys/class/gpio
echo 433 > export
Passo 6: Defina a direção e o valor. Aqui a direção pode ser in/ out e o valor pode ser 0/ 1
Por exemplo, para definir o GPIO12 como HIGH
cd PN.01
echo "out" > direction
echo 1 > value
Para definir o GPIO12 como LOW
echo 0 > value
Passo 7: Para definir o pino GPIO que você exportou de volta ao estado padrão, execute o seguinte
cd ..
echo 433 > unexport
Para Jetpack6+
Semelhante ao método 2, precisamos consultar outro documento (pinmux) e obter essas informações de rótulo de pino. Consulte os links abaixo de acordo com o SoM.
Passo 1: Baixe o documento pinmux de acordo com o SoM que você está usando. Aqui escolhemos o documento Jetson Orin NX/ Nano
Passo 2: Encontre o rótulo do GPIO (na coluna Customer Usage) correspondente ao Module Pin Name que obtivemos antes. Por exemplo, para GPIO12, é GPIO3_PN.01 e aqui nos referimos a PN.01

Passo 3: Entre no terminal do dispositivo Jetson e execute este comando
sudo apt update
sudo apt install gpiod
gpioinfo
Passo 4: Encontre o número do GPIO correspondente ao rótulo do GPIO que obtivemos antes


Neste caso, é gpiochip0 line85 correspondente a PN.01, que também é igual a GPIO12
Passo 5: Então podemos usar o comando gpioset para configurar o modo de funcionamento do 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
Se você quiser saber mais sobre o comando gpioset, consulte isto: https://www.acmesystems.it/gpiod
Suporte Técnico e Discussão de Produtos
Obrigado por escolher nossos produtos! Estamos aqui para fornecer diferentes tipos de suporte para garantir que sua experiência com nossos produtos seja a mais tranquila possível. Oferecemos vários canais de comunicação para atender a diferentes preferências e necessidades.