O Jetson TX2 NX é uma plataforma de computação AI integrada de alto desempenho, onde o design e o uso de pinos são muito importantes para os desenvolvedores. Neste artigo, apresentaremos os pinos do Jetson TX2 NX e explicaremos sua função e uso.
Documentação oficial Documentação oficial
Visão geral do pino
O Jetson TX2 NX possui muitos tipos diferentes de pinos, incluindo entrada/saída digital (GPIO), interface periférica serial (SPI), I²C, UART e muito mais. Esses pinos ajudam na comunicação com outros periféricos como sensores, câmeras, displays LCD, módulos WiFi, etc.
Pino GPIO de 40 pinos
Os pinos GPIO podem ser usados como portas de entrada ou saída, eles fornecem um nível digital para permitir que o usuário controle ou leia em dispositivos externos. O Jetson TX2 NX possui um total de 198 pinos GPIO agrupados em três grupos de pinos diferentes: J1, J21 e J22. Cada grupo de pinos possui entrada/saída digital e funções PWM.
Abaixo está a pinagem do expansor GPIO de 40 pinos TX2 NX:
pino SPI
SPI é um protocolo de comunicação serial que pode ser usado para fazer interface com vários periféricos. O Jetson TX2 NX fornece dois barramentos SPI nos grupos de pinos J1 e J21. Cada barramento SPI tem os seguintes pinos:
- MOSI (Master Out, Slave In): saída de dados do dispositivo mestre, entrada de dados do dispositivo escravo.
- MISO (Master In, Slave Out): entrada de dados do dispositivo mestre, saída de dados do dispositivo escravo.
- SCK (relógio): sinal de relógio.
- CS (Chip Select): sinal de seleção de chip.
perna de puxar I²C
I²C é um protocolo de comunicação serial que pode ser usado para interfacear vários periféricos. O Jetson TX2 NX fornece dois barramentos I²C nos conjuntos de pinos J1 e J21. Cada barramento I²C possui os seguintes pinos:
- SDA (Serial Data): Sinal de dados seriais.
- SCL (Serial Clock): Sinal de clock serial.
pino UART
UART é um protocolo de comunicação serial assíncrono que permite que os dados sejam transferidos por pinos a uma determinada taxa. O Jetson TX2 NX possui um total de 6 pinos UART nos grupos de pinos J1 e J21, e cada pino UART possui os seguintes pinos:
- RXD (Receber Dados): Receber dados.
- TXD (Transmitir Dados): Envia dados.
- CTS (Clear to Send): Limpar para enviar sinal.
- RTS (Ready to Send): Sinal de envio pronto.
Como usar
Para usar os pinos Jetson TX2 NX, o nó da árvore de dispositivos correspondente deve ser ativado primeiro no sistema Linux. O nó da árvore de dispositivos é uma estrutura de dados que descreve a configuração do hardware, que define o endereço do registrador, número de interrupção e outras informações relacionadas ao pino. A árvore de dispositivos pode ser encontrada no diretório /boot com o nome "tegra210-p3448-0000-pinmux.dtsi".
Na árvore de dispositivos, cada pino possui um nome e número exclusivos. Para usar um pino, refira-se a ele por seu nome ou número no aplicativo. Muitas linguagens de programação e kits de ferramentas diferentes podem ser usados para controlar um pino, como Python, C++, C, etc.
Abaixo está um exemplo de código para controlar pinos GPIO usando a biblioteca Python GPIO:
import Jetson.GPIO as GPIO
# 设置GPIO模式
GPIO.setmode(GPIO.BOARD)
# 配置GPIO为输出引脚
GPIO.setup(12, GPIO.OUT)
# 设置GPIO引脚电平为高电平
GPIO.output(12, GPIO.HIGH)
# 设置GPIO引脚电平为低电平
GPIO.output(12, GPIO.LOW)
# 清理GPIO设置
GPIO.cleanup()
Este código demonstra como definir um pino GPIO como uma saída e definir seu nível alto ou baixo. Código semelhante pode ser usado para controlar os pinos do expansor GPIO de 40 pinos do Jetson TX2 NX. Vamos explicar o código com algum detalhe:
import Jetson.GPIO as GPIO
Primeiro, importamos o módulo GPIO usando a biblioteca Jetson.GPIO.
GPIO.setmode(GPIO.BOARD)
Em seguida, configuramos o modo GPIO para o modo BOARD, o que significa que usaremos o número do pino na placa para identificar cada pino.
GPIO.setup(12, GPIO.OUT)
Em seguida, configuramos o pino 12 como uma saída e especificamos o modo de saída usando a constante GPIO.OUT.
GPIO.output(12, GPIO.HIGH)
Em seguida, configuramos o nível do pino 12 para nível alto, que é o nível de 3,3V.
GPIO.output(12, GPIO.LOW)
Em seguida, configuramos o nível do pino 12 para nível baixo, que é o nível 0V.
GPIO.cleanup()
Por fim, chamamos a função GPIO.cleanup() para limpar todas as configurações do GPIO e desligar o módulo GPIO.
Deve-se notar que a biblioteca Jetson GPIO possui dois modos: BOARD e BCM. O modo BOARD usa numeração de pinos físicos, enquanto o modo BCM usa numeração Broadcom SOC Channel (canal SOC). Durante o processo de desenvolvimento, preste atenção para selecionar o modo apropriado para corresponder ao seu método de conexão de hardware.
Resumir
Usando a biblioteca Jetson GPIO, podemos controlar facilmente os pinos no expansor GPIO de 40 pinos do Jetson TX2 NX. Usando a linguagem Python, podemos escrever código rapidamente para ler e controlar o status de dispositivos externos. A interface GPIO do Jetson TX2 NX é uma ferramenta muito útil que pode nos ajudar a integrar facilmente a placa com outros dispositivos para alcançar vários cenários de aplicação.