Experimentation with Analog Devices ADALM2000

ADALM2000 Active Learning Module

Analog Devices offers a small electronics test bench designed for educational use called an ADALM2000 (M2K) Active Learning Module .

The small module offers 9 instruments suitable for breadboard experiments using a USB port along with its Scopy software tool (suitable for Windows, Linux, and MacOS):

  1. Oscilloscope
  2. Spectrum Analyzer
  3. Network Analyzer
  4. Signal Generator
  5. Logic Analyzer
  6. Pattern Generator
  7. Digital IO
  8. Voltmeter
  9. Power Supply

The M2K hardware and supplied open-source Scopy software tool are part of Analog Devices university program which currently includes about 70 electronics labs. Each lab includes a few interrelated circuits for breadboard with wired parts taken from their optional ADALP2000 parts kit, and thoughtful discussion – most come with simulation on LTSpice, and Fritzing breadboard layout with supporting downloadable files also.

First Experiment: Unity Gain Follower

I started with Activity 1 Simple Op Amps where the student builds a Unity Gain Follower from an OP97 op-amp. My setup is shown in image below with Scopy, LTSpice, and fritzing tools on my PC screen.

ADALM2000 Active Learning Module with Breadboard and Software Tools
ADALM2000 Active Learning Module with Breadboard and Software Tools

In this activity we use the M2K’s 2 power supplies, a signal generator, and 2-channel oscilloscope. Overall my experience was easy, quick, lightweight and quiet. Not like my lab bench Tektronix scope, Rigol waveform generator and bench power supply.

During layout of op-amp and connections I found that my breadboard did not have full length power rails as documented in the fritzing supplied unity_gain_follower-bb.fzz file. The issue was easily resolved by switching to a different breadboard virtual parts pin: Full+ versus Full in fritzing parts bin. I redesigned the layout slightly in fritzing to match my breadboard. My updated .fzz file is available for download at the end of this post.

Note: I used a clothes pin to clamp all the wires used from my M2K module. This helped keep the wires more manageable and off the breadboard. Also, I put unused wires from my M2K into a small parts bag to help keep their contacts dirt- and dust-free while on my bench.

LTSpice Circuit Notes

The supplied LTSpice simulation worked as supplied in the ADI University Program. I really liked that all the M2K connections were labeled in the Spice circuit: +1/-1 for oscilloscope channel 1, +2/-2 for scope channel 2, V+/V-/Gnd for power supplies, and W1/Gnd for signal generator channel 1. Yet, I did find that the original Transient command “.tran 10m” was limiting.

In the figure below you can see that I changed the .tran command to include a few features such as a parameter for frequency control and a step suitable for FFT analysis along with two commands to improve simulation accuracy. Also the op-amp used in the spice circuit was an OP27, not the OP97 as used in the lab exercise. So I created a new OP97 spice model and symbol for the circuit.

LTSpice simulation of OP97 op-amp
LTSpice Simulation of OP97 Unity Gain Follower Circuit: Input V(w1), Output V(+2), Difference V(+2)-V(w1) and FFT on Input V(w1)

ADI does not supply an OP97 part for LTSpice, so I created a new LTSpice OP97 part starting from the OP297 spice macro-model. I choose this model because the slew rate and other performance parameters should be the same as the OP97. The OP297 part is just two OP97 op-amps in one industry-standard 8-lead SOIC package .

I created the op-amp symbol starting from LTSpice’s opamp2 component, and linked it to my spice model using a .INC statement in the circuit schematic. I used Analog Devices SPICE Models web site to find the best starting point for my new OP97 op-amp simulation – the OP297. In the spice model I simply changed the .SUBCKT line’s device name in the OP297.cir file to be OP97. I saved the updated file to read op97viaOP297.cir model following an instructable I previously published here: How to Use a Chip Vendor Op-Amp Model in LTSpice

Document Experimental Results

One of the last steps in the instruction set for the unity gain follower activity was to document my results. I used Scopy to capture three traces on the oscilloscope:

