-
Notifications
You must be signed in to change notification settings - Fork 4
parameter measurement
Note: This description of the parameter measurement is based on the Matlab data processing support included with RocketLogger version 1.x.
As of RocketLogger version 2.0.0, the MATLAB support is deprecated and the RocketLogger Python Support Library is recommended instead for processing measurement data files.
Power the RocketLogger and the BeagleBone from the SMU (5V, 4W measurement at
the RocketLogger) over the 5V_VDD
pins. Supply an input current of 500 mA to
both current channels and an input voltage of 5 V to all voltage channels.
Start a measurement at 64 kSPS and measure the current draw from the SMU at a
high sample rate (900 SPS). Average the measurements on a PC.
Use a waveform generator to generate a sine frequency-sweep with a fixed
amplitude. Signal generators usually have an output impedance of 50 Ω and
calculate their amplitudes for a matched output, this allows us to use them
for both current (/50 Ω) and voltage sourcing (x2). The frequency change should
be logarithmic from 10 Hz to 100 kHz and last for about 20 s. Sample the
signal(s) with the RocketLogger at 64 kSPS and isolate a single sweep in the
Matlab data. Use rl_aux_freq_resp(data, dcValue)
to plot the frequency
response.
Connect the voltage channels to the RocketLogger GND
and disconnect the current
probes. Capture 10s of data at 1 kSPS and import it into Matlab. Calculate the
RMS noise floor using std(data_rld.get_data({'I1L'}))
. Note that you may get
additional 50 Hz interference if you connect the probes.
Use figure; rl_aux_plot_psd(data_rld.get_data({'I2L'}), 1e3);
to check the
spectrum of the measurement.
Perform a 4 terminal resistance measurement: Use a SMU to source a current of 500 mA into the current range of the RocketLogger. Measure the voltage across the SMA connector terminals with the SMU or a multimeter.
To generate the current transients, you may use a lab PSU and a resistor. Choose the voltage and resistor to get the desired target current. Try to keep the voltage between 0.5 V and 5 V to avoid problems with the lab PSU and respect the power limit for the resistor (typ. 250 mW, P=V^2/R). A relatively reliable way to get the actual transient is to connect/disconnect the lab plugs manually. Still, some of the generated transients will not be perfect steps and the burden voltage will reflect this (repeat the measurement until you get a clean transient). Use an oscilloscope to measure the burden voltage at the SMA connector. Limit the bandwidth to 20 MHz and use the high resolution mode of the oscilloscope to get a clean measurement.
Use the SMU to source 5.5 V (analog) or 6 V (digital) to the voltage channel and perform the current measurement (10 nA range). Directly connect the RocketLogger probes to the SMU, don't use the SMU cables. Don't touch the SMU, the RocketLogger, or the cables. If the SMU hits the source limit, it may be caused by interference due to the connection (especially if you are using long cables).
Use an oscilloscope with a high-speed (and low-capacitance) probe (e.g.
TAP1500) and a resistor to measure the rise time. The probe will also act as a
1 MΩ pull-down resistor to GND, so you only need to suddenly connect the
voltage channel to a voltage source (PSU). Measure the 0 % to 63.2 % rise time
with the oscilloscope, the high value will be V_in = V_src * R_src / (R + R_osc)
.
The input capacitance can then be calculated as:
C_in = t_rise * (R + R_osc) / (R_osc * R) - C_osc
Symbols:
V_src: PSU Voltage
R: Resistor between PSU and voltage channel
R_osc: Oscilloscope probe resistance _(to GND)
O_osc: Oscilloscope probe capacitance (to GND)
C_in: RocketLogger input capacitance
-
Calibrate the RocketLogger, zero its offset (use
rl_zero_cal
) -
Wait 24h
-
Run the following dual sweeps on the SMU (source range: auto, delay: 500ms)
- -5.5 V:0.1 V:5.5 V
- -500 mA:10 mA:500 mA
- -100 mA:2 mA:100 mA
- -2 mA:20 µA:2 mA (measure both channels separately)
-
Analyze the data in MATLAB:
v_ideal = rl_cal.gen_dual_sweep_values(-5.5,5.5, 0.1); v_rld = rld('20161108_accuracy24h_v.rld'); v_data = v_rld.get_data({'V1', 'V2', 'V3', 'V4'}); for i=1:4 v_measured(:,i) = rl_aux_average_points(v_data(:,i), 221, 100e-3, 250); v_residual(:,i) = v_ideal'-v_measured(:,i); end rl_aux_pareto_error(v_ideal, v_residual');
ih_ideal = rl_cal.gen_dual_sweep_values(-0.5,0.5, 0.010); ih_rld = rld('20161108_accuracy24h_ih.rld'); ih_data = ih_rld.get_data({'I1H', 'I2H'}); ih_data(:,1) = -ih_data(:,1); for i=1:2 ih_measured(:,i) = rl_aux_average_points(ih_data(:,i), 201, 10e-3, 250); ih_residual(:,i) = ih_ideal-ih_measured(:,i)'; end rl_aux_pareto_error(ih_ideal, ih_residual');
ih_100ma_ideal = rl_cal.gen_dual_sweep_values(-0.1,0.1, 0.002); ih_100ma_rld = rld('20161108_accuracy24h_ih_100m.rld'); ih_100ma_data = ih_100ma_rld.get_data({'I1H', 'I2H'}); ih_100ma_data(:,1) = -ih_100ma_data(:,1); for i=1:2 ih_100ma_measured(:,i) = rl_aux_average_points(ih_100ma_data(:,i), 201, 2e-3, 250); ih_100ma_residual(:,i) = ih_100ma_ideal-ih_100ma_measured(:,i)'; end rl_aux_pareto_error(ih_100ma_ideal, ih_100ma_residual');
il_ideal = rl_cal.gen_dual_sweep_values(-2e-3,2e-3, 20e-6); i1l_rld = rld('20161108_accuracy24h_i1l.rld'); i2l_rld = rld('20161108_accuracy24h_i2l.rld'); il_data(:,1) = i1l_rld.get_data({'I1L'}); t = i2l_rld.get_data({'I2L'}); il_data(1:length(t),2) = t; for i=1:2 il_measured(:,i) = rl_aux_average_points(il_data(:,i), 401, 20e-6, 250); il_residual(:,i) = il_ideal-il_measured(:,i)'; end rl_aux_pareto_error(il_ideal, il_residual');
-
Look at the plot of the offset error vs scale error
Enable the digital input buffer by setting the GPIO_23 (disable) to low.
Connect the digital inputs to a signal generator and generate square waves with
an amplitude of 1 Vpp
around the threshold voltage (set using R401
). Capture
the trigger signal and the output of the digital buffer with an oscilloscope to
measure the propagation delays.
Calibrate the RocketLogger and connect the current inputs to an SMU. Set up a dual linear sweep from -3 mA to +3 mA and capture it with the RocketLogger. Look at the Matlab plots to see the switching points.