ADP3450 Analog Discovery Pro USB Oscilloscope RoadTest Review

Table of contents

RoadTest: ADP3450 Analog Discovery Pro USB Oscilloscope

Author: avnrdf

Creation date:

Evaluation Type: Test Equipment

Did you receive all parts the manufacturer stated would be included in the package?: True

What other parts do you consider comparable to this product?: PicoScope, ScopeFun

What were the biggest problems encountered?: Occasional instability in record mode

Detailed Review:

Last year, Digilent announced the ADP3450 and the ADP3250, the first devices in the line of the new Analog Discovery Pro series. The ADP3450 and ADP3250 build on the capabilities of the Analog Discovery 2 by offering more channels, features, and memory.

Digilent’s Analog Discovery 2 is a pocket-sized multi-function instrument – an electronic swiss army knife of sorts. It includes a 2-channel oscilloscope, waveform generator, logic analyzer, pattern generator, power supply, network & spectrum analyzer and a few more instruments – replacing several large lab instruments with a device that can be powered using a USB cable and is smaller than a wallet. Digilent also has a ‘Digital Discovery’ which swaps out the analog inputs and outputs of the AD2 for more (and faster) digital I/O, and onboard DRAM.

The AD2 quickly became my go-to instrument for general-purpose debug because of the number of tools it has, and how easy it is to carry around and setup. The AD2 is also very widely used by engineers in the industry and engineering students because of the capabilities it offers for the price (and size!). The software for the Analog Discovery 2 – Waveforms, is probably the most feature rich software for USB MSOs that I’ve used, and to top it off it is stable and fast. However, the Analog Discovery 2 has its shortcomings: the sample memory is limited to 16K samples for the oscilloscope and logic analyzer which means that it cannot be used to capture certain signals which need to be sampled fast and over a long period of time. The USB 2.0 interface limits the rate at which samples can be streamed to the computer, and only 2 analog inputs tend to be inadequate at times. In situations like these, I am forced to set the AD2 aside and move to different equipment.

The ADP3450 addresses these shortcomings – it has been upgraded with a significantly larger FPGA, external memory, has more analog channels and includes a GbE interface. The ADP3450 no longer has differential ADC inputs like the AD2 (which are very useful!), but instead has BNC connectors (w/ greater bandwidth) and has features like Linux mode.

The Digilent page sums up the capabilities of the ADP3450 nicely: “TL;DR: high-res, giga-sample speed, mega sample memory depth, mixed signal analysis, advanced triggers, and customizability - all included in a device smaller than a laptop.”

Product Overview & First Impressions

Highlights from the Marketing Material

  • Analog Inputs:
    • 4x BNC, single-ended. ±25V range, protected to ±50V
    • >55MHz bandwidth, controllable 20 MHz hardware bandwidth filter.
    • 14-bit resolution.
    • Up to 125MSps sampling rate, or 0.5GS/s with oversampling.
    • 32K samples in standard modes, up to 128MS in record mode.
  • Analog Outputs
    • 2x BNC, single-ended. ±5V range
    • 14-bit resolution
    • 125MSps rate, 15 MHz bandwidth
  • Digital I/O
    • Adjustable 1.2V to 3.3V in/out. 5V input tolerant.
    • 125MSPS sample rate.
    • 32k sample buffer in standard modes, up to 64MS in record mode.
    • Digital voltage outputs can source up to 300mA
  • Other
    • Multiple trigger modes for analog & digital instruments. External and cross-trigger capable.
    • USB 2.0 or GbE connection to the host.
    • 4 USB 2.0 host ports for WiFi dongles or thumb drives.
    • Powered by a 65W external power supply.
    • ‘Linux’ mode for standalone operation.

Competition

I compared the ADP3450 to its predecessor, the Analog Discovery 2, and three other products from other manufacturers.

 

ADP3450

Analog Discovery 2

PicoScope 3404D MSO

Saleae Logic Pro 16

ScopeFun

Price

$1295

$399

$1675

$1399

$850

Oscilloscope

 

 

 

 

 

Channels

4

2

4

16

2

Sample Rate, BW

125M,55M

100M,9M

70M

50M,5M

500M,100M

Sample Depth

128MS

16K

128MS

Unlimited

128MS

Logic Analyzer

 

 

 

 

 

Channels

16

16

16

16

12

Sample Rate

125M

100M

100M

500*

250M

Sample Depth

256MS

16K

128MS

Unlimited

128MS

AWG

 

 

 

 

 

Channels

2

2

1

 

2

Rate

125M

16k

20M

 

200M

Digital Pattern

 

 

 

 

 

Channels

16

16

 

 

12

Rate

125M

100M

 

 

250M

Interface

USB 2.0 or GbE

USB 2.0

USB 3.0

USB 3.0

USB 3.0

Software

Waveforms

Waveforms

PicoScope

Logic

