Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revision | |||
programmable-logic:usb104a7:zmodadc [2022/09/12 19:34] – changed forum.digilentinc.com to forum.digilent.com Jeffrey | programmable-logic:usb104a7:zmodadc [2023/03/07 17:58] (current) – [Overview] Martha | ||
---|---|---|---|
Line 1: | Line 1: | ||
+ | ====== USB104 A7 Zmod Scope 1410 Demo ====== | ||
+ | {{ : | ||
+ | ===== Overview ===== | ||
+ | This project demonstrates the implementation of a [[https:// | ||
+ | ---- | ||
+ | ===== Description ===== | ||
+ | |||
+ | The simplified block diagram of the system implemented for this demo is shown below: | ||
+ | {{ : | ||
+ | |||
+ | A console application is used to communicate with the USB104 A7. A typical application would be to arm the Zmod Scope 1410 with a specified trigger and store the resulting waveform to a file. The process of an arm operation on channel 1 is as follows: | ||
+ | |||
+ | 1. Run application and program device. | ||
+ | |||
+ | 2. Send a trigger level command to device using the application. "level 1.0" | ||
+ | * Triggerlevel opcode (4) or'ed with channel 1 (1<< | ||
+ | |||
+ | 3. Send an arm command to device along with a file name to save to. "arm waveform.csv" | ||
+ | * Arm opcode (1) or'ed with channel 1 (1<< | ||
+ | * The application then requests a buffer of default length 0x3FFF from the DPTI device. It will wait until data is received before continuing. | ||
+ | |||
+ | 4. When the trigger occurs data is acquired from the Zmod Scope 1410 and sent to the channelbuffer through DMA. | ||
+ | |||
+ | 5. Channelbuffer is then sent to the PC application over DPTI and saved to the specified CSV file. | ||
+ | |||
+ | The IPs instantiated in the design and their functionality are described below: | ||
+ | * ZmodADC1410 Low Level Controller - initializes the Zmod Scope 1410 hardware and formats the input data according to the AD9648 ADC requirements. | ||
+ | * AXI_ZmodADC - An AXI interface to communicate with the ZmodADC Low Level Controller from a software environment. Sends data to the ZmodADC through DMA. | ||
+ | * AXI_DPTI - Initializes the DPTI interface. Sends and receives data from the DPTI interface through DMA. | ||
+ | * AXI_IIC - An I2C interface to communicate with the ZmodADC hardware. | ||
+ | * AXI_UARTLITE - A UART interface used to send debugging messages to a COM port on the PC. | ||
+ | |||
+ | ===== Inventory===== | ||
+ | |||
+ | ===Hardware=== | ||
+ | * [[start|USB104 A7]] | ||
+ | * Including a **USB A cable** and **5V Power Supply** | ||
+ | * NOTE: SW1 DDR voltage set to 1.5V | ||
+ | * [[https:// | ||
+ | * [[https:// | ||
+ | * Including a **Micro USB cable** | ||
+ | * [[https:// | ||
+ | |||
+ | ===Software=== | ||
+ | * **Vivado Design Suite 2019.1** with **Digilent Board Support Files** installed | ||
+ | * Follow the [[vivado: | ||
+ | * [[software/ | ||
+ | * [[software/ | ||
+ | * [[https:// | ||
+ | * Used to read debug messages from the FPGA. Follow the [[programmable-logic: | ||
+ | |||
+ | ===Skills=== | ||
+ | * **Basic familiarity with Vivado** | ||
+ | * //This experience can be found by walking through our " | ||
+ | * **Basic familiarity with Digilent Waveforms** | ||
+ | |||
+ | ===== Downloads ===== | ||
+ | |Vivado Project Repository |[[https:// | ||
+ | |Vivado Project Repository |[[https:// | ||
+ | |||
+ | ------ | ||
+ | ===== Demo Setup ===== | ||
+ | |||
+ | ==== Hardware Setup ==== | ||
+ | |||
+ | 1. Connect the Analog Discovery 2 board to the host computer using a MicroUSB cable. | ||
+ | |||
+ | 2. Connect the Zmod Scope 1410 to the USB104 A7 Syzygy port. | ||
+ | |||
+ | 3. Connect the 5V power supply to the USB104A7. Plug the USB104 A7 into the PC using the USB A cable. | ||
+ | |||
+ | 4. Screw the SMA to alligator clip cable into the Zmod Scope 1410, channel 1. | ||
+ | |||
+ | 5. Connect the AD2 to the alligator clips as follows: | ||
+ | * W1 to channel 1 red clip. | ||
+ | * GND to channel 1 black clip. | ||
+ | |||
+ | ==== Software Setup ==== | ||
+ | |||
+ | === Programming the FPGA === | ||
+ | |||
+ | 1. Download the release from the git repo [[https:// | ||
+ | |||
+ | NOTE: A precompiled bit+elf bit file has been included within the release/ | ||
+ | |||
+ | 2. Launch Xilinx SDK. Select the <release directory>/ | ||
+ | |||
+ | 3. Click **File> | ||
+ | |||
+ | 4. Select **USB104A7_ZmodADC_Demo**, | ||
+ | |||
+ | 5. Program the FPGA by clicking **Xilinx> | ||
+ | |||
+ | 6. To receive debug messages, open Tera Term and connect to the COM port associated with the USB104A7. Set the baud rate to 115200. | ||
+ | |||
+ | 7. Program the Microblaze processor with the elf file. In the Project Explorer view, select the **USB104A7_ZmodADC_Demo** project. Click **Run> | ||
+ | |||
+ | 8. Click **Launch on Hardware (System Debugger)** and then click **OK**. | ||
+ | |||
+ | === Generating a waveform === | ||
+ | |||
+ | 1. Open Digilent Waveforms and select the Wavegen. | ||
+ | |||
+ | 2. Select the type of waveform to generate and click **Run**. | ||
+ | |||
+ | ---- | ||
+ | ===== Operating the Demo ===== | ||
+ | |||
+ | 1. Run <release directory>/ | ||
+ | |||
+ | 2. Type "level 0.5" to set the trigger level to 0.5V. The Tera Term window should show debug information like in the picture below. | ||
+ | {{ : | ||
+ | |||
+ | 3. Type "arm waveform.csv" | ||
+ | |||
+ | 4. When the trigger occurs, the device will send the data to the PC and it will be saved to the waveform.csv file. | ||
+ | {{ : | ||
+ | |||
+ | ---- | ||
+ | ===== Final Notes ===== | ||
+ | |||
+ | For more guides and example projects for your USB104 A7, please visit its [[programmable-logic: | ||
+ | |||
+ | For more information about how to use the other Digilent products featured in this demo, please visit their respective Resource Centers: \\ [[test-and-measurement: | ||
+ | |||
+ | For technical support, please visit the [[https:// | ||
+ | |||
+ | {{tag> |