Getting an 8microsecond GPS PPS event to trigger on GPIO

We have connected a Trimble GPS PPS output to our TX2 with connect tech Astro carrier board. The GPS generates a 8 microsecond pulse width PPS event with a 100 nanosecond rise and fall time. We have connected this PPS signal to GPIO pin gpio_pq4_pi4. This GPIO has been attached to the PPS device in the kernel by modifying the tegra186-tx2-cti-ASG001-revG+.dts file and adding the PPS device shown below to the dts file.

pps: pps_gpio {
	gpios = <&tegra_main_gpio TEGRA_MAIN_GPIO(I, 4) 0>;
	compatible = "pps-gpio";
	status = "okay";

We have built the kernel and deployed it successfully to the TX2, and do find /dev/pps0 and /dev/pp1.

When testing with testpps /dev/pps1 and the GPIO connected to a 1 millisecond pulse source the PPS is triggered correctly, but this same test fails when connected to the GPS PPS signal.

We have increased the axi_cbb clock to maximum clock rate as suggested in Not getting all Interrupts as well confirming that the GPIO is set to edge trigger as shown below.

Can the TX2 detect a 8microsecond pulse?
What is the shortest pulse the TX2 can detect with GPIO?
How do I find the address for the config register and how do I read it from the command line?

I am not sure what the shortest pulse the TX2 can detect on a GPIO is, but I know we were able to detect the rising edge of a PPS pulse with duration ~100 ns using the gpiod_line_request_rising_edge_events call in libgpiod on GPIO480 using the ConnectTech Astro Carrier.

As for finding the config register addresses, I know how challenging this can be. I wrote a short tutorial on all the steps I took to do this and posted it here:

[Making Sense of the Jetson TX2 GPIO Madness]

Hopefully it helps.

1 Like

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