ScopeFun

 This table barely scratches the surface: comparing MSOs is no simple task because of the number of specs that need to be compared: voltage ranges, resolution, triggers, software features and so on.

I listed the 4 primary features: analog & digital output and inputs, number of channels, rate and sample depth. The ADP3450 improves on what the Analog Discovery 2 offered and is very competitive with other devices. Some of the finer details and software can bring significant differentiation, which will be explored in this review.

Documentation

The documentation for the ADP3450 is available on Digilent's website.

Digilent Store: Analog Discovery Pro 3000 Series: Portable High Resolution Mixed Signal Oscilloscopes

Digilent Reference: Analog Discovery Pro (ADP3450/ADP3250)

Analog Discovery Pro (ADP3450/ADP3250) Reference Manual

Analog Discovery Pro (ADP3450/ADP3250) Specifications  

There is additional content in the Help section of Waveforms.

Unboxing


Packaging

I received the ADP3450 in a large element14 box, which had the ADP3450 box and 4 BNC probe packages inside it. The ADP3450 box is quite large: measuring approximately 30cm x 25cm x 12cm. The box is sturdy and of decent quality.

As a comparison the Analog Discovery 2’s packaging is much more compact.

image image

A quick-start guide is at the very top, on a thin layer of foam. The quick-start guide has instructions on how the ADP3450 can be setup, and what the various ports on the device do.

image

Below the layer of foam is the ADP3450 in an anti-static bag. The ADP3450 (and its bag) are placed in a removable carboard tray.

image image

Underneath the tray are compartments for the power supply and the cables. Since the ADP3450 doesn’t ship with BNC probes in the box, there is no space to store them inside the same box.

 image image

The ADP3450


The ADP3450 has a black plastic body with green accents. The build quality is good, but it does not feel as sturdy as the Analog Discovery 2 – but I think that this is because the ADP3450 is larger and has screws only towards the periphery, allowing the plastic to flex in the middle. I don’t think that accidental breakage or longevity are a concern.

I took these photos of the Digilent website:

  • The front of the unit has a power LED, digital header, 4 BNC for the analog oscilloscope and 2 BNC for the waveform generator.
  • There are plastic feet on the bottom which can be used to raise the front of the unit to make it easier to plug in the BNC. 
  • The left side has vents and a power switch.
  • The rear has trigger BNC, USB host/device ports, RJ45 and power.
{gallery}ADP3450

image

ADP3450 front

image

ADP3450 side/rear

image

The ADP3450 is quite large: here’s a photo with the ADP3450 with a PicoScope 5444D MSO and AD2 stacked on top of it. The ADP3450 occupies 50% more area than the 5444D, or roughly the same area as 8 AD2s. The ADP3450 does have many more BNC connectors and ports than the others, and it doesn’t seem like the width can be reduced because of the area required to pack in all the IO.

Accessories

{gallery}ADP3450 Accessories

AC adapter: 100 – 240V, 19V/65W output

image

Cables

Digilent bundles a 65W (19V) power supply, which seemed quite large for a device of this class. The ADP3450 doesn’t strictly include a power supply instrument, but you can draw 300mA at 3.3V from the digital supply. The ADP3450 packs a FPGA, ADCs, DACs, Ethernet/USB controllers and needs to have enough power left over to supply to the 4 USB 2.0 host ports. The datasheet specifies a maximum of 45W, so the 65W adapter is oversized.

Power supply adapter cables (US/EU) and a 2x12 MTE cable for the digital header are also included. The MTE cable is like what ships with the AD2 and is of very good quality. A USB A to B cable is also included.

{gallery}ADP3450 Probes

image

image

image


Setup

Setting up hardware

image

After plugging in the power supply cable, hit the switch on the left side of the unit and the power LED on the front turns on.

The ADP3450 requires a dedicated power supply and cannot be powered using a USB cable, which requires the bulky power brick and cable to be carried around. Some other devices (like some PicoScopes) also require a power supply because they require more power than what USB permits, but they support reduced functionality modes (limited sampling rates, or ADC channels) when powered over USB. An option like this, or even an auxiliary USB port that’s only used for power would have been nice to have especially because the ADP3450 is quite portable.

Installing drivers, software & tools

Digilent’s software ‘Waveforms’ is available for Mac OS, Linux and Windows. I installed the latest version for Windows using the .exe that is freely available on Digilent’s website. Digilent doesn’t allow you to access the download page without entering personal details (name, email, organization etc), but on the plus side they unlock the download page after the details have been entered, so you don’t need a valid email to receive the download link.

When Waveforms is launched, it will scan and display available devices, and Digilent also included a ‘DEMO’ mode for every device which allows users to play around with the software without needing to have a device.

Connecting to the ADP3450 is as easy as plugging in a USB 2.0 cable. I decided to use the GbE interface because of the higher bandwidth, so I followed the instructions at https://digilent.com/reference/test-and-measurement/analog-discovery-pro-3x50/ethernet-streaming to set it up. This required enabling the GbE interface in standard boot mode, and then rebooting the device. Subsequent resets of the device can connect via GbE without needing USB.

