GPIO
Einleitung
Der GPIO-Header auf reComputer-Trägerplatinen ist eine vielseitige Hardware-Schnittstelle, die den AI-Compute-Modul direkt mit externen Sensoren und Aktoren verbindet. Mit einem Pinout, das hochgradig mit dem Raspberry Pi-Ökosystem kompatibel ist, ermöglicht es Entwicklern, problemlos handelsübliche Elektronik für schnelles Prototyping zu integrieren. Über grundlegende digitale Ein- und Ausgabe hinaus können diese gemultiplexten Pins für Standard-Kommunikationsprotokolle wie I2C, SPI, UART und PWM konfiguriert werden, was eine nahtlose Hardware-Steuerung für Robotik- und IoT-Projekte mit einfachen Bibliotheken wie Jetson.GPIO ermöglicht.
reComputer J401
reComputer J401
Jetson.GPIO ist NVIDIA's Python-Bibliothek zur Steuerung des 40-Pin GPIO-Headers auf Jetson-Geräten. Die API ist absichtlich ähnlich zu RPi.GPIO, was sie für Benutzer aus der Raspberry Pi-Entwicklung zugänglich macht.
Installation mit pip
Wenn die Bibliothek nicht vorinstalliert ist, ist die einfachste Methode:
sudo pip3 install Jetson.GPIO
Manuelle Installation
Wenn Sie die Bibliothek aus dem Quellcode installieren müssen:
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
Benutzerrechte
Erlauben Sie dem aktuellen Benutzer den Zugriff auf GPIO:
sudo groupadd -f -r gpio
sudo usermod -a -G gpio seeedErsetzen Sie seeed durch Ihren tatsächlichen Benutzernamen, falls erforderlich.
Udev-Regel
Kopieren Sie die Regeldatei und laden Sie udev neu:
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
JetPack 6.2-Kompatibilitätshinweis
Auf einigen JetPack 6.2-Setups müssen Sie möglicherweise den Modellnamen exportieren, bevor Sie die Bibliothek verwenden:
export JETSON_MODEL_NAME=JETSON_ORIN_NANO40-Pin
GPIO steht für General Purpose Input/Output. Diese Pins ermöglichen es der Software, externe digitale Signale zu lesen oder einfache Peripheriegeräte wie LEDs, Tasten, Summer und Steuerleitungen anzusteuern.
Nummerierungsmodi
Die Jetson.GPIO-Bibliothek unterstützt zwei gängige Nummerierungsschemata:
| Modus | Beschreibung | Typische Verwendung |
|---|---|---|
BOARD | Nummeriert Pins nach ihrer physischen Position auf dem 40-Pin-Header | Am besten, wenn Sie direkt von der Header-Beschriftung oder einem Pinout-Diagramm verdrahten |
BCM | Nummeriert Pins nach der GPIO-Zuordnung, die von der Bibliothek verwendet wird | Am besten, wenn Sie Python-GPIO-Beispielen folgen, die sich auf logische GPIO-IDs beziehen |
GPIO.BOARD-Layout

GPIO.BCM-Layout

Beispiel-Pin-Referenz
Das Bild unten zeigt ein zusätzliches Pin-Referenzbeispiel, das vor dem Testen von Eingabe- oder Ausgabefunktionen nützlich ist.

GPIO-Eingang
Dieser Abschnitt zeigt, wie man einen GPIO-Eingang auf dem Jetson liest, indem man einen Testpin mit GND und 3.3V verbindet und den Eingangszustand in der Software beobachtet.
Hardware-Verbindung
Verwenden Sie Jumperdrähte, um die Header-Pins wie unten gezeigt anzuschließen. Eine einfache Testmethode besteht darin, zunächst GPIO.BOARD 12 mit GND zu verbinden.

