Post Go back to editing

High LO leakage during transmission

Category: Hardware
Product Number: ADRV9029

Hi,

Looking for some advice about calibrations on the ADRV9029 device.
We are using a custom board design and transmitting a CW signal. We are using some third party software libraries which are effectively wrappers around the Analog Devices ADRV902x transceiver-based API code, so calls to "adi_adrv9025_" functions.

The issue we have is that we are having unreliable responses to calibrations often seeing LO leakage signal much larger than expected and even getting up to the same level as out CW signal!

Our software does initialization sequences to set up the JESD links and enable the device. It does an initial calibration sequence using a calibration mask to select several of the RX calibrations and then we revert to just having Rx tracking enabled. Prior to enabling the transmission of the CW signal, we apply a TX attenuation level and then run another calibration process choosing ADI_ADRV9025_INTERNAL_PATH_DELAY, ADI_ADRV9025_TX_LO_LEAKAGE_INTERNAL and ADI_ADRV9025_TX_QEC_INIT calibrations. We ensure to stop all tracking whilst running this calibration, and when it returns successfully we restore the tracking state and set the Tx attenuation level again (as we believe it may be altered during the calibration process). We find that as we try different attenuation levels then we get very different LO leakage values. The results are repeatable between power cycles.

Although we don't believe this is a proper, long term solution, we have a work around whereby we apply 0dB attenuation before doing the TX calibrations and then set the desired attenuation level again after. This appears to give acceptable LO leakage values but we don't understand why as we thought the level should not really affect the calibration process?

Here is a few results to demonstrate the sort of LO leakage values we get.

 Tx Calibration with required tx atten Tx Calibration fixed at 0dB for tx atten
bb gain = 0.9 CW @ 464 MHz, LO @ 482 MHz bb gain = 0.9 CW @ 464 MHz, LO @ 482 MHz
tx atten CW LO CW Reflection CW/LO Delta tx atten CW LO CW Reflection CW/LO Delta
0 3 -66 -62 69 0 3 -68 -64 71
-1 2 -69 -42 71 -1 2 -66 -66 68
-5 -1 -52 -49 51 -5 -1 -81 -58 80
-10 -6 -48 -70 42 -10 -6 -76 -53 70
-15 -12 -15 -39 3 -15 -11 -69 -55 58
-20 -16 -43 N/A 27 -20 -16 -66 -62 50


We have also tried running equivalent software routines on the ADRV9029 development board, connected to the Xilinx ZCU dev board. In this scenario the ADV902x linux driver is used and iio function calls are made to configure the transceiver. In this set-up then the LO leakage value always appears to be OK. As far as I can tell the linux driver is not doing anything particularly different...

Tx Calibration with required tx atten
bb gain = 0.9 CW @ 464 MHz, LO @ 482 MHz
tx atten CW LO CW Reflection CW/LO Delta
0 3 -60 -78 63
-1 2 -61 -69 63
-5 -1 -67 -79 66
-10 -6 -75 -84 69
-15 -11 -80 N/A 69
-20 -16 -85 N/A 69

We would appreciate any input you have on this subject from your experience and guidance on what the correct procedure should be.

Thanks

Steve