Waveforms detects the USB & Ethernet interfaces and allows you to connect to either. The frequency (100 or 125 MHz) and boot mode is also selectable.

I measured the boot time in the standard mode, with waveforms open (and auto refresh in the background), it took around 3 seconds for the USB interface of the ADP3450 to be detected, and around 15 seconds for it to show up when using the GbE interface.

image image image

Hardware Overview


Schematics & Board Design


The Analog Discovery 2 and Digital Discovery have very comprehensive documentation – Digilent has gone as far as publishing schematics of relevant circuitry. The ADP3450 doesn’t get the same treatment, but a block diagram and some details are included in the Waveforms ‘Help’ (but not on the website).

image

The block diagram explains the internal architecture of the system and we will look at some of these components in the teardown that follows.

At the heart of the ADP3450 is a Xilinx Zynq-7000 APSoC/FPGA. The 4 analog channels are connected to two ADCs (2x 2ch per ADC) via front-end circuitry, and the ADCs pipe data to the PL of the Zynq. Similarly, the 2 waveform generator channels are connected to a DAC, which is connected to the PL. The digital channels (which can function as inputs or outputs) are also hooked up to the PL.

The PS of the Zynq handles all the connectivity: upstream GbE & USB 2.0 device, as well as the downstream USB ‘Host’ ports via a hub. As for non-volatile memories: QSPI probably holds a bootloader/bare metal firmware, while the eMMC stores the Linux image and file system. The memories used as the capture buffers are likely the internal BRAMs and the external 512MB DDR3 memory.

The following diagram describes the different locations, modes, and sizes of the capture buffers.

image

The memory within the FPGA is used in most modes. It is very limited in size (32K samples) which isn’t much of an improvement over the Analog Discovery 2. Since this memory needs to be shared between different instruments, Digilent includes 2 configurations which different splits (refer to the device manager window) so that users have the option to maximize the memory allocated to the instrument that requires it the most.

In Record mode, the external DDR is used to buffer data, which allows the size of the capture buffer to increase significantly.

Since the DDR3 RAM used has a 16-bit interface, it transfers 2 bytes per transfer, or 4 bytes per clock. Assuming a rate of 1333MT/s, that works out to a max. theoretical rate of 266MBps, which is close to what Digilent state.

Waveforms has a system monitor which shows voltages and temperatures – these are probably from the Zynq’s system monitor. The Analog Discovery 2 also displayed current, which is missing on the ADP3450. The reported temperature was always in the 70s though I think I recall seeing it go up to around 78C when making acquisitions.

image

The ADP3450 has a flexible clocking system: the internal clock can be output on a pin, and an external clock can be used to clock the system. I haven’t dug into the details, but I guess this could be used to synchronize multiple ADP3450s.

image

Teardown


Taking apart the ADP3450 requires removing the 6 sticky rubber feet on the underside so that the screws can be accessed. No ‘warranty is void’ stickers were present.

image

Removing the screws allows the panel on the top of the unit to come off, so flipping the device over and placing it upright reveals the top of the PCB. 

At the very top of the following image are the ports at the back of the device: power, RJ45, USB and trigger BNCs. The 6 BNCs and digital channels that are on the front are visible at the bottom. Also visible is a small black heatsink which is over the Zynq, and metal shielding over the analog acquisition circuitry.

The back of the PCB has a few ICs but is mostly bare. There are a lot of components on the front/top of the PCB but there is a lot of empty space. I wonder if the form factor of the device could be reduced by packing components more densely. The width would roughly remain the same (because it’s limited by the front I/O), but maybe the depth of the device could be reduced if signal integrity and thermals aren’t an issue.

image

Copper wire that looks like solder wick is connected between the shield and the underside.

image

The panels that make up the sides/rear and front of the unit lift off the bottom panel.

image

Here’s what lies under the metal cans: 2 ADCs (at the top), and the circuitry for the 4 channels: range/coupling switching relays, filtering, buffers etc.

image

By taking off the remaining screws, the PCB can be lifted off the plastic base. This also allows the feet to separate from the body. An advantage of this design is that if the plastic feet ever break off, they can be unscrewed and replaced – if the part is available.

image

{gallery}ADP3450 Teardown - ICs

image

Near the relays of the analog input channels are ADA4817 Low Noise, 1 GHz FastFET Op Amps

image

Here are the 2 ADCs: Analog Devices AD9648 14-Bit, 125 MSPS/105 MSPS, 1.8 V Dual Analog-to-Digital Converter

image

The digital header (logic analyzer/pattern generator) has a TC7MPB9307FK Low Voltage/Low Power 8-Bit Dual Supply Bus Switch close to the header.

image

