The most recent version of this page is a draft.DiffThis version is outdated by a newer approved version.DiffThis version (22 Aug 2012 16:04) was approved by Andrei Cozma.The Previously approved version (08 Jun 2012 16:56) is available.Diff

This is an old revision of the document!

AD7193 Pmod Xilinx FPGA Reference Design


The AD7193 is a low noise, complete analog front end for high precision measurement applications. It contains a low noise, 24-bit sigma-delta (Σ-Δ) analog-to-digital converter (ADC). The on-chip low noise gain stage means that signals of small amplitude can interface directly to the ADC. The device can be configured to have four differential inputs or eight pseudo differential inputs. The on-chip channel sequencer allows several channels to be enabled simultaneously, and the AD7193 sequentially converts on each enabled channel, simplifying communication with the part. The on-chip 4.92 MHz clock can be used as the clock source to the ADC or, alternatively, an external clock or crystal can be used. The output data rate from the part can be varied from 4.7 Hz to 4.8 kHz.

HW Platform(s):

System: Microblaze, AXI, UART

Quick Start Guide

The bit file provided in the project *.zip file combines the FPGA bit file and the SDK elf files. It may be used for a quick check on the system. All you need is the hardware and a PC running a UART terminal and the programmer (IMPACT).

Required Hardware

Required Software

  • Xilinx ISE 13.2 (Programmer (IMPACT) is sufficient for the demo and is available on Webpack).
  • A UART terminal (Tera Term/Hyperterminal), Baud rate 115200 for the Avnet LX-9 Microboard or 9600 for the Digilent Nexys™3 Board.

Running Demo (SDK) Program

If you are not familiar with LX9 and/or Xilix tools, please visit for details.
If you are not familiar with Nexys™3 and/or Xilix tools, please visit,400,897&Prod=NEXYS3 for details.

Extract the project from the archive file (AD7193_<board_name>.zip) to the location you desire.

Avnet LX9 MicroBoard Setup

To begin, connect the PmodAD5 to J5 connector of LX9 board, pins 1 to 6 (see image below). You can use an extension cable for ease of use. Connect the USB cables from the PC to the board.

PmodAD5 and LX-9

Digilent Nexys™3 Spartan-6 FPGA Board

To begin, connect the PmodAD5 to JA connector of Nexys™3 board, pins JA1 to JA6 (see image below). You can use an extension cable for ease of use. Connect the USB cables from the PC to the board.

PmodAD5 and Nexys™3

FPGA Configuration

Start IMPACT, and double click “Boundary Scan”. Right click and select Initialize Chain. The program should recognize the Spartan 6 device (see screenshot below). Start a UART terminal (set to appropiate baud rate) and then program the device using the bit file provided in the project *.zip archive, located in the “sw” folder (../ad7193/sw/AD7193.bit).

Programming FPGA in IMPACT

If programming was successful, you should be seeing messages appear on the terminal window as shown in the figures below. After programming the AD7193, the program will display the values of all internal registers. After that, it will go through 3 Demo Modes: Read Voltage Values referenced to AINCOM, Read Differential Voltage Values and Read Die Temperature Value.

UART messeges UART messeges UART messeges UART messeges

Using the reference design

Functional Description

The reference design is a custom SPI Interface, containing CS, SCLK, MISO, MOSI, but also a GPIO to read the RDY status on the MISO line. The information is displayed on UART.

The hardware SPI access allows sending and receiving data from the AD7193, programming its internal registers in order to decide which channels should be converted corresponding to AINCOM or its own differential pair, what GAIN, sampling frequency, etc.

  • Connecting the PmodAD5 to the boards using an extension cable provides ease of use.
  • UART must be set to 115200 Baud Rate for the Avnet LX-9 Microboard or 9600 Baud Rate for the Digilent Nexys™3 Board.
  • Reference voltage is 2.5V
  • If using Xilinx Software Development Kit integrated Console as a Hyperterminal clinet, please uncomment all the commented getchar(); in main.c, because the Console sees [Enter] as 2 consecutive keypresses, so 2 getchar(); are required. If using Tera Term or other similar software, do not modify anything.


More information

resources/fpga/xilinx/pmod/ad7193.1345640331.txt.gz · Last modified: 22 Aug 2012 14:58 by Alexandru.Tofan