Differences

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

Link to this comparison view

Next revision
Previous revision
basys3:xadcdemo [2015/03/02 00:44] – created Sam Lowebasys3:xadcdemo [2022/10/04 11:38] (current) – external edit 127.0.0.1
Line 1: Line 1:
-====== Basys3 ====== 
  
-{{ :basys3_overview.png?nolink |}}+====== Basys3 XADC Demo ====== 
 + 
 +{{:basys3:xadc4.jpg?500|}} 
 + 
 +===== Overview ===== 
 +==== Features Used ==== 
 + 
 +|                                    ^ Not Used  ^ Used  ^ 
 +^ 16 User Switches                   |           |  X    | 
 +^ 16 User LEDs                       |           |  X    | 
 +^ 5 User Push Buttons                |  X        |       | 
 +^ 4-digit 7-Segment Display          |           |  X    | 
 +^ 4 Pmod Connectors                  |  X        |       | 
 +^ XADC Analog Input                  |  X        |       | 
 +^ 12-bit VGA Output                  |  X        |       | 
 +^ USB-UART Bridge                    |  X        |       | 
 +^ Serial Flash for Application Data  |  X        |       | 
 +^ USB HID Host With Mouse            |  X        |       | 
 +^ USB HID Host With Keyboard         |  X        |       | 
 + 
 + 
 +==== Description ==== 
 + 
 +This simple XADC Demo project demonstrates a simple usage of the Basys3's  
 +XADC port capability. The behavior is as follows: 
 +  
 +  * The 16 User LEDs increment from right to left as the voltage difference on the selected XADC pins gets larger. 
 +  * The two seven segment displays show the voltage difference on the AD6, AD7, AD14, AD15 pins in volts. 
 +  * sw0 and sw1 select which channel to read from  
 + 
 + 
 +==== A Note About The XADC Port ==== 
 + 
 +On the Basys3, the XADC Pmod connector houses 4 differential analog pairs. The corresponding XADC channels are 6, 7, 14, and 15. Below is a picture of the pinout of the Pmod Header. 
 + 
 +{{:basys3:xadcpinout1.png?300|}} 
 + 
 +The differential pairs are grouped by columns. Looking at the number above, 1 corresponds to XA1_P and XA1_N, column 2 routes to XA2_P and XA2_N, 3 routes to XA3_P and XA3_N, and 4 routes to XA4_P and XA4_N. Below is from the Basys3 schematics that will show the internal connections of these signals. 
 + 
 +{{:basys3:basys3xadcinternal.png?400|}} 
 + 
 +From the schematic we can see XA1 is connected to XADC channel 6, XA2 is connected to XADC channel 14, XA3 is connected to XADC channel 7, and XA4 is connected to XADC channel 15.  
 + 
 +------- 
 + 
 +===== Prerequisites ===== 
 + 
 +===Skills=== 
 +  * **Basic familiarity with Vivado** 
 +    *  //This experience can be found by walking through our "Getting Started with Vivado" guide// 
 + 
 +===Hardware=== 
 +  * **Basys3 FPGA board** 
 +  * **Micro-USB cable**  
 +  * **Wires and a voltage to measure** 
 + 
 +===Software=== 
 +  * **Vivado Design Suite 2015.X**  
 +    * //Newer/older versions can be used, but the procedure may vary slightly//
  
 ----- -----
-===== Introduction ===== 
  