[!CAUTION] Überprüfen Sie die Pin-Zuordnung vor dem Verdrahten. Falsche Verbindungen können die Platine kurzschließen.
Signal lesen
Führen Sie das Beispielskript aus den jetson-gpio-Beispielen aus:
cd /opt/seeed/development_guide/05_gpio/jetson-gpio/samples
sudo python3 simple_input.py
Wenn das Ergebnis der erwarteten niedrigen Ebene entspricht, verbinden Sie den Testpin erneut von GND mit 3.3V und führen Sie das Skript erneut aus:
cd /opt/seeed/development_guide/05_gpio/jetson-gpio/samples
export JETSON_MODEL_NAME=JETSON_ORIN_NANO
python3 simple_input.py
Die Terminalausgabe sollte nun ein hohes Signal melden.
GPIO-Ausgang
Einleitung
Auf JetPack 6.2 verhalten sich viele Pins, die zuvor sowohl Eingang als auch Ausgang unterstützten, möglicherweise nur als Eingang, bis der Pinmux angepasst wird. Diese Seite stellt zwei praktische Methoden vor, um das Ausgabeverhalten auf unterstützten Pins wiederherzustellen:
- Eine temporäre
busybox devmem-Methode - Eine dauerhaftere Device-Tree-Overlay-Methode
Methode 1: Temporärer Ausgang mit busybox
Schritt 1: Pinmux-Register abfragen
Verwenden Sie jetson-gpio-pinmux-lookup, um die Registeradresse für einen Header-Pin zu finden:
jetson-gpio-pinmux-lookup 31
Das Beispiel unten zeigt den zurückgegebenen Registerwert für Pin 31.

Schritt 2: Ausgangsmodus konfigurieren
Installieren Sie bei Bedarf busybox:
sudo apt install busyboxSchreiben Sie dann den Pinmux-Registerwert:
sudo busybox devmem 0x02430070 w 0x004
Schritt 3: Ausgangstest ausführen
Aktualisieren Sie das Beispielskript, um den richtigen BCM-Pin für Ihren Testfall zu verwenden, und führen Sie es dann aus:


cd /opt/seeed/development_guide/05_gpio/jetson-gpio/samples
export JETSON_MODEL_NAME=JETSON_ORIN_NANO
python3 simple_out.py
Sie können die Ausgangspegeländerung mit einem Multimeter oder Oszilloskop überprüfen.
Methode 2: Device-Tree-Overlay
Diese Methode ist besser, wenn Sie möchten, dass die Pin-Konfiguration bestehen bleibt.
Klonen Sie das Hilfsprojekt und bearbeiten Sie die DTS-Datei:
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
Passen Sie die Pin-Definition für den GPIO an, den Sie ändern möchten, und erstellen Sie dann das 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

Nachdem das Overlay aktiviert ist, verwenden Sie die bekannte BCM-Pinnummer im Testskript.

Führen Sie den Ausgangstest erneut aus:
cd /opt/seeed/development_guide/05_gpio/jetson-gpio/samples
python3 simple_out.pyReferenzen
reComputer Super J401
reComputer Super J401
Einleitung
GPIO steht für General Purpose Input/Output. Diese Pins ermöglichen es der Software, externe digitale Signale zu lesen oder einfache Peripheriegeräte wie LEDs, Tasten, Summer und Steuerleitungen anzusteuern. Der reComputer Super verfügt über einen 40-Pin-Erweiterungsheader, der Zugriff auf GPIO-Pins bietet und eine einfache Integration mit externen Geräten ermöglicht.

