Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
learn:programmable-logic:tutorials:zedboard-dma-audio-demo:start [2016/08/25 19:13] – [2. Generate the Project] Sam Lowelearn:programmable-logic:tutorials:zedboard-dma-audio-demo:start [2018/10/29 20:00] (current) – [Features Used] jon peyron
Line 1: Line 1:
 ====== Zedboard DMA Audio Demo ====== ====== Zedboard DMA Audio Demo ======
 +{{ :reference:programmable-logic:zedboard:zedboard-0.png?direct |}}
 +
  
  
 ----- -----
 ===== Overview ===== ===== Overview =====
 +
 +===== Description =====
 +
 +The audio demo records a 5 second sample from microphone(J12) or line in (J13) and plays it back on headphone out(J10) or line out (J12). Recording and playback are started by push buttons.
 +
 ==== Features Used ==== ==== Features Used ====
  
Line 20: Line 27:
 ^ 128×32 OLED Display              |    X      |       | ^ 128×32 OLED Display              |    X      |       |
 ^ Audio Codec                      |               | ^ Audio Codec                      |               |
-^ SD Card Port                               |     | +^ SD Card Port                        X      |       |
- +
-===== Description ===== +
- +
-The audio demo records a 5 second sample from microphone(J12) or line in (J13) and plays it back on headphone out(J10) or line out (J12). Record and playback is started by push buttons: +
-^  Button  ^  Function          ^ +
-^  BTNL    |  play on Line out    | +
-^  BTNR    |  record from line in  | +
-^  BTNU    |  record from microphone      | +
-^  BTND    |  playback on headphone        | +
- +
-For example, with the push of BTNU this demo records 5 +
-seconds of audio data from the MIC (J12) input. Consequently by pressing BTND the demo plays on the HPH OUT (J10) the recorded samples. +
- +
  
 ===== Prerequisites ===== ===== Prerequisites =====
- 
-===Skills=== 
-  * **Basic familiarity with Vivado** 
-    *  //This experience can be found by walking through our "Getting Started with Vivado" guide// 
  
 ===Hardware=== ===Hardware===
Line 50: Line 39:
  
 ===Software=== ===Software===
-  * **Vivado Design Suite 2016.X**  +  * **Vivado Design Suite 2016.4**  
-    * //Newer/older versions can be used, but the procedure may vary slightly// +    * //Newer versions can be used, but the procedure may vary slightly// 
- +    * Xilinx SDK 2016.4 must be included in the installation 
- +  * **Digilent Board Support Files for Vivado**  
-==== 1Setup ==== +    * Follow the [[vivado:boardfiles|Vivado Board Files for Digilent 7-Series FPGA Boards]] guide on how to install Board Support Files for Vivado.
- +
-Plug in your microphone or aux input into the respective jack on your Zedboard. Plug your speakers/headphones into the Line out jack. Plug in your Zedboard and power it on.+
  
 ===== Downloads ===== ===== Downloads =====
-Zedboard Support Repository -- [[https://github.com/Digilent/Zedboard/archive/master.zip|ZIP]] [[https://github.com/Digilent/Zedboard|GIT Repo]]+Zedboard Project Repository -- [[https://github.com/Digilent/Zedboard-DMA/releases/download/v2016.4-1/Zedboard-DMA-2016.4-1.zip|ZIP]] [[https://github.com/Digilent/Zedboard-DMA|GIT Repo]]
  
 ------ ------
-===== How to... ===== 
  
-==== 1. Download the Project ====+====Download and Launch the Zedboard DMA Audio Demo =====
  
->1.1) Download the project zip file which can be downloaded {{https://github.com/Digilent/Zedboard/archive/master.zip|here}}. Once you have downloaded the projectunzip it in the location of your choosing.+>1) Follow the [[:learn:programmable-logic:tutorials:github-demos:start:|Using Digilent Github Demo Projects]] TutorialSince this is a Vivado SDK Project, you can either directly launch SDK and import the hardware handoffor you can generate a bitstream in Vivado before launching SDK. Select the hardware handoff options in the tutorial if you don't want to modify the project block design later. Return to this guide when prompted to check for additional hardware requirements and setup.
  
->1.2) If you want to generate the project in Vivadocontinue to step 2. If you want to move straight to Xilinx SDK, skip to step 5. +>2) In order to use the demo, you will need to plug in your microphone or aux input into the respective audio input jack on your ZedboardPlug your speakers and/or headphones into the repective audio output jack.
- +
-==== 2. Generate the Project ==== +
->2.1) If not already installed, install the Vivado Board Files for the Zedboard by following this guide: [[vivado:boardfiles| Installing Vivado Board Files for Digilent Boards]]. +
- +
->2.2) Generate the **dma** project in the Projects folder by following this guide before continuing: [[vivado:github|How to Generate a Project from Digilent's Github]]. **NOTE**: This must be done in Vivado 2016.2 +
- +
-==== 3. Build the Project ==== +
- +
->3.1) Click **Generate Bitstream** on the left hand menu towards the bottomVivado will run through both Run Synthesis and Run Implementation before it generates the bitstream automatically+
 > >
->Note: If you want, you can click each step by itself in the order of **Run Synthesis**, **Run Implementation** and then **Generate Bitstream**. +>{{:learn:programmable-logic:tutorials:zedboard-dma-audio-demo:zed-dma.jpg?500|}}
-+
->{{:basys3:buildflow.png?600|}} +
- +
- +
-==== 4. Export to SDK ====+
  
->4.1Export the microblaze project by going to **File->Export->Export Hardware**Click the check box to Include the bitstreamand export it local to project. This will create a .sdk folder in your project directory. Afterwards, click **File->Launch SDK**. Both the exported location and workspace should be left as <Local to Project>. Click "OK" to launch Xilinx SDK.+>3Turn on your board and open a serial terminal (such as TeraTerm) on your computer to receive status messagesSetup the serial port to connect to the appropriate port for your boardwith baud rate of 115200Then return to the Github Project Tutorial to finish programming and running the demo.
 > >
->4.2) Skip to step 6. +><WRAP round tip 660px>  
- +===Tip=== 
-==== 5. Open Xilinx SDK and create a workspace ==== +To make sure that you don't miss any startup messages, you can connect your serial terminal to your board before the board is programmedIf the demo is already running, you can restart the demo in SDK to make sure you get these messages. 
- +</WRAP>
->5.1) Open up Xilinx SDK and create a workspace where your project will be saved.+
 > >
