• 0

PModMic and Microblaze


Go to solution Solved by jpeyron,

Question

I have a PmodMIC3 I would like to use with my Microblaze processor on a digilent Arty board. While trying to get the two devices to communicate through Vivado and the Vivado SDK, I have several questions that I could not find answers to.

First, I assume that since there is no specific PmodMIC3 IP block, I should be using the generic PmodBridge IP block in Vivado. The 6-pin PmodMIC3 is plugged into the top row of the 2x6 Pmod output port, so the PmodBridge has it's top row interface set to SPI and the bottom row set to 'Disabled'. The PmodBridge then leads to the AXI Quad SPI block, which is one of the many things going into the Microblaze's AXI Interconnection block. (I assume that the ext_spi_clk on the Axi Quad SPI is meant to be the same ~50 MHz clock as the ext_spi_clk on the PmodOLEDrgb block, also included in this project.)

Assuming that this set of connections is the 'proper' way to get PmodMIC3 to communicate with the Microblaze processor, is there any sample code I can look at, even just to see how to configure the SPI for the microphone by setting up the XSpi_Config block in Microblaze? I've been trying to reverse-engineer it from how the PmodOLEDrgb (which works fine)'s sample code uses SPI to communicate, but haven't had success yet.

PMOD_bridge_vivado.png

AXI_quad_spi.png

PMOD_Customize.png

Link to post
Share on other sites

3 answers to this question

Recommended Posts

  • 1
  • Solution

Hi Wanderso,

I have attached a generic IP with SPI communication. Add this IP to your design. You will need to make an additional output clock from the clock wizard(50 Mhz) and attach it to the ext_spi_clk on the IP and then continue with work flow for vivado i.e. validate design, wrapper, generate bitstream.... Once you are at the point of using SDK you should use the microcontroller code here to help with the SDK code. Let us know if/when you have more questions!

cheers,

Jon

PmodMIC3_v1_0.zip

Edited by jpeyron
Link to post
Share on other sites
  • 1

HI Wanderso,

I would use the PmodAD1 as an example of how to translate the microcontroller code to be used in SDK. Here is the resource page for the PmodAD1 with the microcontroller code which uses DSPI and here is the PmodAD1 IP.  You should only need to look and main.c, PmodAD1.c and PmodAD1.h in the PmodAD1 IP.

cheers,

Jon

Edited by jpeyron
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