Moving on the ICs near the rear:

  • Texas Instruments DP83867CR: Low-power, Robust, High Immunity 10/100/1000 Ethernet Physical Layer Transceiver
  • FTDI FT232RQ USB Full Speed to Serial UART IC, Includes Oscillator and EEPROM
  • Microchip USB2512B USB 2.0 Hi-Speed Hub Controller

image

  • Microchip USB 2.0 Hi-Speed Hub Controller
  • Microchip USB3320 Highly Integrated Full Featured Hi-Speed USB 2.0 ULPI Transceiver 

image

Samsung KLM4G1FETE-B041 eMMC 5.1 4GB

image

  • ISSI IS43TR16256BL-107MBL 4Gb DDR SRAM: 1866MT/s CL13, 256Mx16 Commercial Temp Range 0°C ≤ TC ≤ 95°C 96-ball BGA
  • Spansion FL128SAIF00: 128Mb 133 MHz Industrial Range SPI Flash Memory

image

image

  • Diodes Inc ZXMP6A16DN8 DUAL P-CHANNEL 60V ENHANCEMENT MODE MOSFET
  • ADP5052 5-Channel Integrated Power Solution with Quad Buck Regulators and 200 mA LDO Regulator

I didn’t take the heatsink off, but a teardown by Colin O’Flynn reveals that it’s a Zynq-7000: XC7Z020CLG484

Hardware Specs

These are the specs in the Waveforms ‘Help’ section.

Recommended operating conditions

Absolute maximum ratings

Oscilloscope

inputs

±50V 1MΩ|15pF

±50V

Wavegen

outputs

±5V 50Ω 30mA DC

±5.8V

Digital

IOs

0V / 1.2-3.3V 8mA

±15V

Triggers

IOs

0V / 3.3V 8 mA

±15V

Digital Voltage

output

1.2V .. 3.3V 300mA

0V .. 3.5V

Power Supply

input

19V DC 3.43A

45W

image

image

image

Software Overview
Waveforms has all the instruments listed on the left pane of the main window. Opening an instrument will open a new tab, which makes it easy to switch between instruments when many are active.

Instrument tabs, or even different view windows within an instrument can be moved around, re-aligned and re-sized within the same window, or expanded into a different window. Examples of this will be visible in further sections when I review each instrument, and this flexibility makes the software easy to use – unfortunately software from most competing products does not support this.

image

Sessions (state, settings, and captured data) can be saved for future use as a ‘workspace’. Workspaces can also be compressed and compared – making it easier to store and keep track of changes.

The Play/Stop icons in the tab of each of the instruments also makes it easier to control, or monitor the state of the instruments without needing to open the tab.

The Waveforms options window allows different visual, performance and device options to be configured.

{gallery}WaveForms - Options

image

image

image

The Help tab is very easily accessible. The help section is split into 3 sections: first there’s the ‘generic’ help that explains the instruments and different options and aren’t device specific. The next section contains documentation about the device, and the third section contains details about the add-on boards.

image

Device Manager

The device manager is used to select which device Waveforms will connect to, and other device-specific options like configuration of memories in different modes.

image

Calibration & Compensation

The calibration wizard allows users to calibrate the ADP3450. The device is calibrated during the manufacturing process and the values are stored on the device, but option this allows users to update the values. The wizard guides you through the different steps and connections that need to be made.

{gallery}Compensation & Calibration

image

image

image

The help section includes a guide on how 10x probe compensation needs to be performed. The ADP3450 doesn’t have a dedicated test pin/hook, so the waveform generator is used to generate the square wave. The bundled probes include a trimmer tool to make it easy to adjust the trimmer inside the BNC end.

Using the: software, features & hardware


Oscilloscope

The interface is simple and intuitive: the top-most panel has the capture and trigger controls, while the panel on the right has the controls of sampling rate and channel settings (enables, range etc). There are 4 analog channels (mapped to the BNC on the front), as well as ‘virtual’ channels for references, derived using math, or the digital pins (for when a logic analyzer channel waveform needs to be plotted with the analog channels).

There are many view modes:

  • Zoom, which adds a ‘zoom’ view.
  • XY: plotting one channel against another.
  • XYZ 3D: Plotting 3 channels
  • FFT
  • Spectrogram (in 2D and 3D): a plot of frequency over time.
  • Persistence: useful for mask/eye testing.
  • Histogram
  • And some more.

Acquisitions can be started using the Single or Run buttons, which are the equivalent of the one-shot and repeated triggers on oscilloscopes. There are 4 different modes: repeated, screen, shift and record:

  • Repeated
  • Screen: Waveforms will plot a buffer from left to right (in the time domain), and then return back to the left to continue drawing from left to right.
  • Shift: like Screen, except the plot keeps sliding to the left instead of returning.
  • Record: For capturing many samples.

Buffers and Tabs: Waveforms can cache previous acquisitions on the PC in buffers, allowing old captures to be reviewed. Users also have the option of creating a new tab to start a new acquisition while leaving the current capture in its view untouched.