->{{:genesys2:1.jpg?500|}}+>{{:learn:programmable-logic:tutorials:zedboard-dma-audio-demo:zed-tera-dma.png?500|}}
  
-==== 6. Import the SDK files ====+===== Using the Zedboard DMA Audio Demo =====
  
->6.1) In your project Explorer window on the left side, click **File->Import**, then under the general folder, select Existing projects. (Or just click **Import Project** on the main screen). +==== 1. Controls ====
-+
->{{:genesys2:2.jpg?500|}}+
  
->6.2) Navigate to where you saved the downloaded project, select the **sdk** folder, and click OK. In the //Import// window, click Finish to import the system hardware wrapper. +Audio playback and recording are controlled by push buttons as below.
-+
->{{:genesys2:3.jpg?300|}}+
  
->6.3) Import the projects by clicking //Finish//. You can ignore the warnings that may pop up. +^  Button  ^  Function             ^ 
-+^  BTNL    |  play on line out     
->{{:genesys2:4.jpg?500|}} +^  BTNU    |  record from mic in   
- + BTND    |  play on hph out      
-==== 7. Program the FPGA ==== +^  BTNR    |  record from line in  |
- +
->7.1) Click **Xilinx Tools->Program FPGA** and click **Program**. Xilinx SDK will then program the FPGA with a bit file. +
-+
->{{:genesys2:5.jpg?500|}} +
- +
-==== 8. Program the Zynq processor ==== +
- +
->8.1) Right click on the **demo** folder and click  **Run as->Launch on Hardware(GDB)**. The microblaze program will be programmed onto your Zedboard. +
-+
->{{:genesys2:6.jpg?500|}} +
- +
-===== Running the Zedboard DMA Audio Demo ===== +
- +
-This portion will help you run the demo and observe all its features.+
  
-==== 1. Recording from an input ====+==== 2. Recording from an input ====
  
-To record from the microphone input, press btnu. To record from the line input, press btnr. Once the recording is activated, the message "Start Recording..." will be sent over UART and the demo will record 5 seconds of audio. If any buttons are pressed during the recording, the message "Still Recording..." will be sent over UART.+To record from the microphone input, press **BTNU**. To record from the line input, press **BTNR**. Once the recording is activated, the message "Start Recording..." will be sent over UART and the demo will record 5 seconds of audio. If any buttons are pressed during the recording, the message "Still Recording..." will be sent over UART.
  
-==== 2. Playing to an output ====+==== 3. Playing to an output ====
  
-To play to the microphone input, press btnd. To play to the line output, press btnl. Once the playback is activated,  the message "Start Playback..." will be sent over UART and the demo will play 5 seconds of audio. If any buttons are pressed during the playback, the message "Still Playing..." will be sent over UART.+To play to the headphone output, press **BTND**. To play to the line out, press **BTNL**. Once the playback is activated, the message "Start Playback..." will be sent over UART and the demo will play 5 seconds of audio. If any buttons are pressed during the playback, the message "Still Playing..." will be sent over UART.
  
-{{tag>learn programmable-logic tutorial Zedboard}}+{{tag>learn programmable-logic project zedboard}}