Differences

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

Link to this comparison view

Next revision
Previous revision
learn:programmable-logic:tutorials:arty-oled-acl:start [2017/05/22 11:16] – created Cristian Fatulearn:programmable-logic:tutorials:arty-oled-acl:start [2022/10/04 11:38] (current) – external edit 127.0.0.1
Line 1: Line 1:
 ====== Arty OLED ACL Demo ====== ====== Arty OLED ACL Demo ======
 +{{:learn:programmable-logic:tutorials:arty-oled-acl:arty_oled_acl_overall.png?400|}}
  
 +<WRAP round important 660px>
 +=== Important! ===
 +FIXME: Download links are broken.
 +</WRAP>
  
-{{:learn:programmable-logic:tutorials:arty-z7:hdmi_in.png?500|}} 
 ===== Overview ===== ===== Overview =====
 +This project demonstrates the use of the Arty board with expansion modules: Basic IO Shield and PmodACL. It is a simple Microblaze application. 
 ==== Features Used ==== ==== Features Used ====
  
-|                                    ^ Not Used  ^ Used  ^ +|                                            ^ Not Used  ^ Used  ^ 
-^ 2 user switches                    |    X     |       | +^ 4 user switches (Arty)                     |    X     |       | 
-^ 2 user LEDs                        |    X     |       | +^ 8 user LEDs (Arty)                         |    X     |       | 
-^ 2 user RGB LEDs                    |    X     |       | +^ 4 user push buttons  (Arty)                |    X     |       | 
-^ 4 user push buttons                |    X     |       | +^ USB-UART Bridge                            |    X     |       | 
-^ USB-UART Bridge                    |          |   X   | +^ 10/100/1000 Ethernet PHY                   |    X     |       | 
-^ Micro SD card connector            |    X     |       | +^ 512MiB 1050Mb/s DDR3 Memory                |    X     |       | 
-^ HDMI Sink and HDMI Source          |          |   X   | +^ Quad-SPI Flash                             |    X     |       | 
-^ PWM mono audio out w/ 3.5mm jack   |    X     |       | +^ USB HID Host                               |    X     |       | 
-^ 10/100/1000 Ethernet PHY           |    X     |       | +^ Pmod Connector (JB)                        |          |   X   | 
-^ 512MiB 1050Mb/s DDR3 Memory        |          |   X   | +^ Arduino/chipKIT Shield connector           |          |   X   | 
-^ Quad-SPI Flash                     |    X     |       | +^ 4 user switches (Basic IO Shield)          |    X     |       | 
-^ Two Pmod ports                     |    X     |       | +^ 8 user LEDs (Basic IO Sheild)              |    X     |       | 
-^ chipKIT connector for XADC signals |    X     |       | +^ 4 user push buttons (Basic IO Shield)      |    X     |       | 
-^ USB HID Host                       |    X     |       |+^ Analog potentiometer (Basic IO Shield)     |    X     |       | 
 +^ Screw terminal connectors (Basic IO Shield)|    X     |       | 
 +^ OLED display (Basic IO Shield)             |          |   X   |
  
  
 ==== Description ==== ==== Description ====
  
-The Arty Z7 HDMI In project demonstrates the usage of the HDMI in and out ports on the Arty Z7 board. There are two projects, one for each variant of the board: Arty Z7-10 and Arty Z7-20.+This project demonstrates the use of the Arty board with expansion modules: Basic IO Shield and PmodACL. The project is implemented as a simple Microblaze application.  
 The behavior is as follows: The behavior is as follows:
    
-  * Video data streams in through the HDMI in port and out through the HDMI out port. +  * Periodically, the acceleration on the 3 axes is read from PmodACL. The PmodACL is accessed over SPI and provides acceleration reading as 10 bits raw values.  
-  * A UART interface is available to configure what is output through HDMI. +  * The raw values read from PmodACL are converted in values expressed in terms of g, considering that the 10 bits values correspond to the used +/- 2g acceleration range. 
-  * There are 3 display frame buffers that the user can choose to display or write to.+  * The values in terms of g are formatted and displayed on the OLED display. The OLED display is accessed over SPI. 
 + 
 +The sources folder contains two separate folders containing functions for ACL and OLED. These functions can be used in any project using these devices.
  
 ------- -------
