Giter VIP home page Giter VIP logo

hamid-r-tanhaei / zynq_adc_dma_lwip Goto Github PK

View Code? Open in Web Editor NEW
36.0 1.0 16.0 74.88 MB

Interfacing ZYNQ SoC device with ADC, Transferring data through DMA and LwIP

Batchfile 0.01% Java 0.01% HTML 21.50% SuperCollider 0.12% C 16.98% C++ 1.16% Tcl 0.37% Python 0.01% Makefile 0.07% CMake 0.01% CartoCSS 0.01% Assembly 0.45% Perl 0.01% Verilog 17.50% VHDL 41.66% Pascal 0.01% Stata 0.04% Shell 0.05% Forth 0.01% JavaScript 0.05%
zynq-7000 dma freertos adc lwip z-turn ad9288 ad9577 i2c tcp-ip

zynq_adc_dma_lwip's Introduction

Block diagram
This repository is about Interfacing ZYNQ SoC device to high-speed ADC (AD9288) and implementing a TCP/IP connection between a PC as a host and the ZYNQ device through LwIP in socket mode. An evaluation ZYNQ-based board (Z-Turn) along with a designed hardware consists of two ADC and a clock generator chip have been used. The clocking configuration between the PL section of ZYNQ and the ADCs are implemented in system-synchronous solution. So a common differential clock pulse is applied to both ADCs and the PL. A clock-distributor chip (AD9577) is used to build the desired clock pulse with the frequency of 72MHz. The AD9577 chip is provided by a local oscillator of 24MHz. The configuration of AD9577 chip is done by software codes through I2C connectivity of PS section of the ZYNQ device.

The project has been developed by Vivado and Vitis (ver:2020.1). As shown in block-design the four ADC channels (each ADC has two 8-bit channel) is read and stored in a FIFO memory in the PL section synchronized with ADC clock pulse (72MHz) and the data from the FIFO is read by DMA (Direct Memory Access) IP with internal PL clock from PS (100MHz). The DMA in the PL is controlled by the software (PS) and the data is written to the DDR memory on the board.

Block Design in Vivado: Vivado block design



The software in the PS section is based on freeRTOS which handles the I2C, DMA and LwIP functionalities. In software (PS) the ADC data is sent through LwIP (configured as server in socket mode) to the client application on the host PC. A Java program (developed through NetBeansIDE) running on the host establishes a socket connection as client to the Ethernet of the ZYNQ board and receives the data and monitors the four ADC channels on the graphical panel.

Monitoring ADC data in Java Application (Analog signal 2MHz, Sampling 72MSPS):

Java waveform


Serial console:

serial console


Hardware images:

Hardware Images

Author:

Hamid Reza Tanhaei

zynq_adc_dma_lwip's People

Contributors

hamid-r-tanhaei avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.