GPIO
Introduction
L'en-tête GPIO sur les cartes porteur reComputer est une interface matérielle polyvalente conçue pour connecter le module de calcul IA directement aux capteurs et actionneurs externes. Avec un brochage altamente compatible avec l'écosystème Raspberry Pi, il permet aux développeurs d'intégrer facilement de l'électronique standard pour le prototypage rapide. Au-delà de l'entrée et sortie numérique de base, ces broches multiplexées peuvent être configurées pour prendre en charge des protocoles de communication standard comme I2C, SPI, UART et PWM, permettant un contrôle matériel transparent pour les projets de robotique et d'IoT à l'aide de bibliothèques simples telles que Jetson.GPIO.
reComputer J401
reComputer J401
Jetson.GPIO est la bibliothèque Python de NVIDIA pour contrôler l'en-tête GPIO 40 broches sur les appareils Jetson. Son API est intentionnellement similaire à RPi.GPIO, ce qui la rend accessible aux utilisateurs venant du développement Raspberry Pi.
Installer avec pip
Si la bibliothèque n'est pas préinstallée, la méthode la plus simple est :
sudo pip3 install Jetson.GPIO
Installation manuelle
Si vous devez installer la bibliothèque depuis le code source :
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
Permissions utilisateur
Autoriser l'utilisateur actuel à accéder au GPIO :
sudo groupadd -f -r gpio
sudo usermod -a -G gpio seeedRemplacez seeed par votre nom d'utilisateur réel si nécessaire.
Règle Udev
Copiez le fichier de règles et rechargez 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
Note de compatibilité JetPack 6.2
Sur certaines configurations JetPack 6.2, vous devrez peut-être exporter le nom du modèle avant d'utiliser la bibliothèque :
export JETSON_MODEL_NAME=JETSON_ORIN_NANO40 broches
GPIO signifie General Purpose Input/Output (Entrée/Sortie à Usage Général). Ces broches permettent au logiciel de lire des signaux numériques externes ou de piloter des périphériques simples tels que des LED, des boutons, des buzzers et des lignes de contrôle.
Modes de numérotation
La bibliothèque Jetson.GPIO prend en charge deux schémas de numérotation courants :
| Mode | Description | Utilisation typique |
|---|---|---|
BOARD | Numérote les broches par leur emplacement physique sur l'en-tête 40 broches | Le meilleur choix lorsque vous cablez directement depuis la sérigraphie de l'en-tête ou un diagramme de brochage |
BCM | Numérote les broches par le mappage GPIO utilisé par la bibliothèque | Le meilleur choix lorsque vous suivez des exemples GPIO Python qui font référence à des IDs GPIO logiques |
Disposition GPIO.BOARD

Disposition GPIO.BCM

Référence de broche exemple
L'image ci-dessous montre un exemple supplémentaire de référence de broche utile avant de tester les fonctions d'entrée ou de sortie.

Entrée GPIO
Cette section montre comment lire une entrée GPIO sur Jetson en connectant une broche de test à GND et 3.3V et en observant l'état d'entrée dans le logiciel.
Connexion matérielle
Utilisez des fils de pontage pour connecter les broches de l'en-tête comme indiqué ci-dessous. Une méthode de test simple consiste à connecter d'abord GPIO.BOARD 12 à GND.