-The Basys3 is an entry-level FPGA board designed exclusively for the Vivado Design Suite, featuring Xilinx Artix 7-FPGA architecture. Basys3 is the newest addition to the popular Basys line of starter FPGA boards. Basys3 includes the standard features found on all Basys boards: complete ready-to-use hardware, a large collection of on-board I/O devices, all required FPGA support circuits, and a free version of development tools... all at a student-level price point. +===== Downloads ===== 
 + 
 +Basys 3 Support Repository -- [[https://github.com/Digilent/Basys3/archive/master.zip|ZIP]] [[https://github.com/Digilent/Basys3|GIT Repo]] 
 + 
 +------ 
 +===== How to...  ===== 
 + 
 +==== 1. Generate the Project ==== 
 + 
 +>1.1) Download the repository linked in the download section and place it in the location of your choosing. 
  
-For more information, check out the walk-around below.+>1.2) Generate the **XADC** project in the Projects folder by following this guide before continuing: [[vivado:github|How to Generate a Project from Digilent's Github]]
  
-{{ http://www.youtube.com/v/jE5Y349WD1E?.swf?560×315 }}+==== 2. Build the Project ====
  
----- +>2.1) Click **Generate Bitstream** on the left hand menu towards the bottom. Vivado will run through both Run Synthesis and Run Implementation before it generates the bitstream automatically.  
-=====Revision History =====+> 
 +>Note: If you want, you can click each step by itself in the order of **Run Synthesis**, **Run Implementation** and then **Generate Bitstream**. 
 +> 
 +>{{:basys3:buildflow.png?600|}}
  
-The Basys3 is currently on its initial release revision, Revision C. The revision of a particular board is indicated on the bottom side of the PCB next to the unique 6 Digit board number that begins with "D". +==== 3. Program the Board ====
  
-{{ :basys3_-revision_history.png?nolink&300 |}}+>3.1) Once you have generated your bit file, Click on the hardware manager and connect to your board by choosing the local server option. 
 +> 
 +>{{:basys3:device_connected.png?600|}}
  
----- +>3.2) Click program to load the project onto your Basys3.
-===== Documentation =====+
  
-  * **Schematic** -- [[http://www.digilentinc.com/Data/Products/BASYS3/basys_3_sch_public.pdf|PDF]] +==== 4. Run the Project ====
-    * PDF Schematic of the PCB generated by Altium +
-  * **Reference Manual** -- [[refmanual|Wiki]] [[http://www.digilentinc.com/Data/Products/BASYS3/Basys3_rm.pdf|PDF]] +
-    * Technical description of the Basys3 and all of its features. The Wiki may contain more up-to-date information than the PDF. +
-  * **Getting Started Guide** -- [[gsg|Wiki]] +
-    * Great starting point for new Basys3 owners. Includes the kit contents, instructions for running the out of box demo, and instructions for building a simple design.+
  
-===== Design Resources =====+This portion will help you run the demo and observe all its features.
  
-  * **Master XDC** -- [[http://www.digilentinc.com/Data/Products/BASYS3/basys3_master.zip|ZIP]] +>4.1) Applying a voltage to the XADC port 
-    * This package contains the master XDC that defines the pin constraints for every device on the Basys3.+> 
 +>For this demo, the AD6, 7, 14 and 15  pins are used on the JXADC header. We hooked up a signal generator to our pins. All of the other pins were grounded to avoid coupling. 
 +> 
 +>{{:basys3:xadc3.jpg?300|}}{{:basys3:xadc4.jpg?300|}}
  
-===== Reference Projects ===== 
  
-  * **General I/O Demo** -- [[gpiodemo|Wiki]] +>4.2) Seven Segment Display and LEDs 
-    * Basic demo that uses the onboard switches, buttons, leds, 7-segment display, UART, a VGA monitor and a USB-HID mouse. This project is pre-loaded into SPI flash when the board is shipped. +> 
-  * **Abacus Demo** -- [[abacus|Wiki]]  +>The 7-Segment display shows the current voltage across the selected xadc pins. The LEDs turn on from right to left as the input voltage increases. 
-    * Implements several arithmetic operations using the switches as inputs and displaying the result on the 7-segment display+> 
 +>{{:basys3:xadc1.jpg?300|}}{{:basys3:xadc2.jpg?300|}}
  
----- +>4.3) Selecting a channel 
-===== FAQ =====+> 
 +>To display a different channel on the display and LEDs, change sw0 and sw1 to the desired channel.
  
-This list will be populated as common questions are identified on the [[http://forum.digilentinc.com|Digilent Forum]]. 
  
-Currently no entries.+  
  
----- 
-===== External Links ===== 
  
-  * [[http://www.xilinx.com/support/university/workshops.html|Xilinx Vivado Workshop materials]] 
-  * [[http://forum.digilentinc.com|Digilent Forum]]