Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
76 changes: 76 additions & 0 deletions docs/products/soln-ctr-ideas/adaq2387/index.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
.. _adaq2387:

ADAQ2387x and LTC2387 family SAR ADC Developer Resources
#########################################################

.. attention::

This page is in development, in a deployed pull request. Feedback welcome in
the PR comment section.

Family Overview
================

This page describes various hardware and software resources available for evaluating and developing with certain Analog Devices' single-channel, SPI-interface, successive-approximation (SAR) Analog to Digital Converters.

The evaluation and development boards across these devices use the industry-standard FMC connector, compatible with industry-standard and proprietary carrier (processor/FPGA) boards. The choice depends on the developer's needs; If the development flow involves software and HDL development on standard carrier boards, it is best to use either the Pmod or FMC boards. Review the example projects and their user guides for the various options in order to make the best choice.

Wherever possible, pre-built programming and boot files are provided for the various carrier / eval board combinations. These typically implement an IIO (Industrial Input-Output) server, compatible with a wide array of software tools and language bindings, easing development considerably.

Getting Started
===============

There are several combinations of evaluation and development boards and controller platforms, with different capabilities and associated software and device driver resources. Review the options and choose the one that best suits your needs. In general combinations fall into two categories:

The FMC eval boards can target either the SDP-H1 board or standard development platforms, while the SDP eval boards can only target the SDP-B or SDP-H1 board. The eval boards can interface to legacy evaluation boards and software are geared toward performance evaluation, with Windows-based GUI software that computes typical metrics such as THD, SNR, linearity, etc. These are closed-source, and further development requires moving to other controller boards and software development environments.


The second category of development systems is based on commercially available development platforms running open-source software, firmware, and HDL. Examples for this family of ADCs are shown in :numref:`fig-2387_iio_systems`. These systems are based on the Linux Industrial Input/Output (IIO) framework and are much more flexible, with multiple cross-platform options for both evaluation software and development software.

Check failure on line 28 in docs/products/soln-ctr-ideas/adaq2387/index.rst

View workflow job for this annotation

GitHub Actions / check-doc

vale:Vale.Terms:259 Use 'linux' instead of 'Linux'.

.. _fig-2387_iio_systems:

.. figure:: 2387x_iio_systems_block_diags.png
:align: center
:width: 600px

IIO-Based Development System

Evaluation Boards and Development Platforms
===========================================

FMC (FPGA Mezzanine Card)
-------------------------

