Design of ADS1256 Chip Controller Based on FPGA

Analog-to-digital conversion is the process of transforming an analog signal into a discrete digital representation that closely approximates the original. This involves quantizing the signal at the bit level using digital coding. The quantization process is typically implemented in hardware through an ADC (Analog-to-Digital Converter) chip. Depending on the system requirements, the control of this chip can be achieved using various methods such as DSP (Digital Signal Processor), ASIC (Application-Specific Integrated Circuit), or FPGA (Field-Programmable Gate Array). Among these, the FPGA approach is particularly well-suited for applications requiring high-speed programmability and flexibility. In this design, the Xilinx Spartan3E FPGA is used to manage and execute the analog-to-digital conversion function of the TI ADS1256 chip.

ADS1256 Chip Overview

The ADS1256 is a high-speed, low-noise 24-bit analog-to-digital converter designed for precise signal measurement. It features a built-in buffer and programmable gain amplifier to minimize noise and enhance signal accuracy. The device supports a sampling rate of up to 30 kSps, making it suitable for a wide range of industrial and medical applications. The ADS1256 uses an SPI-compatible 5V serial interface for communication, with an input voltage range of 5V and a digital output voltage between 1.8V and 3.6V. Its power consumption is relatively low, operating at 38mW in normal mode and just 0.4mW in standby mode.

System Design and Interface

The control system implemented using the FPGA includes both input and output interfaces, as shown in Figure 3. One end connects to the ADS1256 chip, while the other end processes the digital data from the ADC and integrates it with other components as required by the system. This allows for seamless integration of high-resolution analog data into larger processing systems.

Design of ADS1256 Chip Controller Based on FPGA

Input and Output Interfaces Inputs:

(1) CLK: An external 20MHz clock signal is connected to the FPGA to drive the main control unit;

(2) ADC_DRDY_N: A ready signal from the ADS1256, connected to the /DRDY pin, indicating when the conversion is complete;

(3) ADC_SDIN: SPI data output from the FPGA, used to configure the ADS1256 registers;

(4) ADC_CHNL_ID (1:0): Selects the input channel, connected to D0 and D1 of the ADS1256.

Outputs:

(1) ADC_CS: Chip select signal for the ADS1256, connected to the /CS pin;

(2) ADC_DATA (23:0): Parallel output for the 24-bit digital data;

(3) ADC_D_RDY: Indicates that the ADC_DATA is valid;

(4) ADC_SCLK: SPI clock divided from the main clock, connected to the SCLK pin of the ADS1256;

(5) ADC_SDOUT: SPI data input from the ADS1256, connected to the FPGA’s input.

Function Implementation

The overall system design includes several key modules: the clock generation module “clk_gen” divides the 20MHz system clock to produce a 2MHz clock and a 4MHz SPI clock. The delay module “delay_n” ensures stable operation by waiting for the power supply to stabilize before starting the ADC. The initialization module “adc_initial” configures the ADS1256 via SPI. Finally, the ADC control module “adc_xchange” manages the timing, sends control words, and reads the converted data. These modules work together to ensure accurate and reliable ADC performance.

The RTL structure of the ADS1256 controller implemented on the FPGA is shown below:

Design of ADS1256 Chip Controller Based on FPGA

Use of SRL16E in the Design

The design utilizes the Xilinx primitive SRL16E, which functions as a 16-bit shift register for clock control. The number of output bits can be calculated using the formula: Number of data output bits = 8*A3 + 4*A2 + 2*A1 + 1*A0 + 1. For example, if the system uses a 20MHz clock and needs a 4MHz SPI clock, setting A3=0, A2=1, A1=0, A0=0 gives 5, which results in a division factor of 5. This method eliminates the need for a PLL, saving valuable FPGA resources.

Each LUT in the FPGA can act as a 16-bit shift register, enabling efficient implementation of the SRL16E. By designing a recursive delay line (RDL) using this feature and combining it with time-division multiplexing techniques, the system achieves higher sampling rates and throughput without significantly increasing resource usage. This optimization reduces the resource consumption to one-third of the original design.

As shown in the figure below, the FPGA resource usage after optimization is significantly reduced. This makes the design more efficient and scalable for future applications.

Design of ADS1256 Chip Controller Based on FPGA
FPGA resource usage.

Alloy Products

Alloy Products,Tantalum Alloy Wires,Aluminum Alloy Products,Alloy Custom Products

Shaanxi Xinlong Metal Electro-mechanical Co., Ltd. , https://www.cnxlalloys.com