Line 37: Line 46:
  
 ===Hardware=== ===Hardware===
-  * **Arty Z7 board** +  * **Arty board** 
-  * **Micro-USB cable** +  * **Basic IO Shield** 
-  * **HDMI cable** +  * **PmodACL** 
-  * **HDMI source** +
-  * **HDMI monitor**+
  
 ===Software=== ===Software===
Line 50: Line 58:
  
 ----- -----
 +
 +===== Project setup =====
 +The picture from the top of this document shows the overall setup of this project.
 +
 +1. Connect the PmodACL in the JB Pmod connector of Arty.
 +
 +2. Connect the Basic IO Shield in the Arduino/chipKIT Shield connector of Arty.
 +
 +3. Connect the USB cable in the PC and in the micro-USB connector J10 of Arty.
 +
 +
 ===== Downloads ===== ===== Downloads =====
-Arty Z7-10 Hdmi In Project Repository -- [[https://github.com/Digilent/Arty-Z7-10-hdmi-in/releases/download/v2016.4-2/Arty-Z7-10-hdmi-in-2016.4-2.zip|ZIP]] [[https://github.com/Digilent/Arty-Z7-10-hdmi-in.git|Git Repo]] +Arty Oled ACL Project Repository -- [[https://github.com/Digilent/Arty-Oled-ACL/releases/download/v2016.4-1/Arty-Oled-ACL-2016.4-1.zip|ZIP]] [[https://github.com/Digilent/Arty-Oled-ACL.git|Git Repo]]
-------- +
-Arty Z7-20 Hdmi In Project Repository -- [[https://github.com/Digilent/Arty-Z7-20-hdmi-in/releases/download/v2016.4-2/Arty-Z7-20-hdmi-in-2016.4-2.zip|ZIP]] [[https://github.com/Digilent/Arty-Z7-20-hdmi-in.git|Git Repo]] +
--------+
 ===== How to..===== ===== How to..=====
  
Line 61: Line 77:
 >1.1) Download the project linked in the download section and unzip it in the location of your choosing.  >1.1) Download the project linked in the download section and unzip it in the location of your choosing. 
  
->1.2) Generate the **hdmi_in** project in the Projects folder by following this guide before continuing: [[vivado:github|How to Generate a Project from Digilent's Github]]+>1.2) Generate the **Arty Oled ACL** project in the Projects folder by following this guide before continuing: [[vivado:github|How to Generate a Project from Digilent's Github]]
 ==== 2. Build the Project ==== ==== 2. Build the Project ====
  
Line 67: Line 83:
 > >
 >Note: If you want, you can click each step by itself in the order of **Run Synthesis**, **Run Implementation** and then **Generate Bitstream**. >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:arty-oled-acl:arty_buildflow.png?600|}} 
->{{:basys3:buildflow.png?600|}}+
 ==== 3. Export to SDK ==== ==== 3. Export to SDK ====
  
->3.1) Export the microblaze project by going to **File>Export>Export Hardware**. Click the check box to **Include the bitstream**, and export it local to project. This will create a .sdk folder in your project directory. Afterwards, click **File>Launch SDK** to launch Xilinx SDK. +>3.1) Export the Microblaze project by going to **File>Export>Export Hardware**.  
-> +>{{:learn:programmable-logic:tutorials:arty-oled-acl:arty_exportsdk.png?600|}} 
->{{:zybo:exporthw.jpg?500|}}+>Click the check box to Include the bitstream, and Select <Local to Project> for "Export to" location. 
 +>{{:learn:programmable-logic:tutorials:arty-oled-acl:arty_exportsdkdlg.png?200|}} 
 +>This will export the needed files into the sdk folder in your project directory.  
 + 
 +>3.2) Launch SDK.  
 +>Click **File>Launch SDK** to launch Xilinx SDK. Select <Local to Project> for "Exported location" and "Workspace". 
 +>{{:learn:programmable-logic:tutorials:arty-oled-acl:arty_launchsdkdlg.png?200|}} 
 + 
 ==== 4. Import the SDK files ==== ==== 4. Import the SDK files ====
  
