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.
ADI currently supports the following system boards that are used with Precision products.
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.
|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|
The following precision products have supported solutions that have been deployed on the ZedBoard.
|Controller board||Product(s)||Source||Project Doc||HDL||Linux Dev Driver||No-OS Driver||Developer's guide|
|zed||ad40xx_fmc||Source||Project Doc||HDL Doc||Linux Driver||ad400x|
|ad4630_fmc||Source||Project Doc||HDL Doc||Linux Driver||ad463x||ad4630-24-developer-guide|
|ad469x_fmc||Source||Project Doc||HDL Doc||Not available||ad469x|
|ad5758_sdz||Source||Project Doc||HDL Doc||Linux Driver||ad5758|
|ad5766_sdz||Source||Not available||Not available||Linux Driver||ad5766|
|ad7134_fmc||Source||Not available||Not available||Linux Driver||no-OS/tree/master/drivers/adc/ad713x|
|ad738x_fmc||Source||Project Doc||HDL Doc||Linux Driver||ad738x|
|ad7405_fmc||Source||Not available||Not available||Not available||Not available||Not available|
|ad7616_sdz||Source||Project Doc||HDL Doc||Linux Driver||ad7616-sdz|
|ad77681evb||Source||Project Doc||HDL Doc||Linux Driver||ad7768-1|
|ad7768evb||Source||Project Doc||HDL Doc||Linux Driver||no-OS/tree/master/drivers/adc/ad7768|
|adaq7980_sdz||Source||Project Doc||HDL Doc||Not available||no-OS/tree/2016_R2/adaq7980-sdz|
|cn0363||Source||Project Doc||HDL Doc||Linux Driver||ad717x|
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.
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.
|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|
|Memory||1 GB DDR3 (256M x 32), 256 Mb QSPI Flash, SD card slot|
The following table lists the currently supported products on the DE10-Nano.
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.
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.
|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|
This section will address the software resources that support these boards.
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.
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.
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.
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.
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.