Hardware-Verbindung
Der reComputer Super verfügt über einen 40-Pin-Erweiterungsheader, der Zugriff auf GPIO-Pins bietet. Um die GPIO-Pins zu verwenden, müssen Sie externe Geräte an die entsprechenden Pins dieses Headers anschließen.
40-Pin-Header-Pinout
Die Details des 40-Pin-Headers sind unten dargestellt:
| Header-Pin | Signal | BGA-Pin | Standardfunktion |
|---|---|---|---|
| 1 | 3.3V | - | Haupt-3.3V-Versorgung |
| 2 | 5V | - | Haupt-5V-Versorgung |
| 3 | I2C1_SDA | PDD.02 | I2C #1 Daten |
| 4 | 5V | - | Haupt-5V-Versorgung |
| 5 | I2C1_SCL | PDD.01 | I2C #1 Takt |
| 6 | GND | - | Masse |
| 7 | GPIO09 | PAC.06 | Universal-Ein-/Ausgabe |
| 8 | UART1_TXD | PR.02 | UART #1 Senden |
| 9 | GND | - | Masse |
| 10 | UART1_RXD | PR.03 | UART #1 Empfangen |
| 11 | UART1_RTS | PR.04 | UART #1 Anforderung zu senden |
| 12 | I2S0_SCLK | PH.07 | Audio I2S #0 Takt |
| 13 | SPI1_SCK | PY.00 | SPI #1 Takt |
| 14 | GND | - | Masse |
| 15 | GPIO12 | PN.01 | Universal-Ein-/Ausgabe |
| 16 | SPI1_CS1 | PY.04 | SPI #1 Chip-Auswahl #1 |
| 17 | 3.3V | - | Haupt-3.3V-Versorgung |
| 18 | SPI1_CS0 | PY.03 | SPI #1 Chip-Auswahl #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 | SPI #0 Takt |
| 24 | SPI0_CS0 | PZ.06 | SPI #0 Chip-Auswahl #0 |
| 25 | GND | - | Masse |
| 26 | SPI0_CS1 | PZ.07 | SPI #0 Chip-Auswahl #1 |
| 27 | ID_I2C_SDA (I2C0_SDA) | PDD.00 | I2C #0 Daten |
| 28 | ID_I2C_SCL (I2C0_SCL) | PCC.07 | I2C #0 Takt |
| 29 | GPIO01 | PQ.05 | Universal-Ein-/Ausgabe |
| 30 | GND | - | Masse |
| 31 | GPIO11 | PQ.06 | Universal-Ein-/Ausgabe |
| 32 | GPIO07 | PG.06 | Universal-Ein-/Ausgabe |
| 33 | GPIO13 | PG.00 | System reserviert |
| 34 | GND | - | Masse |
| 35 | I2S0_LRCK (I2S0_FS) | PI.02 | Audio I2S #0 Frame-Sync |
| 36 | UART1_CTS | PR.05 | UART #1 Clear to Send |
| 37 | SPI1_MOSI | PY.02 | SPI #1 Master Out / Slave In |
| 38 | I2S0_SDIN (I2S0_DIN) | PI.01 | Audio I2S #0 Daten Eingang |
| 39 | GND | - | Masse |
| 40 | I2S0_SDOUT (I2S0_DOUT) | PI.00 | Audio I2S #0 Daten Ausgang |
GPIO-Bibliotheksinstallation
Nummerierungsmodi
Die Jetson.GPIO-Bibliothek unterstützt zwei gängige Nummerierungsschemata:
| Modus | Beschreibung | Typische Verwendung |
|---|---|---|
BOARD | Nummeriert Pins nach ihrer physischen Position auf dem 40-Pin-Header | Am besten, wenn Sie direkt von der Header-Beschriftung oder einem Pinout-Diagramm verdrahten |
BCM | Nummeriert Pins nach der GPIO-Zuordnung, die von der Bibliothek verwendet wird | Am besten, wenn Sie Python-GPIO-Beispielen folgen, die sich auf logische GPIO-IDs beziehen |
GPIO-Verwendungsbeispiele
Grundlegender GPIO-Ausgang
import Jetson.GPIO as GPIO
import time
# GPIO-Modus setzen
GPIO.setmode(GPIO.BOARD)
# Pin definieren
output_pin = 12
# Pin einrichten
GPIO.setup(output_pin, GPIO.OUT)
try:
while True:
# Pin einschalten
GPIO.output(output_pin, GPIO.HIGH)
time.sleep(1)
# Pin ausschalten
GPIO.output(output_pin, GPIO.LOW)
time.sleep(1)
except KeyboardInterrupt:
# Aufräumen
GPIO.cleanup()Grundlegender GPIO-Eingang
import Jetson.GPIO as GPIO
import time
# GPIO-Modus setzen
GPIO.setmode(GPIO.BOARD)
# Pin definieren
input_pin = 11
# Pin einrichten
GPIO.setup(input_pin, GPIO.IN)
try:
while True:
# Pin-Wert lesen
value = GPIO.input(input_pin)
print(f"Pin-Wert: {value}")
time.sleep(0.5)
except KeyboardInterrupt:
# Aufräumen
GPIO.cleanup()Super-spezifische GPIO-Funktionen
Der 40-Pin-Header des reComputer Super bietet Zugriff auf eine Reihe von GPIO-Pins und ermöglicht eine flexible Integration mit externen Geräten. Dies macht ihn ideal für eine Vielzahl von Anwendungen, einschließlich:
- Steuern von LEDs und anderen Anzeigen
- Lesen von Tastendrücken und Sensoreingaben
- Steuern von Motoren und Aktoren
- Schnittstelle zu anderen Mikrocontrollern und Geräten
Sicherheitsvorkehrungen
- Überprüfen Sie immer die Pin-Verbindungen, bevor Sie Strom anlegen
- Verwenden Sie geeignete Widerstände beim Anschließen von LEDs und anderen Komponenten
- Vermeiden Sie Kurzschlüsse an GPIO-Pins
- Beachten Sie den maximalen Stromwert für GPIO-Pins
Weiterführende Literatur
Seeed Jetson AGX Orin Kit
Seeed Jetson AGX Orin Kit
Einleitung
Das Seeed Jetson AGX Orin Kit enthält einen 40-Pin- (2 × 20, 2,54 mm Rastermaß) Erweiterungsheader (J30).
40-Pin-Header-Pinout
Der 40-Pin-Erweiterungsanschluss umfasst verschiedene Audio- und Steuerschnittstellen, darunter:
- Audio: I2S, digitales Mikrofon, Takt und Steuerung
- I2C (2x), SPI, UART, CAN und PWM (2x)
- GPIOs (sowohl dedizierte als auch mit anderen Schnittstellen-Pins geteilte)
Alle Signalpins sind auf 3,3V-Pegel.
[!NOTE] Viele der Signale am 40-Pin-Erweiterungsheader stammen von TI TXB0108-Pegelwandlern. Aufgrund des Designs dieser Geräte sind die Ausgangstreiber sehr schwach, sodass sie von einem anderen angeschlossenen Geräteausgang für bidirektionale Unterstützung übersteuert werden können. Die mit diesen Puffern verbundenen Signale haben eine "3" in der Notizspalte der folgenden Tabelle. Weitere Informationen finden Sie in der Application Note zu den 40-Pin-Erweiterungsheader-GPIO-Verwendungshinweisen des Jetson Nano Developer Kit.


