Pynq-Z2 Audio Codec

Hi to all,
I am assigned to do a project on Pynq-Z2 platform. The project should play a wav file using ADAU1761BCPZ, and at the same time, it should sample the reflected sound by 16 microphons. The receiver part is quite clear for me as I have done it before and I know how to manage it. However there are some vague points for me regarding the TX part and playing the wav format file through the provided audio codec on the Pynq-Z2 board. These are my questions and I would be super grateful if you can help me:

  1. I should be able to play long wav files (up to 1-2 minutes). I can see in the forum that the a wav file can be loaded and played with load and play functions. As I can see, the audio codec IP (audio_codec_controller) has an AXI-Lite interface for reading/writing the RX/TX data. Is the data transmission to the IP core managed by the SW? I mean does the SW read the wav file word by word and write it into the audio_codec_controller continuously independent of the wav file length?

  2. My design should be able to play several sampling frequency like 96k, 48k and 24k. However I can see the sampling frequency is limited to a division factor of 2048 (–lrclk = 100MHz / 2048 = 48.828125 KHz) which is implemented in the user_logic.vhd hdl file. If I want to have a flexible factor as I indicated, is it enough to provide a register for this division factor and use it as a variable division factor, or should I do sth else?

Thank you in advance for your support. I appreciate your help.
Amir

Hi @marioruiz ,
I would be grateful if you can help me in this topic.
Thank you.

Hi @amassahb,

I am not very familiar with this. However, you can check the Python driver here PYNQ/pynq/lib/audio.py at master · Xilinx/PYNQ · GitHub

Mario