Post Go back to editing

Can't set Tx Atten during Initial Calibrations.

Category: Software
Product Number: 9375

We are using the 9375 with DPD.  We are running the initial calibrations in two phases as suggested in the UG.  Sample code shown below...

MYKONOS_setTx1Attenuation(&mykDevice, 3000);  // 3 dB

MYKONOS_setTx2Attenuation(&mykDevice, 3000);  // 3 dB

initCalMask = TX_BB_FILTER |
ADC_TUNER |
TIA_3DB_CORNER |
DC_OFFSET |
TX_ATTENUATION_DELAY |
RX_GAIN_DELAY |
FLASH_CAL |
PATH_DELAY |
TX_LO_LEAKAGE_INTERNAL |
TX_QEC_INIT |
LOOPBACK_RX_LO_DELAY |
LOOPBACK_RX_RX_QEC_INIT |
RX_LO_DELAY |
RX_QEC_INIT;

MYKONOS_runInitCals(&mykDevice, initCalMask);

MYKONOS_waitInitCals(&mykDevice, 10000, &errorFlag, &errorCode);

/* Here we setup our RF chain and turn on the PA as directed in the UG */

MYKONOS_runInitCals(&mykDevice, TX_LO_LEAKAGE_EXTERNAL | DPD_INIT);

MYKONOS_waitInitCals(&mykDevice, 10000, &errorFlag2, &errorCode2);

The problem we discovered was that part of the code that sets up the RF chain and PA calls MYKONOS_setTx1Attenuation(&mykDevice, 16200);, but the command is not accepted.  16.2 dB is the Tx Atten setting our PA needs for nominal operation.  A verify call to MYKONOS_getTx1Attenuation(&mykDevice, &attenInDbx1000); returns 3000.  We tried multiple writes and the same result.  Since we are able to control the Tx Atten later, we found the trick was that the Tx Atten was only controllable before calibrations were started and after RadioOn was called.  So, our solution was as follows.

MYKONOS_setTx1Attenuation(&mykDevice, 3000);  // 3 dB

MYKONOS_setTx2Attenuation(&mykDevice, 3000);  // 3 dB

initCalMask = TX_BB_FILTER |
ADC_TUNER |
TIA_3DB_CORNER |
DC_OFFSET |
TX_ATTENUATION_DELAY |
RX_GAIN_DELAY |
FLASH_CAL |
PATH_DELAY |
TX_LO_LEAKAGE_INTERNAL |
TX_QEC_INIT |
LOOPBACK_RX_LO_DELAY |
LOOPBACK_RX_RX_QEC_INIT |
RX_LO_DELAY |
RX_QEC_INIT;

MYKONOS_runInitCals(&mykDevice, initCalMask);

MYKONOS_waitInitCals(&mykDevice, 10000, &errorFlag, &errorCode);

MYKONOS_radioOn(&mykDevice);  // Allows Tx Atten to be set correctly

/* Here we setup our RF chain and turn on the PA as directed in the UG */

MYKONOS_radioOff(&mykDevice);  // Allows calibrations to run again

MYKONOS_runInitCals(&mykDevice, TX_LO_LEAKAGE_EXTERNAL | DPD_INIT);

MYKONOS_waitInitCals(&mykDevice, 10000, &errorFlag2, &errorCode2);

Do you agree this approach is required and seems to be a good solution to the problem?

Thanks, Chris.

Top Replies

  • MYKONOS_runInitCals(&mykDevice, initCalMask);

    MYKONOS_waitInitCals(&mykDevice, 10000, &errorFlag, &errorCode);

    MYKONOS_radioOn(&mykDevice);  // Allows Tx Atten to be set…