Uso do pino GPIO do Jetson TX2 NX

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
insira a descrição da imagem aqui

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.
insira a descrição da imagem aqui

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:
insira a descrição da imagem aqui

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.

Acho que você gosta

Origin blog.csdn.net/qq_42076902/article/details/131264217
Recomendado
Clasificación