Trigger options:

  • None: free-run mode
  • Normal: where the device will not start a capture until the trigger condition is met.
  • Auto: like normal, except the device will start a capture if the trigger does not fire within 2 seconds.

The source of the trigger can be selected: it can be an analog channel, external trigger, or even a different instrument. The type of trigger is also configurable: edges, positive/negative pulses of smaller/larger length, signal transitions (range, and time), and windows with a level and hysteresis. A trigger holdoff can also be configured.

image

The time-group settings have controls for the ‘x’ time position of the pre-trigger, time base/sampling rate and oversampling/decimation/averaging controls. For each of the analog channels, there are settings to select AC/DC coupling, noise capture, bandwidth, offset, voltage range, attenuation (to reflect the probe setting to match scale/offset), and filtering. Math channels that use standard operations or custom operations, and software filtering is supported. Waveforms even supports a ‘LockIn’ math channel where the input is mixed with a source with a specified frequency to extract the I/Q components, allowing users to demodulate signals

Like all oscilloscopes (or oscilloscope software), Waveforms supports cursors for the X & Y axes which can be used to take measurements. Waveforms also supports ‘quick measure’ cursors which make it very to take measurements quickly, which I will discuss in a different section.

Here’s an example of the spectrogram view. A frequency-modulated signal was generated using the wavegen and fed back to the analog input. This generated a carrier sinewave which had its frequency vary over time (because the modulating signal was also a sinewave), and amplitude also varied due to the bandwidth attenuation. Waveforms plotted the time-domain signal (top), and a view in the spectrogram. The spectrogram plots frequency on the y-axes, time on the x-axes and magnitude as color. The spectrogram makes it easy to see how the carrier frequency changes over time:

image

The spectrogram 3D view plots the same data a little differently.

image

Both of these modes tend to hit the CPU hard – probably because generating the graphs is intensive. Waveforms does slow down a little, but your mileage might vary a little depending on how your computer can keep up.

The ‘FFT’ view plots the FFT (magnitude vs frequency) of the signal. I generated a combination of a 1MHz and 5 MHz signal using the waveform generator, and the FFT shows both tones.

image

The persistence view can be used to generate repetitive captures to track how one signal compares relative to another signal/trigger. Useful for generating eye diagrams or mask testing. For the following example, I set up a trigger on one channel (blue) so that the ADP3450 started a capture on the rising edge of the signal. After many acquisitions, the jitter of the other signal (relative to the trigger) is clearly visible: the rising/falling edges do not always exactly line up with the primary.

image

The ADP3450 supports 100 or 125 MSPS ADC sampling rates depending on what the base frequency is set up for. If only a single channel needs to be used, the 4 ADC channels can be interleaved to get 4x oversampling enabling captures as fast as 400 or 500 MSPS. Here I sampled a 25 MHz sine wave at 400 MSPS (note the 100MSPS base sampling rate and 4x oversampling), which gives me ~16 samples per cycle.

image

The XY view can be used to plot two channels, and the Histogram view gives you a statistical distribution of the magnitude of signals. It is evident that the ‘sharp’ square wave spends most of its time at -5 and +5V, but the slower rising/falling yellow channel doesn’t settle and spends more time at intermediate voltages

image

The ‘Data’ & ‘Measurements’ tabs are non-graphical modes. Data displays acquisition samples with a timestamp, making it easy to export data.

The ‘measurements’ view can be used for statistical analysis: Vertical axis measurements comprise of min, max, AC/DC RMS, overshoot, high, low etc. Horizontal axis measurements supported are cycles, frequency, rise/fall times and different duty cycles and widths. If users require something that isn’t supported by default, they can write their own scripts because Waveforms has a scripting interface and has hooks to access raw samples.

Finally, there’s a logging interface, and an ‘Audio’ interface which can be used to play acquisition data to the speakers.

Waveform Generator


The waveform generator has different modes and options for generating waveforms.

The Simple, Basic & Sweep modes have different types of reference waveforms, and the period/amplitude, offset, symmetry and phase are all configurable. The Sweep mode adds the ability to sweep frequencies over time, as well as damp the amplitude.

image

The basic mode has sliders to make it easy to control the generated waveform.

image

Custom waveforms can be generated by applying mathematical operations to base waveforms: here I combined a single cycle sine with a 5x cycle sine. Waveforms can also be imported, or saved.

image

Modulation is the last option: where a waveform can be used to generate a frequency or amplitude modulated carrier. I used this to generate the waveform that was used in the oscilloscope’s spectrogram example.

image

One Wavegen setting did turn out to be a headscratcher: I had disabled the output of the Wavegen in the Waveforms settings and forgotten about it – naturally, which led to a lot of confusion when the output of the Wavegen channels weren’t outputting anything. All the Waveforms instruments are good at notifying users when somethings not quite right: red-colored text will popup when samples are dropped, isn’t being sampled fast enough, or the settings aren’t quite right. Having something similar popup when users are trying to use the Wavegen with the outputs disabled is bound to save someone an hour of debug time!

