TX2, Servo Motor Control

Hello
I purchaed Jetson TX2 board and I’ve been installed Jetpack 3.1 including L4T and etc…

By the way.
I wanna controll servo motor through TX2 board
But there is no PWM pin for servo motor

how can I controll servo motor?
My servor motor’s operationg volatage is 4.8V~6V

shoud I purchase motor driver for I2C to PWM signal changing?

There is no way to controll servo motor without additional purchase?

Most servo motors use RS-485 or CAN bus for control. The Jetson has UARTs and CAN bus interfaces built in to control these.
Only hobby servos (like you’ll find on toy remote controlled cars) use PWM duty cycles for control.
If you want to control a hobby servo, then yes, you will likely need to use some kind of converter to generate the appropriate duty cycle signal at the appropriate control voltage.

The simplest way is likely to buy a separate PWM generator board. Examples include:
Pololu Micro Maestro, 6 channels, USB control: https://www.pololu.com/product/1350
PCA9685 based servo control board, 16 channels, I2C control: http://amzn.to/2wv7nqI
Note that the Pololu boards are much more precise – you get control of up to 0.25 microseconds, whereas the PCA boards only give you 4 microsecond resolution.

Now, if you only need to generate one waveform, and you won’t be using all the cores of the Jetson for other work, then you COULD probably do something like this:

set_thread_as_realtime()
forever:
  set_gpio_high()
  usleep(on_time)
  set_gpio_low()
  usleep(off_time)

You need to run the process as root, and you need to read up on real-time priorities for threads in the pthreads documentation for Linux.

This is not an efficient way to generate a PWM control signal, but it would “work,” assuming you can find a good way to quickly turn GPIO pins on and off. (Using read()/write() to sysfs is not a quick way.)