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):
- Spectrum Analyzer
- Network Analyzer
- Signal Generator
- Logic Analyzer
- Pattern Generator
- Digital IO
- 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
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.
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:
- 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:
is the frequency in Hz
is the voltage in Volts pk-pk
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
Youtube video showing results…
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.
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.
ADALM2000 (M2K) Active Learning Module
ADALP2000 parts kit Parts and Breadboard designed for ADALM2000 Based Lab Activity
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
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