Post Go back to editing

ADRV9009 external LO

I have the ADRV9009 eval board and our own RF module working with the internal LO synthesizer.  However, I've run into a problem with enabling the external LO.  Is it correct that all I need to do is change one line in the talise_config.c?

.rfPllUseExternalLo = 1,                /* 1= Use external LO for RF PLL, 0 = use internal LO generation for RF PLL */

After doing changing the above line, the TALISE_RadioOn() function returns an error code = 6. The radio cannot be turned on.  Can you tell me what step I'm missing or doing wrong?

Thank you,

CYoung

  • Yes, that is the parameter to change. Hope you are setting the parameter before Talise initialization.

    How are you using the internal synthesizers for your custom RF module while using external Lo? Note that RF_EXT_LO_I/O pins can be either used as input or as an output. As an output, these pins provide access to the signal generated by the internal RF LO. As an input, these pins allow the user to provide an external LO signal into the device.

    Set the enableExtLoOutput parameter and also select a ext lo output divider value  in the TALISE_setExtLoOutCfg API.

  • I had this problem to. (but I changed this parameter in the IIO-oscilloscope application).

    Your external RF LO must be synchronized with the refclock.

    I use an external signal generator for this. And I connected the 10 MHz output to a PLL with a output frequency of  30,72  MHz.. Ans use this clock as the REF_CLK_IN on the ADRV9009 EVM.

    Make sure that the Rf LO is 2 times the desired frequency.

    The RF LO that is used must be high enough, there is a limitation in the RF input circuit:

  • Yes, I changed that setting in talise_config.c and rebuilt the code.  The entire initialization sequence is run with that setting.  I'm wondering if something else needs to be changed or removed because of the external LO.  The RF_EXT_LO is an input by default, right?

    Thanks,

    CYoung

  • The RF_EXT_LO is an input by default, right? No

    The enableExtLoOutput parameter depends on the extLoOutPowerDown parameter which is by default set to 0.So by default the enableExtLoOutput  is set to 1 which means that the LO output buffer is enabled by default.

    So you have to make enableExtLoOutput parameter set to 0(extLoOutPowerDown=1) in order to operate the RF_EXT_LO_I/O pins in input mode. 

  • Thanks.  What I've found is that I needed to do the following:

    1) Set the parameter rfPllUseExternalLo = 1 in talise_config.c

    2) Use a common reference clock for the two signal generators for the 30.72 MHz ref clock and the external LO

    3) Program the RFPLL to match the desired internal LO produced by the external LO (1/2 frequency)

     

    This works fine with a 4.00 GHz external LO (2.00 GHz carrier). However, the EVM get progressively worse as I increase the frequency.  See the test results below.

    03-18-2019: ADI Evaluation Board with External LO
    REF_CLK = 30.720 MHz @ 5 dBm
    TX Attenuation = 0 dB and RX Gain = 20 dB

    TX1->RX2
    External LO = 4.000 GHz @ 10 dBm -> EVM = -45.4300 dB
    External LO = 4.000 GHz @ 10 dBm -> EVM = -45.5641 dB
    External LO = 4.500 GHz @ 10 dBm -> EVM = -44.9921 dB
    External LO = 4.500 GHz @ 10 dBm -> EVM = -44.8609 dB
    External LO = 5.000 GHz @ 10 dBm -> EVM = -42.8563 dB
    External LO = 5.000 GHz @ 10 dBm -> EVM = -42.9269 dB
    External LO = 5.500 GHz @ 10 dBm -> EVM = -41.5376 dB
    External LO = 5.500 GHz @ 10 dBm -> EVM = -41.3255 dB
    External LO = 6.000 GHz @ 10 dBm -> EVM = NOT USABLE
    External LO = 6.000 GHz @ 10 dBm -> EVM = NOT USABLE

    Why?  Is there something you can suggest?

    Thanks,

    CYoung

  • Have you compared the EVM result with internal and External LO?

    If both are comparable, you can check your frequency range of RF match.

    If both are different, check your Ext LO quality at higher frequencies.

  • With the internal LO, EVM has been tested and is good from 2.0 GHz to 3.5 GHz.  I'm using the ADRV9009 eval board right now, just to avoid any possible hardware issue from our radio board.  I assume the ADI board should be good for that external LO range?

    I'm using the Agilent N5182A signal generator.  It looks clean up to the upper limit of 6 GHz.

  • Did you try measuring Tx EVM directly instead of loopback to Rx?

  • Are you still facing this issue?

    Hope you are running the init and tracking (QEC, Internal LoL, External LoL) cals, when you are changing Ext LO frequency from 4 to 5 GHz or 5GHz to 6 GHz.

  • hi  

    What do you mean by running the init and tracking for internal lol, when there is an external lo at the input?

    Actually I am using adrv9009 and I want to use the external Lo as input but I am getting the calibration error. I am using no-os and adrv909 eval board with zc706. 

    All I know about using the external Lo is that there is a parameter in the talise_config.c file called rfPllUseExternalLo, When I set its value to zero it means I am using internal Lo and things work fine but when I set its value to one, it means I am using external Lo and this is when the calibration times out error appear.

    I thing I am missing something very obvious during the configuration but I don't know what?

    Can you just tell me what is the procedure (using no-os driver) for enabling the external Lo as input for ADRV9009?

    What I've found is that I needed to do the following:

    1) Set the parameter rfPllUseExternalLo = 1 in talise_config.c

    2) Use a common reference clock for the two signal generators for the 30.72 MHz ref clock and the external LO

    3) Program the RFPLL to match the desired internal LO produced by the external LO (1/2 frequency)

    I have followed these three guidelines using no-os driver but I got no success and things are stuck at calibration.

    Thanks

     Bila