We are building custom board for Jetson Orin Series(Orin Nano & Orin NX) Modules with L4T 36.4.3.
(This patch has been applied 40hdr - SPI1 gpio padctl register bit[10] effect by gpiod tools in JP6 - #20 by KevinFFF)
We are testing DIO pins connected to GPIO#10 & GPIO#12 (PEE.02 & PN.01).
Both pins are configured as bidirectional & pull-high by custom board.
I’m testing it by the following steps.
After booting up, I can measure both pins being 5V by voltage meter.
But get 1 & 0 by gpioget command as below
*** Please note that this reply is generated by LLM automatically ***
The issue you’re experiencing with the Jetson Orin NX and custom board development involves configuring and testing DIO pins connected to GPIO10 and GPIO12 (PEE02 and PN01). Despite setting these pins as bidirectional and pull-high, you’re encountering inconsistent behavior when measuring their states using gpioget and gpioset commands. Let’s break down the key points and potential steps to resolve or further troubleshoot the issue:
Configuration and Initial State:
You’ve configured GPIO10 and GPIO12 as bidirectional and pull-high on your custom board.
Initially, after booting, both pins measure 5V, which aligns with the pull-high configuration.
However, using gpioget, you’re reading both pins as 0, which doesn’t match the expected high state.
Testing with External Connections:
When you short both pins to GND, gpioget correctly reads them as 0.
When you short both pins to 5V, gpioget still reads them as 0, which is unexpected for PN01 and indicates a failure for PEE02 to be recognized as high when externally driven.
Using gpioset:
Setting both pins to 1 with gpioset and measuring with a voltage meter shows the expected behavior for the output state.
Setting both pins to 0 with gpioset also shows the expected behavior.
Potential Issues and Troubleshooting Steps:
Device Tree Configuration: Ensure that the device tree configuration for these GPIOs is correct. The fact that you’ve generated the device tree using a spreadsheet and applied a patch suggests you’re on the right track, but double-checking the configuration for GPIO10 and GPIO12 in the device tree source files is crucial.
Pin Multiplexing: Verify that the pin multiplexing (pinmux) is correctly set for these GPIOs. The Jetson Orin series often requires specific pinmux configurations to ensure GPIO functionality. The Orin_test_pinmux.zip you mentioned should be reviewed to ensure it matches your hardware and software configurations.
GPIO Pad Control: The mention of a patch affecting the SPI1 GPIO pad control register bit 10 suggests there might be specific requirements for configuring GPIOs on your custom board. Ensure that any patches or modifications to the GPIO pad control are correctly applied and understood.
Hardware Verification: Beyond software, it’s essential to verify the hardware connections and design. Ensure that the connections from the Jetson module to your custom board are correct and that there are no issues with the PCB design that could affect the GPIO functionality.
Comparison with Similar Issues: The behavior you’re seeing, especially with PN01 always reading low and PEE02 failing to read high when shorted to 5V, suggests there might be a specific issue with either the hardware or the software configuration of these pins. Comparing your setup and findings with known issues or documentation for the Jetson Orin NX might provide insights.
NVIDIA Support and Community: Given the complexity of custom board development and the specific nature of your issue, reaching out to NVIDIA’s support forums or developer communities might provide additional insights or direct assistance from individuals who have encountered similar challenges.
In summary, while you’ve taken significant steps in configuring and testing your custom board’s GPIO functionality, there appear to be discrepancies in how these pins are behaving compared to expectations. A thorough review of the device tree configuration, pin multiplexing, and hardware design, along with potentially seeking community or official support, will be necessary to resolve these issues.
*** Please give the thumbs up if you get answers you like. Or provide feedback to help us improve the answer. ***
And I tried to cut from the red line in the block diagram.
(All Voltage are measured by meter from red line)
Read Default value → Wrong value PEE.02
# < 1V from Red Line
user@tegra-ubuntu:~$ sudo gpioget $(sudo gpiofind 'PN.01')
0
# < 1V from Red Line
user@tegra-ubuntu:~$ sudo gpioget $(sudo gpiofind 'PEE.02')
1