[!CAUTION] Vérifiez deux fois le mappage des broches avant le câblage. Des connexions incorrectes peuvent court-circuiter la carte.
Lire le signal
Exécutez le script d'exemple des exemples jetson-gpio :
cd /opt/seeed/development_guide/05_gpio/jetson-gpio/samples
sudo python3 simple_input.py
Si le résultat correspond au niveau bas attendu, reconnectez la broche de test de GND à 3.3V et exécutez le script à nouveau :
cd /opt/seeed/development_guide/05_gpio/jetson-gpio/samples
export JETSON_MODEL_NAME=JETSON_ORIN_NANO
python3 simple_input.py
La sortie du terminal doit maintenant indiquer un signal de niveau haut.
Sortie GPIO
Introduction
Sur JetPack 6.2, de nombreuses broches qui prenaient en charge à la fois l'entrée et la sortie peuvent se comporter comme entrée uniquement jusqu'à ce que le pinmux soit ajusté. Cette page présente deux méthodes pratiques pour restaurer le comportement de sortie sur les broches prises en charge :
- Une méthode temporaire
busybox devmem - Une méthode plus persistante de superposition device-tree
Méthode 1 : Sortie temporaire avec busybox
Étape 1 : Interroger le registre Pinmux
Utilisez jetson-gpio-pinmux-lookup pour trouver l'adresse du registre d'une broche d'en-tête :
jetson-gpio-pinmux-lookup 31
L'exemple ci-dessous montre la valeur du registre retournée pour la broche 31.

Étape 2 : Configurer le mode de sortie
Installez busybox si nécessaire :
sudo apt install busyboxPuis écrivez la valeur du registre pinmux :
sudo busybox devmem 0x02430070 w 0x004
Étape 3 : Exécuter le test de sortie
Mettez à jour le script d'exemple pour utiliser la bonne broche BCM pour votre cas de test, puis exécutez-le :


cd /opt/seeed/development_guide/05_gpio/jetson-gpio/samples
export JETSON_MODEL_NAME=JETSON_ORIN_NANO
python3 simple_out.py
Vous pouvez vérifier le changement de niveau de sortie avec un multimètre ou un oscilloscope.
Méthode 2 : Superposition Device-Tree
Cette méthode est meilleure si vous souhaitez que la configuration des broches persiste.
Clonez le projet auxiliaire et modifiez le fichier 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
Ajustez la définition de broche pour le GPIO que vous souhaitez modifier, puis construisez la superposition :
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

Après activation de la superposition, utilisez le numéro de broche BCM connu dans le script de test.

Exécutez le test de sortie à nouveau :
cd /opt/seeed/development_guide/05_gpio/jetson-gpio/samples
python3 simple_out.pyRéférences
reComputer Super J401
reComputer Super J401
Introduction
GPIO signifie General Purpose Input/Output (Entrée/Sortie à Usage Général). Ces broches permettent au logiciel de lire des signaux numériques externes ou de piloter des périphériques simples tels que des LED, des boutons, des buzzers et des lignes de contrôle. Le reComputer Super dispose d'un en-tête d'extension 40 broches qui donne accès aux broches GPIO, permettant une intégration facile avec des appareils externes.

