As discussed in a previous thread, I am using the function MYKONOS_getObsRxDecPower to monitor our transmit power for use in an AGC mode.
Now that we have started to integrate on our custom board, I've come across a case where the MYKONOS_getObsRxDecPower function is returning 0. Same code, same config, running on the 9375 EVM works as expected.
The header for MYKONOS_getObsRxDecPower says
"If the receiver is disabled during the power measurement, this function returns a 0 value for rx2DecPower_mdBFS"
However, I have all the pin control mode settings set to 0 in the mykonosArmGpioConfig_t structure, so I don't see how that could be the case when comparing EVM operation to custom board operation.
To troubleshoot, I've disabled Dpd, Clgc, Vswr. Rx and Orx Gain control is set to MGC.
I do occasionally get good results, a log is shown below.
I was thus wondering, what might all cases be where MYKONOS_getObsRxDecPower will return a 0?
The readings below are taken at approximately every 500 msec intervals. The input signal is very low, so the 44750 is a realistic value, whereas 0 is not.
obsRxDecPower_mdBFS 44750
obsRxDecPower_mdBFS 44750
obsRxDecPower_mdBFS 0
obsRxDecPower_mdBFS 44750
obsRxDecPower_mdBFS 0
obsRxDecPower_mdBFS 44750
obsRxDecPower_mdBFS 0
obsRxDecPower_mdBFS 44750
obsRxDecPower_mdBFS 44750
obsRxDecPower_mdBFS 44750
obsRxDecPower_mdBFS 44750
obsRxDecPower_mdBFS 0
obsRxDecPower_mdBFS 0
obsRxDecPower_mdBFS 0
obsRxDecPower_mdBFS 0
obsRxDecPower_mdBFS 0
obsRxDecPower_mdBFS 0
obsRxDecPower_mdBFS 44750
obsRxDecPower_mdBFS 0
obsRxDecPower_mdBFS 0
obsRxDecPower_mdBFS 0
obsRxDecPower_mdBFS 44750
obsRxDecPower_mdBFS 0
obsRxDecPower_mdBFS 0
obsRxDecPower_mdBFS 44750
obsRxDecPower_mdBFS 0
obsRxDecPower_mdBFS 0
obsRxDecPower_mdBFS 0
obsRxDecPower_mdBFS 44750
obsRxDecPower_mdBFS 0
obsRxDecPower_mdBFS 0
obsRxDecPower_mdBFS 44750
obsRxDecPower_mdBFS 0
obsRxDecPower_mdBFS 0
obsRxDecPower_mdBFS 0
obsRxDecPower_mdBFS 0
The code for the above log is below and runs in a low priority task. sleeps are in msec.
while(1)
{
if (txEnabled)
{
MYKONOS_setObsRxPathSource(&mykDevice, OBS_RX1_TXLO);
sleep(10);
uint16_t obsRxDecPower_mdBFS = 0;
MYKONOS_getObsRxDecPower(&mykDevice, &obsRxDecPower_mdBFS);
sleep(10);
MYKONOS_setObsRxPathSource(&mykDevice, OBS_INTERNALCALS);
TRACE1(DspTrace::TX_AGC_LOG,"obsRxDecPower_mdBFS %d", obsRxDecPower_mdBFS);
}
sleep(500);
}