Power Supplies


The power supply of the ADP3450 isn’t strictly a variable power supply, since it controls the logic voltage (and trigger) of the digital channels, but it can also be used to run something external that doesn’t draw too much current (300mA). The IO voltage can be set to 1.2, 1.5, 1.8, 2.5 and 3.3V; and changing this voltage automatically modifies the voltage threshold. This panel also has controls of the states of each of the pulls of the I/O pins, allowing users to configure whether the I/O are floating, pulled-up or pulled-down. At the very bottom, they display data from the system monitor: the temperature and some voltages.

image

Voltmeter

The voltmeter uses the oscilloscope channels to display DC, True RMS and AC RMS voltages. The RMS bandwidth changes based on the selected update rate.

image

Data Logger

The data logger can be used to log any of the values displayed in the Voltmeter, or values that are derived from those values using custom mathematical functions. The update rate, history, and logging format (text/image export) are all configurable.

Logic Analyzer

The logic analyzer can be used to analyze ‘raw’ signals or decode some inbuilt/custom protocols. The options for SPI and UART decoders are shown below.

image

Here’s an example of the logic analyzer decoding SPI. Like the oscilloscope, there are different options for modes, triggering and buffering

One of the features I like the most about the AD2 and ADP3450 is that each channel can act as a trigger, and that each channel can also set different trigger options (level, edge etc). Many other logic analyzers that I’ve used have limited triggers: the level trigger can be used to monitor one channel, and the edge trigger another channel. This tends to be good enough in most cases, but there are times when I’ve had to use the AD2 just because it had the ability to independently trigger on all channels.

image

image

Waveforms includes cursors, but also includes ‘quick measure’ which allow users to make period/frequency measurements without needing to drag cursors. Simply select the type of cursor, click on the starting point and move your mouse to the desired point: waveforms will align the cursor to edges and print out the period/frequency. I find this an order of magnitude faster than other tools which require the start/end cursors to be dragged – the cursor will snap to transitions and display the value instantaneously.

image

Here’s the relative cursor, which uses a reference point.

image 

image

Pattern Generator

The pattern generator can be used to generate patterns of data on the digital pins.

The I/O type of each signal can be push-pull, open-drain, open-source or tri-state. The type of output can be:

  • Constant state
  • A clock
  • A pulse, which can be used as a PWM generator. There’s an internal counter which is clocked from 100MHz source via a configurable pre-scaler. The compare/match value can be configured to automatically toggle the pin, and the state of the pin is reset when reloaded.
  • Random
  • Custom, allowing users to create customer patterns.
  • Number, which generates a bus (multi-bit) value. A Binary/Gray/Johnson Counter is also supported – very useful for generating test patterns.

image

image

Static I/O


The static I/O tool is useful for checking the state of pins, or for driving pins. An example is to drive a I/O pin of the DUT high/low to verify that the correct channel has been hooked up to the right pin before using the logic analyzer.

The button has different variations of how it can be used. For example instead of driving it high/low, there’s an option to drive it low when pressed, but leave it tri-stated otherwise – something like this can be very useful to have when a board needs to be remotely reset without interfering with other circuitry.

image

Spectrum analyzer


The spectrum analyzer is quite similar to the FFT view inside the oscilloscope. Some settings like the bins etc. are common to both, but the display options here are better: there are different types of ‘hold’ views to select, as the option for a CZT. Besides the bins and frequencies, the update rates, units, filtering etc are configurable. Like the oscilloscope instrument, this also has the persistence, time-domain, measurements, and marker views.

image

The measurements tab has parameters that are relevant to the frequency domain:

image

Network analyzer

The network analyzer can be used to analyzer transfer functions for different circuits. Waveforms generates a stimulus using the waveform generator, and probes at the output of each DUT measure voltage – allowing the response to be calculated. The start/stop frequencies, amplitude, step size, averaging, settling time and number of samples can be modified. The source of the stimulus can be the ADP3450’s wavegen, or an external source.  Waveforms generates different types of plots: there’s a magnitude/phase, Nyquist, Nichols and FFT view. There are also options to plot the carrier, harmonics, THD etc. 

This example measured the response of a filter network which had a resistance and two inductors.

image

Impedance


The impedance analyzer is quite similar: it uses the wavegen and oscilloscope to generate a stimulus and monitor the response. Like the network analyzer, the frequencies, steps, amplitude, averaging etc. are all configurable. There are many options: Waveforms can calculate the series/parallel reactance’s and resistances, D/Q factor, phase, voltage current etc.

image

I've used this instrument to measure the performance of inductors across frequencies without needing to have a dedicated LCR meter.

Curve tracer


