Skip to content

parameter measurement

Andreas Biri edited this page Aug 18, 2021 · 19 revisions

RocketLogger Performance 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 Consumption

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.

Frequency Response

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.

Noise Floor

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.

Burden Voltage 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.

Range Switching Time and Burden Voltage

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.

Input Leakage Current

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).

Input Capacitance Measurement

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

DC Accuracy Measurements

  • 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

Digital Input Propagation Delay

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.

Range Switching Thresholds

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.