->4.1) In your project Explorer window on the left side, click **File>Import** then expand the General tab and click **Existing Projects into Workspace**. Navigate to the Projects/hdmi_out folder, select the **sdk** folder, and click OK. In the //Import// window, click Finish to import the SDK project.+>4.1) In Xilinx SDK, select **File>Import** menu option, then expand the General node and click **Existing Projects into Workspace**. Select the **sdk** folder from within the project folder, and click OK. In the //Import// window be sure to have the Oled_Acl and Oled_Acl_bsp projects selected, click Finish to import the SDK project.
 > >
->{{:learn:programmable-logic:tutorials:arty-z7-hdmi-demo:import_hdmi_out1.png?300|}}{{:learn:programmable-logic:tutorials:arty-z7:import_hdmi_in.png?300|}}+>{{:learn:programmable-logic:tutorials:arty-z7-hdmi-demo:import_hdmi_out1.png?300|}}{{:learn:programmable-logic:tutorials:arty-oled-acl:arty_sdkimport.png?300|}} 
 + 
 +After this you should be able to see the Oled_Acl project in the Project explorer panel.
 ==== 5. Program the FPGA ==== ==== 5. Program the FPGA ====
  
 >5.1) Click **Xilinx Tools>Program FPGA** and click **Program**. Xilinx SDK will then program the FPGA with a microblaze bit file. >5.1) Click **Xilinx Tools>Program FPGA** and click **Program**. Xilinx SDK will then program the FPGA with a microblaze bit file.
 > >
->{{:learn:programmable-logic:tutorials:programfpgahdmi_in.png?500|}} +>{{:learn:programmable-logic:tutorials:arty-oled-acl:arty_sdkprogramfpga.png?600| 
 +}}
 ==== 6. Program the Microblaze Processor ==== ==== 6. Program the Microblaze Processor ====
  
->6.1) Click on the **hdmi_in** folder and click the Green **Run System Debugger on Local videodemo.elf** button. The microblaze program will be programmed onto your Arty Z7 board. +>6.1) Click on the **Oled_Acl** project and click the Green arrow button **Run As / Launch on Hardware (System Debugger)**. The microblaze program will be programmed onto your Arty board. 
-> +>{{:learn:programmable-logic:tutorials:arty-oled-acl:arty_sdkprogrammicroblaze.png?600|}}
-{{:learn:programmable-logic:tutorials:program_hdmi_in.png?600|}} +
-==== 7. Run the Project ====+
  
-This portion will help you run the demo and observe all its features. 
- 
->7.1) Setup 
-> 
->Plug one end of the HDMI cable into a video source and the other into the ZYBO HDMI port. Plug one end of your other HDMI cable into the HDMI Out port of the Arty Z7 and the other into your HDMI monitor. 
-> 
->{{:learn:programmable-logic:tutorials:arty-z7:hdmi_in_setup.jpg?500|}} 
- 
->7.2) Setting up UART communications 
-> 
->To see the UART communication channel, open a terminal program on your computer set to 112500 baud rate, 8 data bits, no parity bit and 1 stop bit. On startup, the Arty Z7 will display the HDMI settings menu, shown below. 
-> 
->{{:learn:programmable-logic:tutorials:arty-z7:hdmi_in.png?500|}} 
- 
->7.3) HDMI display options 
-> 
->  1 - Changes the resolution of the HDMI output to the monitor. 
->  2 - Changes the frame buffer to display on the HDMI monitor. 
->  3/4 - Stores a test pattern in the chosen Video Frame buffer - color bar or blended. 
->{{:learn:programmable-logic:tutorials:arty-z7:hdmi_incolorbar.jpg?500|}}{{:learn:programmable-logic:tutorials:arty-z7:hdmi_inblend.jpg?500|}} 
->  5 - Starts/Stops streaming video data from HDMI to the chosen video frame buffer. 
->  6 - Changes the video buffer that HDMI data is streamed into. 
->  7 - Inverts and stores the current video frame into the next video frame buffer and displays it. 
->{{:learn:programmable-logic:tutorials:arty-z7:video_in.jpg?500|}}{{:learn:programmable-logic:tutorials:arty-z7:20170224_120103.jpg?500|}} 
->  8 - Scales the current video frame to the display resolution and stores it into the next video frame buffer, then displays it. 
 > >
-{{tag>learn programmable-logic project arty-z7}}+{{tag>learn programmable-logic arty}}