16 microphone MEMS (PDM) sur ma PYNQ-Z2

Hi,
I would like to connect 16 PDM microphones (MEMS) to my PYNQ-Z2.
I saw that there was a PDM microphone on the PYNQ-Z1 board, how can I do the same?

Do I have to redo a PL or can I do it with the python code?

Thanks in advance

Yes, you need a custom PL design.
If the microphones are the same or similar to the PYNQ-Z1, you could replicate the IP from that design 16x times and update the software to communicate with your hardware.

Cathal

Hi,
Thank you for your answer.

I installed VIVADO 2020.1 (webpack) to follow your tutorial “Tutorial: Rebuilding the PYNQ base overlay (PYNQ v2.6)” in order to look at the microphone PL and copy it

The Tcl command completes without any problems

cd <PYNQ repository>/boards/Pynq-Z2/base
source ./build_ip.tcl

But this one

source ./base.tcl

returns an error :

I don’t know the environment, I have the impression that the download directory on github contains IPs that are not in my VIVADO software on my PC !?

Could someone help me ?

Thank you

The HLS IP sources are provided in the repo but need to be compiled before they can be used. This is what the build_ip.tcl is doing. The (compiled) IP can’t be found, so the build_ip may not have completed properly.
Did you apply this patch?
https://support.xilinx.com/s/article/76960?language=en_US
The scripts have relative paths so you need to run then from the correct directory.
i.e. this is important cd <PYNQ repository>/boards/Pynq-Z2/base

You can check the HLS folder to see if the compiled IP folders exist. You can also open the TCL file, check the commands, and run them one by one and see if there are any problems.

Cathal

I will try tonight.
Can I use the latest version of Vivado to rebuild ? (v 2.7)

Thank you

v2.7 has been tested and verified with 2020.2. You would be better sticking to this version if you can.

The IP you are looking for is here if it is easier for you to review: PYNQ/boards/ip/audio_direct_1.1 at master · Xilinx/PYNQ · GitHub

Cathal

Hi,
Perfect ! (I had not patched)

But you need a powerful PC :hot_face:

Is there a simple way to get the full IP so I can use it on my PYNQ-Z2 ?

Thank you

Hi, i’m currently doing the same thing but having problems running the IP on Z2 board. I have tried loading both the Z1 base overlay and my custom overlay with the audio_direct IP, but when the function record() is called in python code, the kernel will just die. Running the code in terminal gives the following message:
Screenshot 2023-01-10 030308

@JZX

IIC address device-tree wrongly set?

Enjoy~