ORx Path source boot error

Hi Adi :

We use external LOL calibration and tracking to eliminate dc effect.

It seems tx1 dc eliminated works fine but tx2 eliminated is not working.

Due to the external switch only connect to orx1

So we try to set obsRx source from MYK_ORX1_ORX2 | MYK_SNRXA_B_C to MYK_ORX1

AD9371_OF_PROP("adi,obs-settings-obs-rx-channels-enable", &phy->mykDevice->obsRx->obsRxChannelsEnable, MYK_ORX1_ORX2 | MYK_SNRXA_B_C);

AD9371_OF_PROP("adi,obs-settings-obs-rx-channels-enable", &phy->mykDevice->obsRx->obsRxChannelsEnable, MYK_ORX1);

But to system boot have the following error code, when we change obsRx source from MYK_ORX1 to MYK_ORX1_ORX2 | MYK_SNRXA_B_C , the error disappear

Can someone give me some suggestion?

Many thanks

---------------------error code -----------------

5.803192] MYKONOS_setRfPllFrequency: obspllLock=15
[ 5.808349] MYKONOS_checkPllsLockStatus: pllLock=15
[ 14.367478] ERROR: 364: MYKONOS_waitArmCmdStatus() exited due to ARM error for the desired ARM opcode
[ 14.387898] ERROR: 282: Unknown error was encountered.
[ 14.403907] ad9371 spi1.0: calsDoneLifetime 0x5DFF, calsDoneLastRun 0x0, calsMinimum 0x4F, initErrCal 0x9, initErrCode 0x7
[ 14.435672] ad9371 spi1.0: initCalsCompleted 0x0
[ 14.440479] ad9371 spi1.0: errorWord 0x2, statusWord 0x0
[ 14.445809] ad9371_init_cal: statusWord=0
[ 14.449896] ad9371 spi1.0: ArmCmdStatusByte 0xE

  • +1
    •  Analog Employees 
    on Jan 4, 2021 3:13 AM in reply to weiting1115

    When using single ORX for calibrating both TX1 and Tx2 you need to configure the txObsSelect as described in user guide. Hope you are using a GPIO pin for the external switch control.

    From User  Guide.

    If both Tx channels are used (txChannels = TX1_TX2); however, only the ORx1 channel is used
    (obsRxChannelsEnable = MYK_ORX1), then the ARM configures Tx1 to calibrate using ORx1, and Tx2 to also calibrate using ORx1, which also applies vice versa if ORx2 is selected. This approach is illustrated in Figure 36. In this case, the calibration must advise the user which path it wishes to calibrate. It does this through the GPIO pin configured for the txObsSelect output. The user must configure the txObsSelect output before the external LOL initialization calibration is called (see the ARM GPIOs section). By default, the txObsSelect output indicates that the Tx1 output is to be fed back to the required ORx with a low output on this pin, while a  output indicates that Tx2 is to be fed back. Again, the initialization calibration cycles through both calibrations consecutively; therefore, it is important that both paths are active and that the request to toggle the external switch is responded to.

  • Hi Vinod:

    Thanks for your kindly reply.

    My problem is our design's physical wire is always connect to ORX1 using external switch

    (controlled by fpga, not txObsSelect output gpio) connect to Tx1 and Tx2,

    When the  obsRxChannelsEnable =MYK_ORX1_ORX2 ,there is no calibration error,

    but why we change   the obsRxChannelsEnable  to MYK_ORX1 , the calibration has error?

    Thanks a lot

  • +1
    •  Analog Employees 
    on Jan 4, 2021 12:49 PM in reply to weiting1115

    The txObsSelect output gpio tells the user that which TX(TX1 or TX2) needs to be connected to ORX1 input as the correct path needs to be connected for external LOL to run. So you have to use that GPIO pin for external switch control.