For a project I need more PWM outputs than there are available on the RPI IOP microblaze. I made a program which runs softpwm on the microblaze. The exact timing is not very important as it’s just to drive some LEDs.
As stated in the microblaze programming guide, it’s possible to have the microblaze running code asynchronously to the ZYNQ PS. To do that, the c function that runs on the µblaze has to be a void type and cannot have any input arguments. This is where the problem rises: the values such as PWM period and dutycycle have to be passed to make it work. However when i run the function, it blocks the python code as is stated in the documentation. Is there any way around this?
Sadly I have been forbidden to make any changes that would require me to resynthesize the base overlay or i would have just rerouted the PWM IOs from other microblazes to the RPI header.
softpwmtest.ipynb (13.2 KB)