Hi Everyone! Here is a quick update on the Road Test of the Aim-TTi SMU4201 Source Measure Unit (SMU):
Previous blog posts:
Aim-TTi SMU4201 Road Test | Unboxing, First Look and User Interface
Aim-TTi SMU4201 Road Test | Power Supply and Load Experiments
In the last few days I started playing with the remote control capabilities of the Aim-TTi SMU4201 source measure unit.
For the first experiment I chose to characterize a Zener diode. This should not be too hard, as all we need to do is a voltage sweep that covers the operating voltages of the diode.
The diode I used is a Vishay SMAZ5920B-E3 with a Zener voltage of 6.2V, and it is connected to the instrument in a 4-wire configuration:
1. Test Bridge SMU
Aim-TTi has on their website a desktop application for the SMU4201 called Test Bridge SMU. This can be used to control up to two Aim-TTi source measure units (SMU4001 or SMU4201). I decided to give it a try to this application...
The application is fairly easy to install and works relatively well. It allows controlling the instrument in a similar way to the local user interface. It can also display measurement results in various ways.
To set up a voltage sweep for diode characterization, we can set the instrument to Source Voltage (SV) mode with the following settings:
This will do a voltage sweep from -7V to +2V with 100 intermediate test voltages.
Hitting the play button starts the experiment, and after it's done we can download and display the measurement results:
As shown above, we were able to plot the characteristic I-V curve of the Zener diode.
My first impression is the Test Bridge SMU application can be usable for simple experiments. Unfortunately, the application is Windows only and although has some advanced features, it is not something out of ordinary. Also, I as came with programming background, I prefer controlling the instrument directly from scripts.
2. LAN / LXI / Jupyter Notebook
After playing around with the Test Bridge SMU application, I got back to Linux and set up a Jupyter Notebook / Lab environment for automated / scripted experiments with test instruments. Jupyter notebooks allows us to write Python code, play with data and document results interactively. Because of this I think is a great tool to do automated / scripted experiments.
To interact with the Aim-TTi SMU4201 we can use the PyVISA library, that allows controlling lab gear remotely via the VISA, SCPI and LXI standards. To connect to the instrument is easy as:
rm = pyvisa.ResourceManager() smu_4201 = rm.open_resource("TCPIP::192.168.0.132::5025::SOCKET", write_termination = '\n',read_termination='\r\n') smu_4201.query("*IDN?")
After this we can send various commands to the instrument as described in the SMU4000 Series Programming Manual (Issue 1) document. For example this is how we bring the SMU to Source Voltage (SV) mode:
# Reset to defaults smu_4201.write("*CLS; *RST") time.sleep(1) # Configure Source Voltage (SV) mode smu_4201.write("SYSTem:FUNCtion:MODE %s" % "SOURCEVOLTage") smu_4201.write("SOURce:VOLTage:FIXed:LEVel %s" % "1.000 V") smu_4201.write("SOURce:VOLTage:CURRent:LIMit %s" % "10 mA") smu_4201.write("SOURce:VOLTage:TERMinals %s" % "4WIRe")
If we look at the voltage sweep done before, we can see that the step size is constant (~90mV) and the resolution around the breakdown and threshold voltages is a bit low. We could add more data points, but this makes the experiment slower and in the linear region we are kind of wasting buffer space.
To avoid this, with the scripted experiments I wanted to do something a bit smarter, so I came up an "adaptive sweeping" method. What this "adaptive sweeping" does is that start sweeping with a large step size (ex. 0.25 V) and based on the measured values it decreases the step size as needed:
# Turn on the output smu_4201.write("OUTPut:STATe %s" % "ON") time.sleep(1) # Positive voltages pos_idx, pos_volt_set, pos_volt_meas, pos_curr_meas \ = adaptive_sweep(0.0, 1.0) # Negative voltages neg_idx, neg_volt_set, neg_volt_meas, neg_curr_meas \ = adaptive_sweep(0.0, -7.0, -0.25) # Turn off the output smu_4201.write("OUTPut:STATe %s" % "OFF")
This is what the resulting graph looks like:
As you can see the curve is much more smooth, despite having a similar number of data points (112 vs. 100 points). This is achieved by collecting more data points where the change of measured values is faster:
The full Jupyter notebook can be found in the Aim-TTi-SMU4201-Zener-Diode-Characterization.ipynb gist.
To be continued!
Top Comments