Wiki

This version (13 Sep 2023 17:02) was approved by Jim Catt.The Previously approved version (12 Sep 2023 21:40) is available.Diff

Precision Open Platforms

Introduction

The value and differentiation in customer systems is increasingly dependent on software and digital content. Analog Devices Inc. (ADI) delivers many products that have software-dependent features, and therefore require support through the typical development project life cycle: evaluation --> prototyping --> implementation --> deployment. The traditional evaluation experience combined hardware and software that allowed the customer to test drive a product (or solution), but typically limited has limited ability to enable the customer to move to the next phase without considerable effort. This model has historically used one-off solutions that could not be otherwise leveraged. ADI is now developing comprehensive solutions for new products (and existing) that combine hardware and software to support both evaluation and initial system prototyping for our customers, and in many cases, full application reference designs. This is accomplished by providing open source, reusable software components (device drivers, example code and HDL); using common hardware form factors (FMC, Arduino) that allow easy migration to other software and hardware environments; and using 3rd party as well as internally developed open system boards that use common software environments and tools. The intent is to make it easier for our customers to use tools that they are already familiar with and leverage resources that are available in existing communities (e.g., Linux, Python, Matlab, Arduino, Mbed).

This page provides an overview of ADI's open platforms ecosystem and provides links to specific examples of Precision system solutions that are currently supported and resources.

Supported Platforms

ADI currently supports the following system boards that are used with Precision products.

Digilent ZedBoard

The Digilent ZedBoard is a system board based on the Xilinx Zynq-7000 SoC (XC7Z020), which has dual ARM Cortex A9 processor cores plus FPGA fabric. Selected features of the board are shown in the table below. Additional documentation, tutorials, examples and other resources for the ZedBoard can be found on the Digilent website. ADI's Kuiper Linux distribution runs on the board. See the Software section below for more information on the Kuiper Linux distribution.

