zoggx003

MIC3 Zybo DSP Project

5 posts in this topic

I recently purchased the Zybo, zynq development board, along with a MIC3 so that I could hopefully take in audio from the PMOD port and then process it in Arm processor, and finally output it  through the audio output port. I'm having trouble getting the audio routed with the IP in vivado. I'm fairly new to the vivado IP integrator but I have some experience creating verilog projects. Has anyone used the MIC3 with the zybo, or know how to get the audio from a MIC3 in one of the PMOD ports, into the ARM for proccessing? Any help would be greatly appreciated.

Share this post


Link to post
Share on other sites

Hi @zoggx003,

There is a couple of different ways to get the PModMIC3 working with the zynq processor. Unfortunately, At this time we have not made a PmodMIC3 IP yet. I made a generic PmodMIC3 IP that has the vivado portion done. I attached it below but you will need to implement the SDK portion of the IP.  To implement the SDK I would look at the different IP's here that use SPI. Many of the IP's made used the MPIDE/Arduino code that is posted for most of the Pmods as a reference. Here is the resource page for the PmodMIC3 that has the MPIDE/Arduino code available. The other way is to make hdl code for the PmodMIC3 and the use the add block feature in Vivado 2016.x to tie it into the AXI gpio. I have attached a project where we used hdl for the PmodAD1 and tied it into using the Add block feature.

cheers,

Jon

PmodMIC3_v1_0.zip

GPIO_add_a_block.zip

Share this post


Link to post
Share on other sites

UPDATE: So far I have still not been able to figure out how to get the PMOD MIC3 to output throught the Audio Codec. 

Background: for a little more background on this Project, I am trying to do a basic version of Acoustic Beamforming. To do this I will create a custom verilog design that will take audio samples from multiple MIC3s and store them in a large buffer array. Then I am planning on applying some digital filters on the samples in the ARM processor, and ultimately output a single audio stream through the I2S Audio Codec. I have included the code for the multiple Mic audio interface below.

Next Steps: Before I worry about introducing multiple microphones and my custom SPI interface for the ARM, I would first like to simply pass audio samples from the PMOD MIC3 through the ARM, and out the 3.5mm Jack. 

ISSUES: I have not been able to run the DMA example for the Zybo board from the digilent github. When I try to run the tcl script to generate the project, none of the IP blocks get connected, and the project will not generate the bitstream. I would like to get this project working first so that I can then try and change the design to take audio samples from the MIC3 instead of from the audio input jack. 

REQUEST: Could someone help me figure out how to run the DMA example for the Zybo board? That would be Great!! Sorry for the long post. (Also note that I am pretty new to the vivado IP design system, and the SDK)

beamformer_hardware.zip

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now