Connexion matérielle
Le reComputer Super dispose d'un en-tête d'extension 40 broches qui donne accès aux broches GPIO. Pour utiliser les broches GPIO, vous devez connecter des appareils externes aux broches appropriées de cet en-tête.
Brochage de l'en-tête 40 broches
Les détails de l'en-tête 40 broches sont indiqués ci-dessous :
| Broche d'en-tête | Signal | Broche BGA | Fonction par défaut |
|---|---|---|---|
| 1 | 3.3V | - | Alimentation principale 3.3V |
| 2 | 5V | - | Alimentation principale 5V |
| 3 | I2C1_SDA | PDD.02 | Données I2C #1 |
| 4 | 5V | - | Alimentation principale 5V |
| 5 | I2C1_SCL | PDD.01 | Horloge I2C #1 |
| 6 | GND | - | Masse |
| 7 | GPIO09 | PAC.06 | Entrée/Sortie à usage général |
| 8 | UART1_TXD | PR.02 | Transmission UART #1 |
| 9 | GND | - | Masse |
| 10 | UART1_RXD | PR.03 | Réception UART #1 |
| 11 | UART1_RTS | PR.04 | Demande d'envoi UART #1 |
| 12 | I2S0_SCLK | PH.07 | Horloge audio I2S #0 |
| 13 | SPI1_SCK | PY.00 | Horloge SPI #1 |
| 14 | GND | - | Masse |
| 15 | GPIO12 | PN.01 | Entrée/Sortie à usage général |
| 16 | SPI1_CS1 | PY.04 | Sélection de puce SPI #1 #1 |
| 17 | 3.3V | - | Alimentation principale 3.3V |
| 18 | SPI1_CS0 | PY.03 | Sélection de puce SPI #1 #0 |
| 19 | SPI0_MOSI | PZ.05 | SPI #0 Master Out / Slave In |
| 20 | GND | - | Masse |
| 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 | Horloge SPI #0 |
| 24 | SPI0_CS0 | PZ.06 | Sélection de puce SPI #0 #0 |
| 25 | GND | - | Masse |
| 26 | SPI0_CS1 | PZ.07 | Sélection de puce SPI #0 #1 |
| 27 | ID_I2C_SDA (I2C0_SDA) | PDD.00 | Données I2C #0 |
| 28 | ID_I2C_SCL (I2C0_SCL) | PCC.07 | Horloge I2C #0 |
| 29 | GPIO01 | PQ.05 | Entrée/Sortie à usage général |
| 30 | GND | - | Masse |
| 31 | GPIO11 | PQ.06 | Entrée/Sortie à usage général |
| 32 | GPIO07 | PG.06 | Entrée/Sortie à usage général |
| 33 | GPIO13 | PG.00 | Réservé système |
| 34 | GND | - | Masse |
| 35 | I2S0_LRCK (I2S0_FS) | PI.02 | Synchronisation de trame audio I2S #0 |
| 36 | UART1_CTS | PR.05 | Effacement pour envoyer UART #1 |
| 37 | SPI1_MOSI | PY.02 | SPI #1 Master Out / Slave In |
| 38 | I2S0_SDIN (I2S0_DIN) | PI.01 | Entrée données audio I2S #0 |
| 39 | GND | - | Masse |
| 40 | I2S0_SDOUT (I2S0_DOUT) | PI.00 | Sortie données audio I2S #0 |
Installation de la bibliothèque GPIO
Modes de numérotation
La bibliothèque Jetson.GPIO prend en charge deux schémas de numérotation courants :
| Mode | Description | Utilisation typique |
|---|---|---|
BOARD | Numérote les broches par leur emplacement physique sur l'en-tête 40 broches | Le meilleur choix lorsque vous cablez directement depuis la sérigraphie de l'en-tête ou un diagramme de brochage |
BCM | Numérote les broches par le mappage GPIO utilisé par la bibliothèque | Le meilleur choix lorsque vous suivez des exemples GPIO Python qui font référence à des IDs GPIO logiques |
Exemples d'utilisation GPIO
Sortie GPIO de base
import Jetson.GPIO as GPIO
import time
# Définir le mode GPIO
GPIO.setmode(GPIO.BOARD)
# Définir la broche
output_pin = 12
# Configurer la broche
GPIO.setup(output_pin, GPIO.OUT)
try:
while True:
# Allumer la broche
GPIO.output(output_pin, GPIO.HIGH)
time.sleep(1)
# Éteindre la broche
GPIO.output(output_pin, GPIO.LOW)
time.sleep(1)
except KeyboardInterrupt:
# Nettoyer
GPIO.cleanup()Entrée GPIO de base
import Jetson.GPIO as GPIO
import time
# Définir le mode GPIO
GPIO.setmode(GPIO.BOARD)
# Définir la broche
input_pin = 11
# Configurer la broche
GPIO.setup(input_pin, GPIO.IN)
try:
while True:
# Lire la valeur de la broche
value = GPIO.input(input_pin)
print(f"Valeur de la broche: {value}")
time.sleep(0.5)
except KeyboardInterrupt:
# Nettoyer
GPIO.cleanup()Fonctionnalités GPIO spécifiques Super
L'en-tête 40 broches du reComputer Super donne accès à une gamme de broches GPIO, permettant une intégration flexible avec des appareils externes. Cela le rend idéal pour une variété d'applications, notamment :
- Contrôler des LED et autres indicateurs
- Lire les pressions de boutons et les entrées de capteurs
- Contrôler des moteurs et actionneurs
- Interfacer avec d'autres microcontrôleurs et appareils
Précautions de sécurité
- Vérifiez toujours deux fois les connexions des broches avant d'appliquer l'alimentation
- Utilisez des résistances appropriées lors du branchement de LED et autres composants
- Évitez les courts-circuits sur les broches GPIO
- Tenez compte du courant maximal nominal pour les broches GPIO
Lectures complémentaires
Seeed Jetson AGX Orin Kit
Seeed Jetson AGX Orin Kit
Introduction
Le Seeed Jetson AGX Orin Kit comprend un en-tête d'extension 40 broches (2 × 20, pas de 2,54 mm) (J30).
Brochage de l'en-tête 40 broches
Le connecteur d'extension 40 broches comprend diverses interfaces audio et contrôle, notamment :
- Audio : I2S, microphone numérique, horloge et contrôle
- I2C (2x), SPI, UART, CAN et PWM (2x)
- GPIOs (dédiés ainsi que partagés avec d'autres broches d'interface)
Toutes les broches de signal sont de niveau 3,3V.
[!NOTE] Beaucoup des signaux de l'en-tête d'extension 40 broches proviennent de translateurs de niveau TI TXB0108. En raison de la conception de ces dispositifs, les pilotes de sortie sont très faibles, ils peuvent donc être suractivés par la sortie d'un autre appareil connecté pour le support bidirectionnel. Les signaux associés à ces tampons ont un "3" dans la colonne de notes du tableau suivant. Consultez la note d'application Considérations d'utilisation GPIO de l'en-tête d'extension 40 broches du Jetson Nano Developer Kit pour plus d'informations.