This is an industry standard, also known as VITA57. FMC is a widely used standard for both COTS and development carriers and module cards. FMC evaluation boards on this page are supported on the ZedBoard carrier board as well as the ADI proprietary SDP-H1 board. Pre-built example projects for the ZedBoard are provided that implement an IIO server, compatible with ACE, Scopy, and any language supported by the libiio (C, C#, Python, MATLAB, etc.) Important: The SDP-H1 is ADI proprietary, and works in conjunction with ACE software or product-specific evaluation software package. It is not intended as a development platform, and source code is not provided.

Check failure on line 44 in docs/products/soln-ctr-ideas/adaq2387/index.rst

View workflow job for this annotation

GitHub Actions / check-doc

vale:Vale.Terms:436 Use '[Mm]atlab' instead of 'MATLAB'.

Software Resources
==================

Standard Application Software
-----------------------------
The HDL, Linux, and no-OS example projects are typically based on the Linux Industrial Input-Output (IIO) framework. This maximizes flexibility, as the framework is cross-platform (Windows, Linux, Mac) and supports multiple languages (C, C++, C#, Python, MATLAB, and others). The projects are also supported by the ACE evaluation GUI, and the Scopy multi-purpose data acquisition GUI.

Check failure on line 51 in docs/products/soln-ctr-ideas/adaq2387/index.rst

View workflow job for this annotation

GitHub Actions / check-doc

vale:Vale.Terms:256 Use '[Mm]atlab' instead of 'MATLAB'.

Check failure on line 51 in docs/products/soln-ctr-ideas/adaq2387/index.rst

View workflow job for this annotation

GitHub Actions / check-doc

vale:Vale.Terms:191 Use 'linux' instead of 'Linux'.

Check failure on line 51 in docs/products/soln-ctr-ideas/adaq2387/index.rst

View workflow job for this annotation

GitHub Actions / check-doc

vale:Vale.Terms:71 Use 'linux' instead of 'Linux'.

Check failure on line 51 in docs/products/soln-ctr-ideas/adaq2387/index.rst

View workflow job for this annotation

GitHub Actions / check-doc

vale:Vale.Terms:10 Use 'linux' instead of 'Linux'.

HDL IP Core
-----------

The HDL for these devices is based on the SPI Engine IP core, user guide here: `AXI LTC2387 <https://analogdevicesinc.github.io/hdl/library/axi_ltc2387/index.html>`_, and PWM IP core, which generates the sample rate from the master clock.

The example project for these devices is described at `CN0577 HDL project <https://analogdevicesinc.github.io/hdl/projects/cn0577/index.html>`_.

The example project targets the :adi:`CN0577 Analog Front End and Digital Interface for Serial LVDS SAR ADCs <cn0577>`, and can be parameterized for each device, and building the project generates a set of boot files that can be run on the target platform.

Linux Device Drivers

Check failure on line 62 in docs/products/soln-ctr-ideas/adaq2387/index.rst

View workflow job for this annotation

GitHub Actions / check-doc

vale:Vale.Terms:1 Use 'linux' instead of 'Linux'.
--------------------

The Linux driver for these devices is presently in development, with the goal of having a single, unified driver covering all devices and the associated HDL code.

Check failure on line 65 in docs/products/soln-ctr-ideas/adaq2387/index.rst

View workflow job for this annotation

GitHub Actions / check-doc

vale:Vale.Terms:5 Use 'linux' instead of 'Linux'.

The LTC2387 driver is in upstream review, source at https://github.com/analogdevicesinc/linux/blob/main/drivers/iio/adc/ltc2387.c

The device driver is compatible with the HDL example project, and provides a convenient programming interface for controlling the ADC and capturing data.



Board and Platform Summary
==========================

The various eval boards and their supported platforms are listed below. The standard platforms can be used for product performance evaluation using ACE software, software development, and system prototyping. The ADI proprietary platforms are more constrained, and only work with the software listed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
119 changes: 119 additions & 0 deletions docs/products/soln-ctr-ideas/adc_pulsar_single/index.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,119 @@
.. _adc_pulsar_single:

Single-Channel, SPI-interface SAR ADC Developer Resources
#########################################################

.. attention::

This page is in development, in a deployed pull request. Feedback welcome in
the PR comment section.

Family Overview and ADI DataX Framework Support
===============================================

This page describes various hardware and software resources available for evaluating and developing with several families of Analog Devices' single-channel, SPI-interface, successive-approximation (SAR) Analog to Digital Converters. Not all such devices across ADI's product line are covered here, however the devices on this page are all supported by the same Linux or no-OS (bare metal) device driver, and FPGA HDL IP core and project.

Check failure on line 14 in docs/products/soln-ctr-ideas/adc_pulsar_single/index.rst

View workflow job for this annotation

GitHub Actions / check-doc

vale:Vale.Terms:362 Use 'linux' instead of 'Linux'.

The resources for these devices fall under ADI DataX - a collection of device drivers, FPGA IP cores, and middleware components, all designed to integrate seamlessly with industry-standard open-source operating systems and software frameworks. ADI DataX is an unifies application portability across heterogeneous compute environments, enabling reusable workflows for data acquisition and processing. Developers can scale complexity as needed, from rapid prototyping to advanced system refinement. The :numref:`fig-datax_support` is a high-level overview of the various ADI DataX components for these devices.

Check failure on line 16 in docs/products/soln-ctr-ideas/adc_pulsar_single/index.rst

View workflow job for this annotation

GitHub Actions / check-doc

vale:Vale.Spelling:107 Did you really mean 'middleware'?

.. _fig-datax_support:

.. figure:: PulSAR_ADI_DataX_support.png
:align: center
:width: 900px

ADI DataX Support for Single-Channel SAR ADCs


The evaluation and development boards across these devices use several industry-standard and ADI-proprietary connectors, compatible with industry-standard and proprietary carrier (processor/FPGA) boards. The choice depends on the developer's needs; If the development flow involves software and HDL development on standard carrier boards, it is best to use either the Pmod or FMC boards. Review the example projects and their user guides for the various options in order to make the best choice.

Wherever possible, pre-built programming and boot files are provided for the various carrier / eval board combinations. These typically implement an IIO (Industrial Input-Output) server, compatible with a wide array of software tools and language bindings, easing development considerably.

Getting Started
===============

There are several combinations of evaluation and development boards and controller platforms, with different capabilities and associated software and device driver resources. Review the options and choose the one that best suits your needs. In general combinations fall into two categories:

.. Note::

Support for ADI proprietary evaluation systems such as the SDP-H1 and SDP-B is being phased out in favor of processor and FPGA-vendor supplied development systems, running open-source software provided by Analog Devices.

Evaluation systems for the PulSAR family of ADCs is based on commercially available development platforms running open-source software, firmware, and HDL. Examples for this family of ADCs are shown in :numref:`fig-iio_systems`. These systems are based on the Linux Industrial Input/Output (IIO) framework and are much more flexible, with multiple cross-platform options for both evaluation software and development software.

.. _fig-iio_systems:

.. figure:: iio_systems_block_diags.png
:align: center
:width: 900px

IIO-Based Development Systems

Evaluation Boards and Development Platforms
===========================================

Pmod (Peripheral Module)
------------------------

This is a de-facto standard developed by Digilent. Pmods communicate with host boards using 6, 8, or 12-pin, 100-mil pitch connectors that can carry multiple digital control signals, taking advantage of standard serial protocols such as SPI and I²C. The official specification is available from Digilent at https://digilent.com/reference/pmod/start. Pmod evaluation boards on this page are supported on either a ZedBoard or Cora Z7 FPGA carrier board. Pre-built example projects are provided that implement an IIO server, compatible with ACE, Scopy, and any language supported by the libiio (C, C#, Python, MATLAB, etc.)

The Pmod board hardware documentation is at https://wiki.analog.com/resources/eval/user-guides/circuits-from-the-lab/pulsar-adc-pmods

.. Note::

Here is an example of some documentation that is in serious need of some updating, but it does provide a starting point for ADI DataX-enabled Pmods. Pointing to a recent PR, this URL will change when merged: https://analogdevicesinc.github.io/documentation/pull/194/wiki-migration/resources/eval/ad400x-eval-board.html

FMC (FPGA Mezzanine Card)
-------------------------

This is an industry standard, also known as VITA57. FMC is a widely used standard for both COTS and development carriers and module cards. FMC evaluation boards on this page are supported on the ZedBoard carrier board as well as the ADI proprietary SDP-H1 board. Pre-built example projects for the ZedBoard are provided that implement an IIO server, compatible with ACE, Scopy, and any language supported by the libiio (C, C#, Python, MATLAB, etc.) Important: The SDP-H1 is ADI proprietary, and works in conjunction with ACE software or product-specific evaluation software package. It is not intended as a development platform, and source code is not provided.

Software Resources
==================

Standard Application Software
-----------------------------
The HDL, Linux, and no-OS example projects are based on the Linux Industrial Input-Output (IIO) framework. This maximizes flexibility, as the framework is cross-platform (Windows, Linux, Mac) and supports multiple languages (C, C++, C#, Python, MATLAB, and others). The projects are also supported by the ACE evaluation GUI, and the Scopy multi-purpose data acquisition GUI. The documentation for each eval board will provide specific details on how to use the `Pyadi-IIO <https://analogdevicesinc.github.io/pyadi-iio/index.html>`_ and `MATLAB Precision Toolbox <https://https://analogdevicesinc.github.io/PrecisionToolbox/index.html>`_ interfaces and examples.

HDL IP Core
-----------

The HDL for these devices is based on the SPI Engine IP core, user guide here: `SPI Engine <https://analogdevicesinc.github.io/hdl/library/spi_engine/index.html>`_, and PWM IP core, which generates the sample rate from the master clock.

The example project for these devices is described at `PULSAR-ADC HDL project <https://analogdevicesinc.github.io/hdl/projects/pulsar_adc/index.html>`_.

The example project is parameterized for each device, and building the project generates a set of boot files that can be run on the target platform.

Linux Device Drivers
--------------------

The Linux driver for these devices is presently in development, with the goal of having a single, unified driver covering all devices and the associated HDL code.

The AD400x driver is in upstream review, documented at https://wiki.analog.com/resources/tools-software/linux-drivers/iio-adc/ad400x

The previous mainlined PulSAR family driver is documented at https://wiki.analog.com/resources/tools-software/linux-drivers/iio-adc/ad7476a

The updated device driver is compatible with the HDL example project, and provides a convenient programming interface for controlling the ADC and capturing data.



no-OS (Bare Metal) Device Drivers and Examples
----------------------------------------------

The no-OS driver is intended for systems not using an operating system. It is generally easier to start with a Linux-based system for initial development, then migrate to no-OS.

https://github.com/analogdevicesinc/no-OS/tree/main/projects/pulsar-adc

https://github.com/analogdevicesinc/no-OS/tree/main/drivers/adc/pulsar_adc


Board and Platform Summary
==========================

The various eval boards and their supported platforms are listed below. The standard platforms can be used for product performance evaluation using ACE software, software development, and system prototyping. The ADI proprietary platforms are more constrained, and only work with the software listed.

.. Note::

Only a few example cells are filled out for now.

.. csv-table:: Single-Channel SAR table test
:file: single_channel_SARs.csv
:header-rows: 2
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
,Arduino,FMC,Pmod,ZedBoard,Cora,SDP-K1,ST Nucleo
Part Number,Eval Board,Eval Board,Eval Board,Controller,Controller,Controller,Controller
`AD4000: 16-Bit 2 MSPS/1 MSPS/500 kSPS Precision Pseudo Differential <https://www.analog.com/ad4000>`__ ,,`EVAL-AD400x-fmcz (00) <https://www.analog.com/eval-ad400x-fmcz>`__ ,,X,,,
AD4000 '',,,`EVAL-AD4000-PMDZ <https://www.analog.com/eval-ad4000-pmdz>`__ ,,X,,
`AD4001: 16-Bit 2 MSPS/1 MSPS Precision Differential <https://www.analog.com/ad4001>`__ ,,`EVAL-AD400x-fmcz (01) <https://www.analog.com/eval-ad400x-fmcz>`__ ,,X,,,
,,,`EVAL-AD4001-PMDZ <https://www.analog.com/eval-ad4001-pmdz>`__ ,,X,,
`AD4002: 18-Bit 2 MSPS/1 MSPS/500 kSPS Precision Pseudo Differential <https://www.analog.com/ad4002>`__ ,,`EVAL-AD400x-fmcz (02) <https://www.analog.com/eval-ad400x-fmcz>`__ ,,X,,,
AD4002 '',,,`EVAL-AD4002-PMDZ <https://www.analog.com/eval-ad4002-pmdz>`__ ,,X,,
`AD4003: 18-Bit 2 MSPS/1 MSPS/500 kSPS Easy Drive Differential <https://www.analog.com/ad4003>`__ ,,`eval-ad400x-fmcz (03) <https://www.analog.com/eval-ad400x-fmcz>`__ ,,X,,,
AD4003 '',,,`EVAL-AD4003-PMDZ <https://www.analog.com/eval-ad4003-pmdz>`__ ,,,,
`AD4004: 16-Bit 2 MSPS/1 MSPS/500 kSPS Precision Pseudo Differential <https://www.analog.com/ad4004>`__ ,,,,,,,
`AD4005: 16-Bit 2 MSPS/1 MSPS Precision Differential <https://www.analog.com/ad4005>`__ ,,,,,,,
`AD4006: 18-Bit 2 MSPS/1 MSPS/500 kSPS Precision Pseudo Differential <https://www.analog.com/ad4006>`__ ,,,,,,,
`AD4007: 18-Bit 2 MSPS/1 MSPS/500 kSPS Easy Drive Differential <https://www.analog.com/ad4007>`__ ,,,,,,,
`AD4008: 16-Bit 2 MSPS/1 MSPS/500 kSPS Precision Pseudo Differential <https://www.analog.com/ad4008>`__ ,,,,,,,
`AD4010: 18-Bit 2 MSPS/1 MSPS/500 kSPS Precision Pseudo Differential <https://www.analog.com/ad4010>`__ ,,,,,,,
`AD4011: 18-Bit 2 MSPS/1 MSPS/500 kSPS Easy Drive Differential <https://www.analog.com/ad4011>`__ ,,,,,,,
`ADAQ4003: 18-Bit 2 MSPS Precision DAQ Differential <https://www.analog.com/adaq4003>`__ ,,,,,,,
`AD4020: 20-Bit 1.8 MSPS/1 MSPS/500 kSPS Easy Drive Differential <https://www.analog.com/ad4020>`__ ,,,`EVAL-AD4020-PMDZ <https://www.analog.com/eval-ad4020-pmdz>`__ ,,,,
`AD7685: 16-Bit 250 kSPS PulSAR ADC <https://www.analog.com/ad7685>`__ ,,,,,,,
`AD7687: 16-Bit 1.5 LSB INL 250 kSPS PulSAR Differential ADC <https://www.analog.com/ad7687>`__ ,,,,,,,
`AD7691: 18-Bit 1.5 LSB INL 250 kSPS PulSAR Differential ADC <https://www.analog.com/ad7691>`__ ,,,,,,,
`AD7686: 500 kSPS 16-BIT PulSAR A/D Converter <https://www.analog.com/ad7686>`__ ,,,,,,,
`AD7688: 500 kSPS 16- BIT Differential PulSAR A/D Converter in µSOIC/QFN <https://www.analog.com/ad7688>`__ ,,,,,,,
`AD7693: 16-Bit ±0.5 LSB 500 kSPS PulSAR Differential A/D Converter <https://www.analog.com/ad7693>`__ ,,,,,,,
`AD7988-5: 16-Bit Lower Power PulSAR ADCs <https://www.analog.com/ad7988-5>`__ ,,,,,,,
`AD7980: 16-Bit 1 MSPS PulSAR ADC <https://www.analog.com/ad7980>`__ ,,,`eval-ad7980-pmdz <https://www.analog.com/eval-ad7980-pmdz>`__ ,,,,
`AD7983: 16-Bit 1.33 MSPS PulSAR ADC <https://www.analog.com/ad7983>`__ ,,,,,,,
`AD7690: 18-Bit 1.5 LSB INL 400 kSPS PulSAR Differential ADC <https://www.analog.com/ad7690>`__ ,,,,,,,
`AD7689: 16-Bit 8-Channel 250 kSPS PulSAR ADC <https://www.analog.com/ad7689>`__ ,,,,,,,
`AD7942: 14-Bit 250 kSPS PulSAR Pseudo Differential ADC <https://www.analog.com/ad7942>`__ ,,,`eval-ad7942-pmdz <https://www.analog.com/eval-ad7942-pmdz>`__,,,,
`AD7946: 14-Bit 500 kSPS PulSAR ADC <https://www.analog.com/ad7946>`__ ,,,,,,,
`AD7988-1: 16-Bit Lower Power PulSAR ADCs <https://www.analog.com/ad7988-1>`__ ,,,,,,,
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
3 changes: 3 additions & 0 deletions docs/products/soln-ctr-ideas/adxl355/adxl355_datax_map.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
3 changes: 3 additions & 0 deletions docs/products/soln-ctr-ideas/adxl355/adxl355_iio_debug.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
3 changes: 3 additions & 0 deletions docs/products/soln-ctr-ideas/adxl355/adxl355_iio_osc.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
3 changes: 3 additions & 0 deletions docs/products/soln-ctr-ideas/adxl355/adxl355_layout.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
3 changes: 3 additions & 0 deletions docs/products/soln-ctr-ideas/adxl355/adxl355_pmdz.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Loading