[!NOTE] Anmerkungen:
- Dies ist die Stromfähigkeit pro Stromversorgungspin.
- Diese Pins sind über einen FXMA2102L8X-Pegelwandler mit dem SoC verbunden. Sie sind Open-Drain (entweder hochgezogen oder vom SoC niedrig getrieben, wenn sie als Ausgänge konfiguriert sind). Der maximale Antrieb, der das Datenblatt VOL erfüllt, beträgt 1mA.
- Siehe zugehörige Anmerkung über der Tabelle.
- Diese Pins sind mit einem SN74LVC4T245-Puffer verbunden.
- Diese Pins sind direkt mit dem SoC verbunden. Der maximale Antrieb, der das vollständige Datenblatt VOL/VOH erfüllt, beträgt 1mA.
- Für die Standardeinstellung beim Einschalten gilt: "pd" = SoC-interner Pull-down, "pu" = SoC-interner Pull-up und "z" = Tristate
- In der Spalte Typ/Richtung ist Ausgang zum Erweiterungsheader, Eingang vom Erweiterungsheader. Bidir ist für bidirektionale Signale.
- Die angegebene Richtung entspricht der im Referenzdesign-Schaltplänen angegebenen Richtung. Diese Signale unterstützen GPIO-Funktionalität und können bidirektional sein.
Automatisierungsheader
Das Seeed Jetson AGX Orin Kit enthält einen 12-Pin-Header mit 2,54 mm Rastermaß (J42), der mehrere kritische Systemsteuersignale zugänglich macht.
- Pin #1, #12: GND
- Pin #2, #3, #4: Eingang, gleiche Funktion wie drei Tasten: Recovery, Reset, Power.
- Pin #5-#6: Offen: Auto-Einschalten deaktiviert; Kurzgeschlossen: Auto-Einschalten aktiviert.
- Pin #7: CVB_STBY: Ausgang, zeigt an, ob das Modul im Ruhezustand ist.
- Pin #8: SYSTEM_OC: Eingang, um Tegra-Drosselung auszulösen.
- Pin #9-#10: Offen: Wake(Boot) on LAN aus dem Aus-Zustand ist deaktiviert; Kurzgeschlossen: Wake(Boot) on LAN aus dem Aus-Zustand ist aktiviert.
- Pin #11: JTAG_TRST, JTAG-Test-Reset.
