Post Go back to editing

AD9371 Tx external LOL calibration

Hi all, 

We want to perform AD9371 Tx LO leakage calibration by no-OS driver. 

However, we could find the configuration field as well as in TES GUI. 


please show me how to perform Tx LO leakage by no-OS driver on ZC706.

thanks 

H.A. Hou

  • Look at the cal mask for the MYKONOS_runInitCals function.

    -Travis

  • Hi Travis, 

    In the example headless file, I found the corresponding code, but I can't corresponding External Initial attenuation parameter/field. 

    And based on our experiment, LOL Calibration  performance is associated with the external initial attenuation configuration.  With incorrect configuration, the LOL might be worse than without LOL calibration. 

      /* Please ensure PA is enabled operational at this time */
      if (initCalMask & TX_LO_LEAKAGE_EXTERNAL) {
        if ((mykError = MYKONOS_runInitCals(&mykDevice, TX_LO_LEAKAGE_EXTERNAL)) != MYKONOS_ERR_OK) {
          errorString = getMykonosErrorMessage(mykError);
          goto error;
        }
    
        if ((mykError = MYKONOS_waitInitCals(&mykDevice, 60000, &errorFlag, &errorCode)) != MYKONOS_ERR_OK) {
          errorString = getMykonosErrorMessage(mykError);
          goto error;
        }
    
        if ((errorFlag != 0) || (errorCode != 0)) {
          /*** < Info: abort init cals > ***/
          if ((mykError = MYKONOS_abortInitCals(&mykDevice, &initCalsCompleted)) != MYKONOS_ERR_OK) {
            errorString = getMykonosErrorMessage(mykError);
            goto error;
          }
        } else
        xil_printf("External LOL Calibrations completed successfully\n");
      }
    

    Or do you have any other suggestion ? 

    thanks 

    H.A. Hou 

  • Are you providing a feedback path from Tx output back to Orx as explained in user guide for external Tx LOL calibration. If not it can give opposite results.

  • Hi Vinod

    YES.

    With proper configuration in TES GUI and hardware setup as UG-992, TX LOL is suppressed. 

    But in No-OS driver, it's no effect even if enabling TX_LO_LEAKAGE_EXTERNAL  flag. 

    So, we're looking for solution in no-OS driver 

    Thanks 

    H.A. Hou

  • Can you try reading back few cal status.

    getEnabledTrackingCals (ref UInt32 enableCalMask) :   Reads back which ARM tracking cals are enabled .

    Mykonos.getTrackingCalState   : Gets the individual tracking calibration active state .

    FYI. You can refer more details on API from TES GUI--> help--Dllhelp.

    Travis will be able to comment more on the NO_OS code

  • No-OS simply implements the API for transceiver control, but I'm not sure what "External Init Attn" references, since the API doesn't explicitly talk about it. can you look at the TES source code to see what that is actually doing?

    -Travis

  • 'External Init Attn' field in TES GUI sets the chip Tx1 and Tx2 attenuation with the help of MYKONOS_setTx1Attenuation and MYKONOS_setTx2Attenuation api functions.

    Can you generate a python script with the working configuration on TES GUI and compare it with your No-OS code initialization . This will give you an idea about what configuration is needed for No-OS code. If this does not work for you, please share the generated python script.

  • Ok, then this isn't anything special. In No-OS just add a MYKONOS_setTx1Attenuation and MYKONOS_setTx2Attenuation call before enabling the tracking cals.

    Once they have completed set the actual attenuation for normal radio operation you want.

    -Travis