AnsweredAssumed Answered

MSO7054A: looong re-arm time

Question asked by Angelillo on Jul 26, 2011
Latest reply on Sep 12, 2011 by Angelillo
Dear all,

I have written a Matlab program which synchronizes the oscilloscope with a laser source. The oscilloscope reads from a PMT tube. The laser is triggered via a signal controlled by the program. This signal triggers the oscilloscope as well. I am surprised because the oscilloscope takes about 1 second to rearm for the following acquisition. This is the piece of code:

"
clear all

vMSO7054A = visa('agilent','TCPIP0::*.*.*.*::INSTR');
set (vMSO7054A  , 'InputBufferSize', 4096*2);
fopen(vMSO7054A);

% Configuration
%RESET
fprintf(vMSO7054A, '*RST');
fprintf(vMSO7054A, '*CLS');
%ACQUIRE
fprintf(vMSO7054A, ':ACQuire:DAALias DISable');
fprintf(vMSO7054A, ':ACQuire:MODE RTIMe');
fprintf(vMSO7054A, ':ACQuire:TYPE NORMal');
%TIMEBASE
fprintf(vMSO7054A,':TIMebase:RANGe 1E-6');
fprintf(vMSO7054A,':TIMebase:REFerence LEFT');
%TRIGGER
fprintf(vMSO7054A, ':TRIGger:MODE EDGE');
fprintf(vMSO7054A, ':TRIGger:SWEep NORMal');
fprintf(vMSO7054A, ':TRIGger:EDGE:COUPling DC');
fprintf(vMSO7054A, ':TRIGger:EDGE:LEVel 2.5, EXTernal');
fprintf(vMSO7054A, ':TRIGger:EDGE:SLOPe POSitive');
fprintf(vMSO7054A, ':TRIGger:EDGE:SOURce EXTernal');
%WAVEFORM
fprintf(vMSO7054A, ':WAVeform:BYTeorder LSBFirst');
fprintf(vMSO7054A, ':WAVeform:FORMat BYTE');
fprintf(vMSO7054A, ':WAVeform:POINts:MODE RAW');

for i=1:1:10
    armed = 0;
    tic % Start timer
    fprintf(vMSO7054A, ':SINGle' );
    while (armed == 0)
        fprintf(vMSO7054A, ':AER?' );
        armed = str2num(fscanf(vMSO7054A, '%s'));
    end
    toc % Stop timer

    % TRIGGER SIGNAL GENERATION
    calllib('HIDTriggerWin32','generateTrigger',deviceHandleTrigger.Value);
    % WAVEFORM DOWNLOAD
    fprintf(vMSO7054A, ':WAV:SOURCE CHANnel1');
    fprintf(vMSO7054A, ':WAVeform:DATA?');
    c = fscanf(vMSO7054A, '%c', 1);
    n = fscanf(vMSO7054A, '%c', 1);
    L = fscanf(vMSO7054A, '%c', str2num(n));
    wave = fread(vMSO7054A, str2num(L), 'uint8');
    c = fscanf(vMSO7054A, '%s');
end
fclose(vMSO7054A);
delete(vMSO7054A);
clear vMSO57054A
"


This code makes 10 consecutive acquisitions. The tic - toc section measures the elapsed time to rearm the oscilloscope. Running it, yields:

"
>> testMSO7054A
Elapsed time is 1.044749 seconds.
Elapsed time is 0.992087 seconds.
Elapsed time is 1.077041 seconds.
Elapsed time is 1.075111 seconds.
Elapsed time is 1.074703 seconds.
Elapsed time is 1.077180 seconds.
Elapsed time is 1.076097 seconds.
Elapsed time is 1.075917 seconds.
Elapsed time is 1.073474 seconds.
Elapsed time is 1.074345 seconds.
>>
"


What could be the problem? Am I doing something wrong with the code? Maybe a firmware update would solve the problem?

I have adapted this piece of code for use with a MSO54832D (older scope) and it seems to work as expected:

"
>> testMSO54832D
Elapsed time is 0.253841 seconds.
Elapsed time is 0.012455 seconds.
Elapsed time is 0.010355 seconds.
Elapsed time is 0.010664 seconds.
Elapsed time is 0.009848 seconds.
Elapsed time is 0.011069 seconds.
Elapsed time is 0.011586 seconds.
Elapsed time is 0.009658 seconds.
Elapsed time is 0.012519 seconds.
Elapsed time is 0.010711 seconds.
>>
"


Thank you for your interest and sorry for my English.

Best regards,

Ángel.  

Outcomes