Jetson Xavier hardware pps_out

Hi kko-smol,
Xavier time is already in sync with network on boot.
To synchronize your HW precisely, can you try following steps if you are not dependent on ethernet module:

  1. Enable CONFIG_TEGRA_HTS_GTE=y
  2. Modify kernel dtb:
    gte@c1e0000 {
    status = “okay”;
    }
  3. Run GTE userspace sample application on target device:
    In this example application, we are toggling 40-pin header Pin 16 (gpio=256) and feeding signals to Pin 32(gpio=257) every 1 second.
    In the kernel source code:
  4. locate tegra-gte-ioctl.h
  5. copy it to /usr/include/linux/
  6. locate tegra_gte_mon.c and compile gcc tegra_gte_mon.c -o gte_mon
  7. Run app, ./gte_mon -d gtechip0 -g 257 -r -f &
    4.a) ./gte_mon -h to print usage.
  8. echo 256 >/sys/class/gpio/export
  9. echo out >/sys/class/gpio/gpio256/direction
    Start toggling GPIO 256 to observe the event.
  10. while true: do
    echo 1 >/sys/class/gpio/gpio256/value
    echo 0 >/sys/class/gpio/gpio256/value
    sleep 1
    done
    //This should print below message.
    HW timestamp GPIO EVENT xxxx
  11. echo 0 >/sys/class/gpio/gpio256/value
    HW timestamp GPIO EVENT yyyy
  12. To close the app, execute fg and ctrl+c
  13. echo 256 >/sys/class/gpio/unexport to release GPIO 256

This will produce pps signals on GPIO pin 32 precisely.
See if this can synchronize your hardware.

Thanks,
Shubhi

1 Like