Table 1. ZedBoard Features
Feature Description
Connector I/O LPC-FMC, 5x PMOD, AMS header
Communications/Control I/O micro-USB OTG 2.0, micro-USB UART, 10/100/1000 Ethernet
Multi-media I/O HDMI, VGA, Audio (line in/out, headphone, mic
Memory 512 MB DDR3 (128M x 32), 256 Mb QSPI Flash, SD card slot
Supported ADI Precision Products

The following precision products have supported solutions that have been deployed on the ZedBoard.

Table 2. ZedBoard compatible Precision products

Table 2 is a subset of a larger pool of FPGA reference designs developed ADI that can be found at the ADI Reference Designs HDL User Guide Wiki page. These reference designs come with open source HDL and supporting documentation.

Terasic DE10-Nano

The DE10-Nano system board features an Intel Cyclone V (5CSEBA6U2317) SoC that also contains dual ARM Cortex A9 processor cores along with FPGA fabric. The following table contains a summary of the primary board features. Additional documentation and resources for the system can be found on the Terasic DE10-Nano web page. ADI's Kuiper Linux runs on the board. See the Software section below for more information on the Kuiper Linux distribution.

Table 3. DE10-Nano Features
Feature Description
Connector I/O Arduino, 2x 40-pin GPIO headers (2×20), 2×7 LTC header, 2×5 ADC header
Communications/Control I/O micro-USB OTG, USB mini-B UART, USB Blaster II (mini-B), 10/100/1000 Ethernet
Multi-media I/O HDMI
Memory 1 GB DDR3 (256M x 32), 256 Mb QSPI Flash, SD card slot
Supported ADI Precision Products

The following table lists the currently supported products on the DE10-Nano.

Table 4. DE10-Nano Supported Precision products
Controller board Product(s) Source Project Doc HDL Linux Dev Driver No-OS Driver Developer's guide
DE10-Nano cn0540 hdl/tree/master/projects/cn0540 cn0540 hdl ad7768 no-OS/tree/master/drivers/adc/ad7768

ADI SDP-K1

ADI's SDP-K1 system board is based on the STM32F469NIH6 Cortex-M4 microcontroller. Additional documentation can be found on the SDP-K1 web page and the Mbed: User Guide for SDP-K1 page. See the Software section below for more information on the software support for the SDP-K1.

Supported ADI Precision Products

The current list of products that are supported on the SDP-K1 can be found at Precision Converter Support Software. The latter contains links to example Mbed application code for the supported devices. These code examples are intended to provide a starting point for a user developed application or prototype for the targeted device.

The following table contains a summary of the board features.

Table 5. SDP-K1 Features
Feature Description
Connector I/O Arduino UNO headers, 120-pin small footprint Hirose connector, ST-LINK/V2 in-circuit debugger header
Communications/Control I/O USB (mini-B)
Memory 16MB SDRAM, 2MB Flash, 384 kB internal RAM
Figure 1. SDP-K1 top and bottom views


Software Developer Resources

This section will address the software resources that support these boards.

Kuiper Linux

The ADI Kuiper Linux distribution is used on several system boards used by the Precision open platforms initiative. The main Kuiper Linux page provides more information on the basic Kuiper distribution- what it contains; downloading; how to build it; and other documentation.

In addition to the standard Kuiper Linux distribution, an alternate version has been created that provides custom support for product evaluation with the ACE software. This version is used with the ZedBoard and enables the USB OtG port so that ACE can connect to the board for configuration and data capture. Documentation on this distribution is found at ADI Kuiper Linux with support for Evaluation. Note that the evaluation version of Kuiper Linux does not currently support the DE10-Nano board.

Whether using the standard Kuiper Linux distribution or the version that supports ACE, the ZedBoard boots from an SD card that contains the Linux image. Product evaluation boards that use the eval supported Kuiper Linux version are shipped with an SD card that contains the necessary Linux image. In cases where the user desires to uses the standard Kuiper Linux version, the main Kuiper Linux page provides instructions on how to build an SD card with the latter image. For users that want build an SD card with eval supported Kuiper Linux image, the Getting Started with ADI Kuiper Linux for Evaluation on ZedBoard page contains instructions for building an SD card. It also has a basic quick start guide for using the ZedBoard, as well as a link to a troubleshooting guide.

Linux Device Drivers

One key aspect of Kuiper Linux is that it already contains ADI device drivers, eliminating the need to build a Linux image with the needed drivers. The catalogue of drivers can be found on the Linux Drivers page. ADI's GitHub repo can also be searched to determine if a specific device driver is available.

Industrial Input/Output (IIO) Subsystem

The IIO subsystem that comes with the Kuiper Linux distribution simplifies that process of accessing hardware devices such as data converters, sensors, PLLs and many other programmable components. IIO is included as a C library with an API that simplifies device configuration and data streaming. A basic overview of the IIO subsystem can be found here (Linux Industrial I/O Subsystem) and here (About libiio). More information on downloading and building IIO can be found here (What is libiio?).

Building PC applications that use IIO is also possible. The latter Wiki page contains a link to an IIO Windows download. Note: users that have the latest version of ACE installed can also install IIO after starting ACE. In the main screen, click on the Help icon in the lower left corner, after which the ACE Help menu should appear in the upper right portion of the window. Click on Application Resources then select IIO WCF Wrapper Installer. This will start the installation process. Installing the Windows IIO library is also necessary to use the following software frameworks with IIO.

IIO Supported Frameworks
  • Python - For users that want to build a Python application that utilizes IIO, ADI has developed a Python package that includes an API for device access as well as lower level IIO bindings. Installation instructions, and links to examples, documentation and code repos can be found at the PyADI-IIO Wiki page.
  • MATLAB - ADI has developed a Precision Toolbox for MATLAB and Simulink. While certain precision ADCs are supported in the toolbox, if the device has an IIO driver, MATLAB support is possible even without a specific MATLAB or Simulink interface. The Precision Toolbox Wiki page contains a table of the currently supported devices, where to obtain the toolbox installation files, examples and other information needed to install and use the toolbox.

No-OS Device Drivers

For users that are developing applications not using either Linux or Mbed, whether its an alternative (RT)OS or a bare-metal application, ADI also provides No-OS device drivers that can be utilized across a variety of microcontrollers. At the same time, Linux/Mbed developer will find that No-OS drivers retain compatibility with the latter environments. The NO-OS page provides more information on No-OS in general, including supported platforms, a list of supported devices (including links to the respective No-OS user guide for the device), a link to the No-OS Github repository, and a project build guide. The Microcontroller no-OS Drivers page provides a complete list of the devices that have No-OS drivers.

Mbed

Analog Devices has adopted the open source Mbed RTOS because its supported by a full IDE and allows users to easily migrate applications across boards that support Mbed, subject only to the hardware capability. The Mbed: User Guide for SDP-K1 page contains links to the Mbed tool chain as well as instructions for setting up the IDE and running code on the SDP-K1.

resources/eval/precision_open_platforms.txt · Last modified: 13 Sep 2023 17:02 by Jim Catt