====== Cmod A7 GPIO Demo ====== {{:cmod_a7:cmod_a7-obl-600.png?300|}} ===== Overview ===== ==== Description ==== This VHDL project demonstrates the basic use of most of the Cmod-A7's general purpose I/O. * The two user LEDs are tied to the two push buttons * The RGB LED is set to smoothly change colors * The UART bridge outputs a beginning message and a status message whenever a button is pressed ==== Features Used ==== | ^ Not Used ^ Used ^ ^ 2 user LEDs | | X | ^ 1 tri-color LEDs | | X | ^ 2 User Push Buttons | | X | ^ 48 GPIO Pins | X | | ^ 1 Pmod port | X | | ^ Pins for XADC signals | X | | ^ USB-UART Bridge | | X | ^ 512 kB SRAM | X | | ------- ===== Prerequisites ===== ===Hardware=== * **Cmod A7 FPGA board** * **Micro-USB cable** ===Software=== * **Vivado Design Suite 2016.4** * //Newer versions can be used, but the procedure may vary slightly// * **Digilent Board Support Files for Vivado** * Follow the [[vivado:boardfiles|Vivado Board Files for Digilent 7-Series FPGA Boards]] guide on how to install Board Support Files for Vivado. ----- ===== Downloads ===== Cmod A7 15T GPIO Project Repository -- [[https://github.com/Digilent/Cmod-A7-15T-GPIO|GIT Repo]] [[https://github.com/Digilent/Cmod-A7-15T-GPIO/releases/download/v2016.4-1/Cmod-A7-15T-GPIO-2016.4-1.zip|ZIP Archive]] Cmod A7 35T GPIO Project Repository -- [[https://github.com/Digilent/Cmod-A7-35T-GPIO|GIT Repo]] [[https://github.com/Digilent/Cmod-A7-35T-GPIO/releases/download/v2016.4-1/Cmod-A7-35T-GPIO-2016.4-1.zip|ZIP Archive]] ------- ===== Download and Launch the Cmod A7 GPIO Demo ===== >1) Follow the [[:learn:programmable-logic:tutorials:github-demos:start|Using Digilent Github Demo Projects]] Tutorial. This is an HDL design project, and as such does not support Vivado SDK, select the tutorial options appropriate for a Vivado-only design. Return to this guide when prompted to check for extra hardware requirements and setup. > > ===Important=== Make sure that between the 15T and 35T versions of the project, you download the version that applies to your Cmod A7. >2) In order to fully use the demo, you will need to connect a serial terminal to your Cmod A7. Plug your board into your computer with a Micro USB cable and make sure the board has power. Then open a serial terminal (such as TeraTerm) on your computer. In the terminal application setup the serial port to connect to the appropriate port for your board, with a baud rate of 9600. Then return to the Github Projects Tutorial to finish programming and running the demo. > >{{:learn:programmable-logic:tutorials:cmod-a7-user-demo:tera-setup.png?300|}} {{:learn:programmable-logic:tutorials:cmod-a7-user-demo:setup.png?300|}} ------- ===== Using the Cmod A7 GPIO Demo ===== ==== 1. LEDs and Buttons ==== >When a button is pressed, the corresponding LED will light up. > >{{:learn:programmable-logic:tutorials:cmod-a7-gpio-demo:gpio7.jpg?200|}}{{:learn:programmable-logic:tutorials:cmod-a7-gpio-demo:gpio8.jpg?200|}} >The RGB LED smoothly transitions between colors. > >{{:learn:programmable-logic:tutorials:cmod-a7-gpio-demo:gpio3.jpg?200|}}{{:learn:programmable-logic:tutorials:cmod-a7-gpio-demo:gpio4.jpg?200|}} ==== 2. UART Messages ==== >Connect a terminal program with the settings 9600 baud rate, 8 bits, one stop bit, and no parity bit. On reset, the board will display "CMOD A7 GPIO/UART DEMO!" > >{{:learn:programmable-logic:tutorials:cmod-a7-gpio-demo:gpio1.jpg?500|}} >Whenever a button is pressed, the message "Button press detected!" is sent over UART. > >{{:learn:programmable-logic:tutorials:cmod-a7-gpio-demo:gpio2.jpg?500|}} {{tag>learn programmable-logic project cmod-a7}}