The curve tracer can be used to characterize non-linear devices like diodes and transistors. Since tracing requires a generating a stimulus and measuring the response of the device (voltage/current), it uses the oscilloscope and waveform generator channels. Waveforms allows users to select the type of device (diode, NPN, PNP, N-FET or P-FET), and displays a connection diagram which tells you how to connect the DUT to the analog input/output channels. The range of the voltages generated by the waveform generators are configurable, as well as the number of samples/step size. The frequency of samples is also controllable to trade speed for accuracy. The size of the reference resistor (to measure current) is also configurable.

Here’s it being used to trace the IV characteristics of a diode:

image

I also used it to characterize a N-FET. Since the gate and drain voltages need to be controlled, extra channels are used for this measurement.

image

Besides the standard IV plot, there are fancier graphs too: X-Y 3D plots, and a time-domain plot showing the different voltages/currents for each step of every sweep.

image

Performance & Capture Memory

One of the most significant improvements of the ADP3450 over the AD2 is the increased memory of the capture buffers. The AD2 was limited to a maximum of 16K samples for the Oscilloscope/Logic Analyzer, which made it difficult to analyze data when signals had to be captured over a long duration with high sampling rates. The ADP3450 features a newer & larger FPGA: the XC7Z020 has almost 5Mb of block RAM, in addition to the 512MB of external DDR.

image

At the time of writing this review, Waveforms only has 2 device configurations for the ADP3450, with memory allocation biased towards the logic analyzer or oscilloscope. I haven’t done the math to calculate whether all on-chip memory has been exhausted, but it would be nice to see updates in the future that improve the flexibility of allocation, unlock more memory and offer more options.

image

Here's a screenshot of the record mode capture options with configuration #2:

image image

Waveforms can use a couple of gigabytes of disk space for caching captured data - I noticed that in Record mode, Waveforms appears to write the entire capture to the disk. If I recall correctly, tools like Saleae Logic handle this better by compressing data and storing it in RAM, which avoids un-necessary disk writes. On rare occasions, Waveforms froze when I was using record mode, but I’m not sure whether it was because the ADP3450 was not responding, a large data transfer was in progress, it was busy writing to the disk, or something else. I’ve always liked Waveforms because it’s fast, responsive and never crashes, so I hope that this gets fixed – but on the plus side it doesn’t occur very often.

Based on what the documentation states (that the DDR RAM stores samples in record mode), and what I’ve seen (data being transferred over the network and written to the disk during a capture), I wonder whether there is scope for Digilent to increase the size of the buffer. The computer effectively has unlimited storage, and with almost all computers sporting high-speed SSDs these days (>500MBps write), it should be possible to stream data to the system. In fact, the bottleneck becomes the GbE connection which might cap out at roughly 100MBps. If the onboard RAM is only used for buffering (while transferring as much data as possible to the computer for storage), I think larger captures should be possible. The option for data compression implies that the capture size would depend on the type of data.

Linux Mode


ADP3450 has a Zynq-7000 with two Cortex -A9 CPU cores, and like most Zynq systems it uses them to run Linux. Linux enables a new class of automation, control, internet access.

Switching into Linux mode is quite simple: the option can be selected from the boot mode option in the device manager. Here are some of the logs that are printed over the UART when booting up in Linux mode:

43978436 bytes read in 2791 ms (15 MiB/s)
## Loading kernel from FIT Image at 10000000 ...
   Trying 'kernel@1' kernel subimage
     Description:  Linux kernel
     Type:         Kernel Image
     Compression:  uncompressed
     Data Start:   0x10000104
     Data Size:    4615528 Bytes = 4.4 MiB
     Architecture: ARM
     Hash value:   42a98b2de6d4483f78c79f954812c7b081f10022
   Verifying Hash Integrity ... sha1+ OK
     Architecture: ARM
     Hash algo:    sha1
     Hash value:   076900d60a0685731976bdded5744aeb0e5673a9
   Verifying Hash Integrity ... sha1+ OK
   Loading Kernel Image ... OK
   Loading Device Tree to 07ff8000, end 07fff0bc ... OK

Starting kernel ...

Booting Linux on physical CPU 0x0
Linux version 4.19.0-xilinx-v2019.2 (oe-user@oe-host) (gcc version 8.2.0 (GCC)) #1 SMP PREEMPT Tue Mar 9 01:23:27 UTC 2021
CPU: ARMv7 Processor [413fc090] revision 0 (ARMv7), cr=18c5387d
CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
OF: fdt: Machine model: xlnx,zynq-7000
Memory: 479720K/524288K available (7168K kernel code, 250K rwdata, 1744K rodata, 1024K init, 143K bss, 15896K reserved, 28672K cma-reserved, 0K highmem)
Virtual kernel memory layout:
    vector  : 0xffff0000 - 0xffff1000   (   4 kB)
    fixmap  : 0xffc00000 - 0xfff00000   (3072 kB)
    vmalloc : 0xe0800000 - 0xff800000   ( 496 MB)
    lowmem  : 0xc0000000 - 0xe0000000   ( 512 MB)
    pkmap   : 0xbfe00000 - 0xc0000000   (   2 MB)
    modules : 0xbf000000 - 0xbfe00000   (  14 MB)
      .text : 0x(ptrval) - 0x(ptrval)   (8160 kB)
      .init : 0x(ptrval) - 0x(ptrval)   (1024 kB)
      .data : 0x(ptrval) - 0x(ptrval)   ( 251 kB)
       .bss : 0x(ptrval) - 0x(ptrval)   ( 144 kB)