Scopy Oscilloscope View
Scopy Oscilloscope Traces for OP97 Unity Gain Follower: Input, Output and math (Output – Input)
  • Channel 1 (Signal Generator +input on OP97 pin# 3)
  • Channel 2 (Output from OP97 pin# 6)
  • Math 1 (Channel 2 – Channel 1, showing near zero difference between input and output)

From the scope results we can confirm that the OP97 op-amp (using the OP297 spice model) configured as a unity gain follower provides an output signal that is nearly the same as the input signal for a frequency f of 1 kHz and voltage V of 3 Volts pk-pk. Small differences between input and output can be seen in the green math plot. I think the fidelity of the out signal tracking the input signal looks very similar to the LTSpice simulation given a slew rate range of 1. to .2 V/us.

Slew rate is defined as:

slewrate = 2 {pi} f V

Where:
f is the frequency in Hz
V is the voltage in Volts pk-pk

slew rate calculation
Slew Rate predicts limit of 7,958 Hz for faithful reproduction of input signal

Try the hyperphysics Op-am Slew Rate calculator to see that the OP97 part would not be useful in the audio signal range at 3 volts pk-pk. The part is ideally designed for instrumentation amplifiers, log amplifiers, photodiode preamplifiers, and long term integrators.

Slew Rate for OP97 Unity Gain Follower Over the Full Audio Spectrum

In this section I use the M2K Signal Generator’s Buffer feature to load a wave file that sweeps audio from 20 Hz to 20 kHz using Adobe’s Audition “Generate Tones” effect. The audio file is available for download at the end of this post: SweepAudio20Hz20kHz.wav

Scopy Signal Generator Setup Using a Swept Audio Tone Wave File from 20 Hz to 20kHz

Youtube video showing results…

Video – M2K Oscilloscope for OP97 Unity Gain Follower: Input (Orange), Output (Purple), Difference (Green), Audio Swept from 20 Hz to 20kHz

Plot Charts Using Python from M2K CSV Export File

Scopy offers a “print scope screen” option and an “Export Traces to CSV” file. I created a Python script to read Scopy export CSV files to generate plots using the scipy matplotlib, fftpack, and signal.butterworth libraries called M2KScopePlot.py.

The program has flexible input controls and an optional math class for FFT and Butterworth filters. The optional math class is designed to be customizable for any math to be applied to Scopy Oscilloscope traces. Output includes the plot as well as a text file showing what selections were made to create the plot.

Plot Generated Using Python M2KScopePlot.py Script based on scipy matplotlib and fftpack from Scopy Export CSV File
Recap of plot selections:
     Program: M2KScopePlot: v1.01, August 2 2019
     Plot CSV text file data generated by ADALM2000 Active Learning Module
     Today's date: Wednesday, September 04 2019
     File selected: .\TestData\Lab2.csv
     CSV data file generated on: Wednesday, July 24 2019
     Scopy Version (48fb6a9): v1.06, May 24 2019
     Plot title: M2K Oscilloscope [Nr of samples: 8000, Sample rate: 1e+06]
     List of 'Y-axis' data channels selected to plot: CH1(V), CH2(V), M1(V)
     Custom FFT Plot using: CH1(V), with dataset reduced by a factor of: 200
     Plot size selected: (8.0, 8.0) in inches
     Plot data saved to file: .\TestData\Lab2.png
     Message queue saved in file: .\TestData\Lab2.txt

Opps, My Scopy Software Will Not Respond

At two points in my experimentation, the scopy software tool stopped working. There was a message in the scopy tool title bar saying something like “Not Responding” and no tool menu or setting menu options would work. One quick cure was to reinstall scopy app. But on one occasion, a scopy reinstall did not fix the problem. I was able to easily resurrect scopy with these steps:

  • remove scopy software,
  • remove or renaming the C:\Users\Ron\AppData\Roaming\ ADI configuration directory,
  • reinstall USB drivers over the old ones by running PlutoSDR-M2k-USB-Drivers.exe, and finally
  • reinstall scopy with installation file scopy-v1.0.6-Windows-setup.exe.

References

ADALM2000 (M2K) Active Learning Module

ADALP2000 parts kit Parts and Breadboard designed for ADALM2000 Based Lab Activity

ADALM2000 Based Lab Activity Material, Electronics I and II

LTSpice Circuit Simulation Tool

Fritzing Breadboard Circuit Layout Tool

How to Use a Chip Vendor Op-Amp Model in LTSpice by Ron Fredericks, Technologist at BiophysicsLab.com

ATI’s SPICE Model Design Center A collection of SPICE simulation models for Analog Devices’ products

Op-amp Slew Rate with flexible calculator on hyperphsics web site

M2KScopePlot GitHub open-source MIT Licensed Python Code by Ron Fredericks, Technologist at BiophysicsLab.com

WPMathPub a WordPress Math Publisher plugin to display mathematical equations within your blog posts, pages and comments by Ron Fredericks, Technologist at BiophysicsLab.com

Downloads

Adobe Audition Generated Audio Sweep from 20 Hz to 20 kHz Wave File Plus MP4 Video Zip File

Fritzing Unit Gain Follower with OP97 and Full Breadboard Zip File

LTSpice Unity Gain Amplifier with OP97 Zip File

Leave a Reply

Your email address will not be published. Required fields are marked *