Jetson Nano GPIO pins floating during reset of an external MCU

We are currently trying to use a Jetson Nano devkit to flash an external MCU over uart. We have had full success with the UART communications and in fact have been successful at flashing the external unit occasionally.

Our main issue is that we have to access and trigger a few GPIO pins from the Jetson Nano to the MCU in order to enter into its bootstrap loader (BSL) to flash it over UART. When we attempt to use the Jetson Nano GPIO pins, they do not work consistently and often end up floating around 1.5V which does not allow us to enter the BSL and therefore we cannot flash the unit. This also happened on our Jetson Xavier NX and had the same behavior of floating instead of working properly.

For our setup, we are using Pins 11/12 (gpio50/gpio79) as both outputs on the Nano. They are connected to two pins of our MCU. One of the MCU pins has a pull up resistor and the other has no resistors attached. We have tried other pins as well with no change in behavior.

We are able to see the pins toggle on an oscilloscope and that is when we can also see them float so we know we have the right pins. We have tried to toggle the pins using both the command line utilities of /sys/class/gpio (including exporting them), and also a C/C++ library, which simply writes out to those same files.

Any help on debugging this issue would be greatly appreciated.

Hi bray4168,

What’s the Jetpack version in use?

Please share the results of the following commands on your board?

$ cat /etc/nv_tegra_release
$ cat /etc/nv_boot_control.conf

Is you issue specific to the GPIO control on Jetson Nano?

Have you configured them as Output in pinmux spreadsheet before use?

Please also try disconnect them to your MCU and check if it could be controlled as expected.

We have tried both 5.1.4 and 5.1.5. Right now we are running 5.1.5.

One of our test units is a Jetson Xavier and it cannot be flashed with 6.X.X. The other is a Jetson Nano and they are both seeing similar results.

Here are the results from the commands.

Yes the issue is specific to GPIO control on the Jetson Nano and no we did not configure them as output in the pinmux spreadsheet before flashing. I took a look at the default pinmux and it marked both of those pins as bidirectional so I thought that would suffice. Is there a difference in marking it as Output instead?
EDIT: The pins might actually be set to input. I am checking them now to be sure.

We did disconnect it and tried it solely connected to an Oscope. It worked better but there were still times where the waveforms would collapse to 1.5V and stay there until a reboot or the pins were disconnected.

It seems you are using Xavier NX(P3668) rather than Jetson Nano(P3448).

It is expected since Xavier can not work with Jetpack 6.x.
Let me list the following for your reference.
Jetson Nano series(T210): Jetpack 4.x
Xavier series(T194): Jetpack 4.x and 5.x
Orin serires(T234): Jetpack 5.x and 6.x

Bi-directional should also be fine to work with output.
Please confirm what’s the actual module you are using. (Xavier NX or Jetson Nano).

Please configure it as output in pinmux spreadsheet before use.
As my understanding, most of the pins are configured as input by default.

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.