rcu: Preemptible hierarchical RCU implementation.
rcu:    RCU restricting CPUs from NR_CPUS=4 to nr_cpu_ids=2.
        Tasks RCU enabled.
Calibrating delay loop (skipped), value calculated using timer frequency.. 666.66 BogoMIPS (lpj=3333333)
SMP: Total of 2 processors activated (1333.33 BogoMIPS).
CPU: All CPU(s) started in SVC mode.
macb e000b000.ethernet eth0: link up (1000/Full)
IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready

Debian GNU/Linux 10 ADPro ttyPS0

ADPro login: digilent
Password:
Linux ADPro 4.19.0-xilinx-v2019.2 #1 SMP PREEMPT Tue Mar 9 01:23:27 UTC 2021 armv7l

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
digilent@ADPro:~$ random: crng init done
random: 7 urandom warning(s) missed due to ratelimiting

Linux mode allows the ADP3450 to operate as a standalone device, which can be very useful in lab environments where testing is automated. The GbE connection also makes it very easy to share the ADP3450 very easily (in the standalone and network modes) because it doesn't need to be connected to a computer - any user connected to the network can connect to the device. I think that the ability to do this is very essential in work environments where DUTs in a remote lab need to be accessed by multiple users.

In the standard mode, during boot we see:

 

Boot v03.3E
MultiBoot: 0x0000C000
RebootStatus: 0x00480000
ResetReason: 0x00

Press any key for Recovery Mode...
S for Standard Mode
L for Linux Mode

QSPI: 01-20-18-4D-01-80
Programming PL
DDR Check
BootMode 0x01
Loading Standard Mode
PH 0 from: 0x044000 [8] to: 0x134000 [8]
PH 1 from: 0x010000 [34010] to: 0x100000 [34010]
FsblHandoffExit

Running Standard Mode v03.3E
PL done
QSPI: 01-20-18-4D-01-80
AXI-DMA Setup
Setup
MAC: 00-18-3E-03-BE-A9
Running
USB Connect 1
Start PHY autonegotiation
Waiting for PHY to complete autonegotiation.
autonegotiation complete
link speed for phy address 15: 1000
IP :       192.168.1.114
Netmask :  255.255.255.0
Gateway :  192.168.1.1

Scripting

The ADP3450 can be controlled using python scripts that use the Waveforms SDK, but the Waveforms software also has a scripting interface. 

{gallery}Scripting

image

The Help contains the documentation that describes the API used to control, and read back data from the instruments.

image

Waveforms even includes the Qt debugger: breakpoints, variables etc.

image

The interface is very similar to a full-fledged IDE.

Other Digilent Examples

During the course of the review, I focused on features that I tend to use the most. The ADP3450 has a few more features which I did not explore, so I thought that it would be a good idea to review some of the examples that Digilent describes on their website: 

Conclusion

The ADP3450 improves on the capabilities of the Analog Discovery 2 in almost all aspects, allowing Digilent to address a market segment that the AD2 wasn’t capable of servicing. However, don’t write the AD2 away just yet - it offers a lot of value for the price tag and has most of the same features the ADP3450 does in a form factor that’s a lot more portable.

The ADP3450’s hardware upgrades address some of the biggest shortcomings on the AD2 and paired with the same software package (Waveforms), it makes for a very enticing upgrade. A single ADP3450 can replace several lab tools, and the upgraded feature set should allow its users to debug most typical electronics/hardware without requiring any extra equipment.

There really isn’t much to complain about the ADP3450, except maybe the fact that the power brick is big and must be connected for the ADP3450 to work at all. If I’m allowed to be picky and had a wish-list: I would have preferred a USB 3.0 connection (because most laptops don’t have GbE these days), extra/flexible capture memory and real power-supply capability that’s not tied to the digital rails (with a slightly higher output current rating). The network interface of the ADP3450 makes it ideal for lab environments where devices need to be shared and remotely accessed, and Linux mode further extends the ability of the ADP3450 to function as standalone, automated test equipment.

Waveforms is hands down the best USB MSO software that I’ve used: it has many features, but more importantly it’s a pleasure to use because of how stable and fast it is. Digilent has a very good track record when it comes to updating Waveforms and the firmware of the tools – improving the capabilities of existing tools and unlocking new features. The last stable release was a couple of months ago, but multiple beta releases have been made since then with improvements and fixes, which leads me to believe that will only get better in the future.

Anonymous