PYNQ: PYTHON PRODUCTIVITY FOR ZYNQ

Efficient PS<->PL GPIO

Hi,

I have enabled the EMIO GPIO in my overlay and used it to connect to my PL. Unfortunately the GPIO class forces me to read and write all data one bit (resp. pin) at a time. That is really very unfortunate, and somewhat vexing. I expected to be able to read/write 32 pins at a time. How do I make this work?

Kind regards, Frank

This is a limitation of the kernel driver that PYNQ uses to interact with the GPIO pins. There is a newer kernel API that is available in some of the more recent PYNQ images that potentially offers the ability to set multiple pins simultaneously. There is a user-space library called libgpiod that has Python bindings and uses the new kernel API that might be worth looking into.

Peter

1 Like

Hi,

thanks for the information!
That gives me a starting point for looking into this further.

Kind regards, Frank