AnsweredAssumed Answered

Problem calibrating ENA E5071B

Question asked by bronsonUPCT on Jun 1, 2011
Latest reply on Jun 3, 2011 by bronsonUPCT

I am currently developing a software for my University using the MIMO
technology in which, among other things, you can select the number of
transmitters and receivers you want to use (up to 4 in both cases) and
take measurements from your computer. Before taking the measurements,
i have implemented a routine which calibrates automatically all the
possible combinations of Tx/Rx.

The equipment used is the E5071B ENA, the E5091A Multiport Test Set,
and the 11713A Attenuaton/Switch Driver. The ENA is connected to my PC via Ethernet cable, and the Attenuator is connected via GPIB.

My problem is that developing the calibration routine has been so far
a total nightmare. I have tried multiple code variations, and i always
have the same problem, which is as follows:

Let's consider the simplest scenario: 1 transmitter and 1 receiver
trying to calibrate the S21.

We all know that, once calibrated, the ENA should show something along
the lines of this:


which is what happens if i calibrate manually using the ENA front
panel, but instead, every time I calibrate with my software, it shows
something like this:


and it happens every single time i try.

Now let me show you what code i'm using to perform the calibration itself (VB6):

   Y1 = SendCommand_ENA(":DISP:WIND" + P$ + ":ACT")
   Y1 = SendCommand_ENA(":CALC" + P$ + ":PAR" + t$ + ":SEL")
   Y1 = SendCommand_ENA(":CALC" + P$ + ":FORM MLOG")

   'Y1 = SendCommand_ENA(":SENS" + P$ + ":MULT1:PORT3 R1")             ' I've used both this one,
    Y1 = SendCommand_ENA(":SENS" + P$ + ":MULT1:TSET9:PORT3 R1")  ' and this one, but i've found no big differences.
    Y1 = SendCommand_ENA(":CALC" + P$ + ":PAR1:DEF S21")                 ' Depending on the case, it would be S31

    Y1 = SendCommand_ENA(":SENS" + P$ + ":CORR:COLL:CKIT 1")
    Y1 = SendCommand_ENA(":SENS" + P$ + ":CORR:COLL:METH:THRU " + Npan$ + ",1")
    Y1 = SendCommand_ENA(":SENS" + P$ + ":CORR:COLL:THRU " + Npan$ + ",1")
         Call opc_ENA
    Y1 = SendCommand_ENA(":SENS" + P$ + ":CORR:COLL:SAVE")

Actually what i'm using is a big loop which covers all the different channels and traces depending on the number of Tx and Rx (hence P$ which is the channel, t$ which is the trace, and Npan$ which can be 2 or 3), but the code above is essentially what i'm doing in every case. In this case Port3 R1 is used, but it could be either Port3 or Port4.

The trigger is on hold before and after doing the calibration, and the routine handling the Switch works perfectly, so i can't definitely see where the problem is.
Of course i'm also using the command 
y = SendCommand_ENA(":SENS:MULT1:STAT ON") Call opc_ENA
to activate the Multiport.

Any hints or insights on why this could be happening? I've been working on this sole routine for a month now and it's driving me nuts. Any help would be greatly appreciated.

Thanks a lot in advance.