GPIO Problems

I seem to have read about this issue elsewhere but I am having problems getting the GPIO pins to behave as I would expect at least. Trying to set an output as either high or low, 0 or 3.3 volts I get inconsistent results when attempting to detect either a high or low state using a High Impedance input on a PIC 16F819 over a short run of wire. Detection does occur eventually but is highly inconsistent. I seem to get the reported elsewhere 1.6Volt with a 55MHz sine wave of approximately 1V P-P I’ve tried both external pull up and pull down but the results appear the same in each case. Am I missing something here, is this something that might be fixed on future boards?

hello tim.west,

may I know are you using a customize carrier board?
had you also check application note, Jetson Nano Developer Kit 40-Pin Expansion Header Configuration for customization.
please also share which pin you’re working with and also the detail steps to reproduce the issue.
thanks

We have tried pins 29, 31, 33 the spreadsheet shows these as Bi-directional IOs so we set them as output and then either high or low. Reading with a multimeter to ground gives ~ 1.6 volts as does a scope if we do not use an oscilloscipe probe. If we try an oscilloscope probe the IO will read either 3.3 or 0V as expected. We understand this is due to the capacitance of the leads used. If we try an input direct to the PIC chip we see essentially random detection of the signal, if we set the pin high it will eventually indicate high to the PIC High Impedance input and and if we set it low we will see the same thing but it is essentially random. We have another device with High Impedance inputs (solid state relay) and this will not switch either using the IO pins directly. If I add an NPN transistor as a switch into the mix I can then get it to register the IO correctly but I want to avoid this if at all possible.

Thanks.

hello tim.west,

according to Jetson Nano GPIO Header PINOUT.
did you mean you would like to configure pin-29(CAM_AF_EN), pin-31(GPIO_PZ0), and pin-33(GPIO_PE6)?

Yes, we have configured those pins as GPIO outputs, however, as I have explained the behaviour is erratic except when measured with an Oscilloscope probe. I need them as either 0 or 3.3 volts not 1.6volts with a 55MHz sine wave. Thanks.

hello tim.west,

please check customer usage from pinmux spreadsheet.
I think you did not configure the pinmux as GPIO pin correctly.
please refer to application note, Jetson Nano Developer Kit 40-Pin Expansion Header Configuration for customization.

BTW,
could you please modify those GPIO pin via sysnodes.
you may enable GPIOs manually as following for testing,

# Location of the GPIOs
cd /sys/class/gpio
# Generate gpio149 name
echo 149 > export

OK, I am really confused now, are you telling me that I have to that entire process in the application note just so I can configure those GPIOs as outputs with an internal pull up?

Also please explain the echo 149 > export

I just see write error: device or resource busy.

Thanks.

hello tim.west,

device or resource busy failure means such pin has already been used by drivers.
if you open the pinmux spreadsheet for checking, you’ll found CAM_AF_EN configure as Input, and IntPU by default.
also, you may also found below device tree definition to specify CAM_AF_EN, (i.e. TEGRA_GPIO(S, 5)) as gpio-input.
for example,

<i>$l4t-r32.2/public_sources/kernel_src/hardware/nvidia/platform/t210/porg/kernel-dts/porg-platforms/tegra210-porg-gpio-p3448-0002-a02.dtsi</i>

	gpio_default: default {
 			gpio-input = <
				...
				TEGRA_GPIO(S, 5)

you may follow the application note for pin customization, it’ll generate several device trees to update the board.
or, you could just modify device tree and compile your own dtb file for testing.
please note that, here should be a quick way to disassembler output dtb file into txt file for examination.
for example,

$ dtc -I dtb -O dts -o output.txt $OUT/Linux_for_Tegra/kernel/dtb/tegra210-p3448-0000-p3449-0000-a02.dtb

OK, so can we confirm the voltages will pull up to 3.3 as I see a lot of entries in the spreadsheet about 1.8V also can we use apt-get to get the L4T Driver package?

Thanks

hello tim.west,

please access L4T Sources via Jetson Download Center,
thanks

Thanks and what about the voltage question? can we confirm the voltages will pull up to 3.3 as I see a lot of entries in the spreadsheet about 1.8V

They are 3.3v pins and are connected to Tegra chip through a 3.3v to 1.8v level shift.