PYNQ: PYTHON PRODUCTIVITY FOR ZYNQ

Servo Motor control using PYNQ-Z1

Hi!

Can we control servo motors using PYNQ-Z1?
How do we give PWM to the pins that are connected to the motor drive?

You could do this in a number of different ways depending on what you need.

In the base design, the IOPs have an AXI Timer module that can support PWM.
See example here, and this notebook can be found on your board:
https://github.com/Xilinx/PYNQ/blob/master/boards/Pynq-Z1/base/notebooks/pmod/pmod_timer.ipynb

The base design has GPIO connected to a MicroBlaze. You could write a c program to write to bit-bang GPIO pins with the PWM pattern(s) you need.

You could do this from a Notebook using this library:
https://pynq.readthedocs.io/en/v2.4/pynq_libraries/pynqmb_reference.html#gpio-devices

You could create a new design with an AXI PWM controller (or multiple controllers) connected to the pins you need.

You could also use the logictools overlay to stream out a particular PWM pattern using the PatternGenerator.
https://pynq.readthedocs.io/en/v2.4/pynq_libraries/logictools.html#pattern-generator

Cathal