[!NOTE] Notes :
- C'est la capacité de courant par broche d'alimentation.
- Ces broches se connectent au SoC via un translateur de niveau FXMA2102L8X. Elles sont à drain ouvert (soit pull-up, soit pilotées à l'état bas par le SoC lorsqu'elles sont configurées en sortie). Le courant maximum conforme à la fiche technique VOL est de 1mA.
- Voir la note associée ci-dessus du tableau.
- Ces broches se connectent à un tampon SN74LVC4T245.
- Ces broches sont directement connectées au SoC. Le courant maximum conforme à la fiche technique VOL/VOH complète est de 1mA.
- Pour la valeur par défaut à la mise sous tension, "pd" = Pull-down interne SoC, "pu" = Pull-up interne SoC, et "z" = Tristate
- Dans la colonne Type/Dir, Sortie est vers l'en-tête d'extension. Entrée est depuis l'en-tête d'extension. Bidir est pour les signaux bidirectionnels.
- La direction indiquée correspond à celle indiquée dans les schémas de conception de référence. Ces signaux prennent en charge la fonctionnalité GPIO et peuvent être bidirectionnels.
En-tête d'automatisation
Le Seeed Jetson AGX Orin Kit comprend un en-tête 12 broches, pas de 2,54 mm (J42) qui rend accessibles plusieurs signaux de contrôle système critiques.
- Broche #1, #12 : GND
- Broche #2, #3, #4 : Entrée, même fonction que trois boutons : Recovery, Reset, Power.
- Broche #5-#6 : Ouvert : Auto mise sous tension désactivée ; Court-circuité : Auto mise sous tension activée.
- Broche #7 : CVB_STBY : sortie, indiquant si le module est en veille ou non.
- Broche #8 : SYSTEM_OC : entrée, pour déclencher la limitation Tegra.
- Broche #9-#10 : Ouvert : Wake(Boot) on LAN depuis l'état éteint désactivé ; Court-circuité : Wake(Boot) on LAN depuis l'état éteint activé.
- Broche #11 : JTAG_TRST, reset de test JTAG.
