Quad-SMU
AD5522 Based 4 Channel Parameter Source Measure Unit
The Blog for this project (not yet)
The
Schematics, PCB files, and Simulation
models are here (not yet)
Youtube Video on this project (not yet)
Introduction
As I discuss in the DIY-SMU project, SMUs are
really useful. But really expensive. Evan a low voltage SMU is
expensive. How about a 4 channel, low voltage SMU for about $250
parts cost? Analog Devices AD5522 to the rescue. Analog calls it a
PMU (Parametric Measurement Unit) and it is typically used for IC
DC parametric testing. Since it has bipolar current and voltage source,
and current and voltage measure capability, I call it an SMU. This
IC is a 4 channel, 4 quadrant SMU with the following capabilities:
- Four channels, all independent controls
- 4 quadrant SMU
- Force V or Force I
- Measure V or Measure I
- 16b DACs for Force, Clamp Hi and Low, and
Compare Hi and Low
- 16-20b ADC, external to AD5522
- Current ranges: ±5 μA, ±20 μA, ±200 μA, and
±2 mA
- High current range up to ±50 mA
- Voltage range: +/- 11V
- +/- 15V power supplies
- Group floating: common ground. Ground error
(crosstalk) is minimized with independent DUT_GND
sensing.
- Small enclosure
- Touch LCD front panel
- USB SCPI interface
- Plug-in screw terminals
- 5 pins per channel
- 2 force, 2 measure, 1 guard
- Arduino controller
- Open source HW and SW
What would you do with such a thing?
- 1-4 channel curve tracer. 4 channels allow
transistor matching
- Gate / Base / Grid drive for power device
curve tracer.
- Low current measurements
Here is the AD5522 Quad SMU IC block diagram from
Analog Devices, showing just one channel.
At Teradyne in 2007-2008 I was hardware lead on a DPS or Device
Power supply product. This beast was a 256 channel(!!!),
water-cooled, power supply with independent DACs and ADCs
for each channel. It used 256 of another Analog Devices IC, the
AD5560, a single channel Device Power Supply. This part is similar
in architecture to the AD5522. I became very familiar with the
AD5560. These 2 parts share a similar architecture: several 16b
DACs, current and voltage ranging, power stages and similar
current ranging.
The AD5522 IC is available with two package options: Pad-up
and Pad-down. It is also available on two evaluation board, one
for each package. At this time (10/2024) Mouser has 133 pad-up
boards and 7pad-down in stock. Digikey has no Eval boards in
stock. Digikey has about 100 of each of the ICs. Mouser has 900
pad-up ICs and a few pad-down.
I have one of the AD5522 pad-down eval boards. I tested it with
the ADI evaluation software, and it works well. I came up with a
PC board design that uses an eval board. Most of the required pins
are available on various headers. A few additional wires, headers
and modifications may need to be soldered to the eval board.
The AD5522 has the following on-chip:
- 4x 16 bit force DACs, one per channel
- 4x 16 bit offset and gain cal registers
- 4x Hi and Lo 16 bit Clamp DACs and Compare
DACs
- V measure and I measure processing and
multiplexers
- Low current range shunt resistors
- Power amplifier for up to 80mA
- SPI Interface
The evaluation board adds the following:
- Precision voltage reference
- 16b ADC, single channel
- Cypress CPU with USB (no plan to use)
- 30 pin dual-row header for the control
interface.
- Various other headers and jumpers
- Small prototyping 0.1" grid
- +/- 15V, +5V power inputs
- 10 (inconvenient) SMA connectors
The carrier board and enclosure requires the
following:
- Arduino processor with USB
- 4 channel analog MUX for eval board ADC
- 4x User I/O connectors
- +/- 15V, +5V floating power with good
output filtering.
- +5V Grounded power for CPU, LCD
- TFT Touch Screen
- Knob(s) and buttons
- AC input
The rules about using and buying evaluation
boards are more restrictive than other (SparkFun, Adafruit, Ali
Express...) boards. Evaluation boards built by semiconductor
companies are designed and intended for protyping and evaluation
purposes only, and are not for building products for sale. These
are sometimes loss-leaders, meaning that they are sold at a loss
in order to help engineers design in their devices. Quantity
purchases are usually limited to a few units per month. Building
DIY products is somewhere in the grey zone, and unless you try
to buy more than a few per month, shouldn't be a problem. Now
that the ICs are readily available, and if this thing takes off,
I would build a proper board around the IC and eliminate the
eval board.
Here is the EVAL-AD5522EBD (D for down) Eval board.
Design
Since the core functionality of the SMU is
defined by the AD5522, the project has some hardware, but is
mostly firmware development
- Controls for all parameters
- Touch screen UI and controls
- SCPI interface
- Calibration firmware and Python code
- Packaging
Control
For SPI data isolation. I like the Silicon Labs
Si86xx series parts. For this design the 6 channel part with 5
signals in one direction and one return signal will do: Si8661.
had supply issues until late 2022, the ADUM261 is a substitute, but
needs an SOIC-16W wide footprint.
The power needs of this project are minimal. A few tens of
milliamps of +/- 15V, and +5V. A small 1 watt, +5V to +/-15V DC-DC
provides the +/-15V as well as the required isolation. A small +5V
regulator makes the +5V. I have been bitten by the common-mode switching noise of DC-DC converters
so to keep noise low, a common mode filter and a .01uF safety cap
should help.
Here is a proposed layout in a Hammond Clamshell box, 1598D, about
8"x7"x2.4". The AD5522 eval board is below the main board and so
is hidden. The +/- 15V power supply goes in the empty space. The
front and rear panels would be custom designed sheet metal and
built by PCBWay or other PCB manufacturer. The LCD is a Nextion
320x240 touch screen. Encoder knobs and buttons would mount above
the I/O connectors.
CPU
For the CPU I haven't decided yet. It needs nothing special: USB,
SCPI library, Fan PWM, serial port for the Nextion display, EEPROM
for Cal. A basic Arduino could do the job, Currently am
considering one of the SAMD21's like the Adafruit ItsyBitsy M0 at
$12. If Teensy is used, the 4.x is the only available one.
Display
There is a fair amount of stuff to display, lots of parameters.
So I plan to use a 480x320 TFT LCD. Leaning towards Nextion
to get easy touch.
Firmware
The ADI GUI software
that comes with the eval kit works well. Unfortunately, like most
eval board software, it comes with no source code, no .DLL, and no
way to use it other than with the the GUI provided. Of course,
there is no source code for the Cypress embedded processor either.
So you are on your own to create the low level and high level code
to control this very complex IC. Oh well. At least I can hook up a
logic analyzer to the SPI bus to see what the register bangs are,
in case I get stuck. Better than nothing. I'll quit whining and
start coding.
In addition to lots of low level and calibration code needed, here
are the user controls:
- Encoder and L-R buttons to set voltages,
currents
- ON/OFF master and per channel, with color
LEDs
- Button per channel to select screen
Here are the screens:
- Top level: Showing Force and Measure for
all 4 channels. Master ON/OFF
- Channel view and control: showing all
details for each channel, scroll through the channels.
- Keypad for numeric entry
- Plot... not Nextion's strong point
Calibration
There is a lot to calibrate: 5 current ranges and
1 voltage range on each of the 4 channels, source and measure,
offset and gain, and maybe clamps. That's 4 x (5+1) x 2 x 2 = 96
cal factors, not including Clamps. I plan to use the same approach
I used on DIY-SMU. An HP34401A DMM and some precision resistors,
with a Python program to run it all.
The good news is that there are provisions on the AD5522 chip to
output each channel to a master measurement system for
calibration. That should minimize the amount of external manual or
automatic switching needed. These are the SYS_FORCE and SYS_SENSE
signals on the IC.
SCPI Control
For SCPI control, I plan to
follow the DIY-SMU project and use the https://github.com/Vrekrer/Vrekrer_scpi_parser
library. Forse and clamp settings for all channels, measure I
and V for all channels. Temperature monitoring.
10/2024 Update
I got the evaluation board
working again, and tested some of the features. I was able to
hand-calibrate a couple of voltage outputs. Using a logic analyzer (LA1010), I
could view the SPI transactions on the Eval board. I dug into
the register descriptions, and was able to understand most of
the bit fields. I wrote some Arduino code to drive the IC over
SPI, and after a day or so of troubleshooting, was able to get
reliable control. The Eval board had the LVDS termination
jumpers installed. But they didn't interfere with the Evaluation
board even though it wasn't using LVDS. But the Arduino didn't
like them installed. I'm currently using an Adafruit
ItsyBitsy M0 module.
The OLED and barometer module
are just there to see if the SPI OLED interferes with the
AD5522. So far so good.
The initialization for the AD5522 only needs a few magic
numbers to set up the System Control Register (SCR), the PMU
registers, and Force Voltage DAC registers. Conveniently,
the 4 channels can be programmed either all at once,
individually, or in any combination. Without any
calibration, the outputs are pretty accurate. Less than 20mV
offset and +/- 0.2% gain on the +/- 10V range.
I'm working on the carrier board design and layout. It will
contain the processor module, isolation, power conditioning,
and the four output connectors.
Here is the list of tasks for this project.
Evaluation
and Arduino Code
* SPI Details
* Basic Force V
Data structures
Force I
Clamps
System connects
Guard and sense
ADC
Manual Calibration
50mA range
Finish PCB design:
CPU controls
I/O Connections
Mechanical for Eval
Power conditioning
Isolation
Status LEDs
Encode rand button connects
Nextion serial port
Firmware:
Controls
Basic Nextion
Advanced Nextion
SCPI
Alarms, Temperature....
Mechanical
Heat Sink (isolated)
Case base plate
Power Supply
Front panel PCB
Front panel
Rear panel
Dave's Home Page
Last Updated:
10/15/2024