Can't drive GPIO pin or very slow - Orin NX with Nano devkit JP6.1

Hi.

I’m using Orin NX 16GB on Orin Nano devkit carrier board, JP 6.1.

I have changed pinmux of some GPIO pins (GPIO01, 11, 07 and 13) as output direction:


Pinmux and gpio-default DTSI files were generated and copied into Jetpack folder, updated configuration file as well.
And I have done a full flashed the board with changing the PINMUX_CONFIG to my custom pinmux file.

sudo ./tools/kernel_flash/l4t_initrd_flash.sh --external-device nvme0n1p1 -p "-c ./bootloader/generic/cfg/flash_t234_qspi.xml" -c ./tools/kernel_flash/flash_l4t_t234_nvme.xml --showlogs --network usb0 jetson-orin-nano-devkit-nvme external

I’m sure that the pinmux file is applied, I saw it in the flash log. Checking the pinmux after boot, looks good:

root@orin-linh:/# gpioinfo | grep PQ.05
	line 105:      "PQ.05"       unused  output  active-high 
root@orin-linh:/# gpioinfo | grep PQ.06
	line 106:      "PQ.06"       unused  output  active-high 
root@orin-linh:/# gpioinfo | grep PG.06
	line  41:      "PG.06"       unused  output  active-high 
root@orin-linh:/# gpioinfo | grep PH.00
	line  43:      "PH.00"       unused  output  active-high

Then when I try to drive the GPIO pin HIGH/LOW, I got issue when trying to set/clear GPIO level:
For example, when I set GPIO07 from HIGH to LOW gpioset --mode=wait `gpiofind "PG.06"`=0, with the multimeter connected, I saw the voltage down from 3v3 → 1v6. Then if I disconnect the multimeter’s probe on GPIO07, and connect again, I saw the voltage is 3v3, I disconnect and connect the probe once more time, the voltage is 0v. And keep stable as 0v when I re-connect the probe after that.
In reverse, when I set the GPIO07 from LOW to HIGH gpioset --mode=wait `gpiofind "PG.06"`=1, I saw the voltage on multimeter goes to 3v3, then immediately down to 1v6. Re-connect the probe on GPIO07, it goes up to 3v3 and stable there.
Tested on other GPIO pins (GPIO01, GPIO11 and GPIO13) giving similar behavior.

Do you have any idea about what the problem is?

Hi Hnil.DN,

Have you applied 40hdr - SPI1 gpio padctl register bit[10] effect by gpiod tools in JP6 - #20 by KevinFFF in your case before control GPIO?
You can also check the pinmux register to confirm if you hit the similar issue.
For PQ.05, you can run the following command to read its value:

$ sudo busybox devmem 0x02430068

Please also get a oscilloscope or logical anlayzer to check the waveform for its actual state.

Hi Kevin,

I applied the patch (on latest post in the thread you shared), recompile & deploy the kernel to my board.
The pinmux looks correct after bootup:

linh@orin-linh:~$ sudo busybox devmem 0x02430068
0x00000020

And the pinmux remains the same value during & after the gpioset command execution (with --mode=wait)
However the behavior of GPIO pins still the same.

I don’t have oscilloscope to check the form of the GPIO output. I will try to have one. But in the meantime, do you have any other idea that I can check? Thank you.

Hi Kevin,

I borrowed a logic analyzer (Digilent Analog Discovery 2) to scope the signals.
The result is GPIO07 and GPIO13 works fine. The output voltage is immediately changed when I issue gpioset command. But the GPIO01 and GPIO11 doesn’t change its voltage level by gpioset command.

In this picture, I used command # gpioset --mode=wait 0 105=1 106=1 41=1 43=1 to set 4 GPIO pins to HIGH, then set it to LOW by # gpioset --mode=wait 0 105=0 106=0 41=0 43=0.
Channel 1 is GPIO13, Channel 2 is GPIO07:

In this picture, Channel 1 is GPIO01, Channel 2 is GPIO07, I used the same command as above to control 4 GPIO pins at the same time. You can see the GPIO01 doesn’t change while GPIO07 changed.

Any ideas? Thank you.

Let’s focus on the behavior of GPIO01(PIN29 of 40 pins header)
Do you also configure it as Output/Drive 1 in pinmux spreadsheet?
If so, you should get 3.3V after boot up by default.
Please also share the result of the following command to check if any driver is using it.

$ sudo cat /sys/kernel/debug/gpio|grep PQ.06

and the following command to check its pinmux register

$ sudo busybox devmem 0x02430070

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