Post Go back to editing

AD9375 NCO shift

Hi, 

Is there any API to shift the NCO in RX or TX mode for AD9375?

I also use the ADRV9009, and this SOC have the API "InitRxNcoShiftCfg" to do that. is there the same for AD9375?

Thank you in advance,

  • Sorry for the delay in response. Somehow missed this post.

    In TX, they can use  TXNCO tone to internally generate test tones. Below is the API to do so:

    MYKONOS_enableTxNco:

    **

    * \brief Enables/Disables the Tx NCO test tone

    *

    *  This function enables/disables a digital numerically controlled oscillator

    *  in the Mykonos Digital to create a test CW tone on Tx1 and Tx2 RF outputs.

    *

    AD9371 has real IF option and NCO is used to shift the signal present at DC to required IF. You need to enable the realIfData  flag to 1 in mykonosRxSettings_t structure.

    You can find the corresponding registers in mykonos_macros.h

  • thanks for reply, but I need more information/detail.

    In TX :
    Is there an "realIfData option " . In fact I would like to shift my TX for a few MHz in normal mode, not in test mode.

    In RX :
    Ok for the realIfData flag, but where can I configure the shift NCO, what API (in ADICmdServerClient) ?
    Is there a detail description to configure the RX NCO?

    Thank in advance

  • Is there an "realIfData option " . In fact I would like to shift my TX for a few MHz in normal mode, not in test mode.

    Not we donot have this option in TX. You need to implement the same in your baseband.

    Ok for the realIfData flag, but where can I configure the shift NCO, what API (in ADICmdServerClient) ?
    Is there a detail description to configure the RX NCO?

    APi is not there. From source code, NCO regsiters are:

    /* Rx NCO Control registers */
    #define MYKONOS_ADDR_CALPLL_SDM_CONTROL 0x17F
    #define MYKONOS_ADDR_RX_NCO_CONTROL 0x190
    #define MYKONOS_ADDR_RX_NCO_CH1_FTW_BYTE_3 0x191
    #define MYKONOS_ADDR_RX_NCO_CH1_FTW_BYTE_2 0x192
    #define MYKONOS_ADDR_RX_NCO_CH1_FTW_BYTE_1 0x193
    #define MYKONOS_ADDR_RX_NCO_CH2_FTW_BYTE_3 0x194
    #define MYKONOS_ADDR_RX_NCO_CH2_FTW_BYTE_2 0x195
    #define MYKONOS_ADDR_RX_NCO_CH2_FTW_BYTE_1 0x196

    RX NCO frequency can be configured using the below equation for RX channel 1:

    F_PFIR_IN= Input sampling rate to the FIR

    RX_NCO_CH1_FTW[23:8]= Register 0x191[23:16] combined with 0x192[16:8], these registers for a 24-bit number that sets the frequency of the NCO according to the below equation.

    F_NCO=(F_PFIR_IN)×(RX_NCO_CH1_FTW[23:8])/65536

    Same calculation goes for RX channel 2.

    Can you please tell us your end application?

  • Hi,

    thanks for reply, 

    I understand how to configure these register : 
    #define MYKONOS_ADDR_RX_NCO_CH1_FTW_BYTE_3 0x191
    #define MYKONOS_ADDR_RX_NCO_CH1_FTW_BYTE_2 0x192
    #define MYKONOS_ADDR_RX_NCO_CH1_FTW_BYTE_1 0x193
    #define MYKONOS_ADDR_RX_NCO_CH2_FTW_BYTE_3 0x194
    #define MYKONOS_ADDR_RX_NCO_CH2_FTW_BYTE_2 0x195
    #define MYKONOS_ADDR_RX_NCO_CH2_FTW_BYTE_1 0x196
    You gave me the equation

    but not these register : 
    #define MYKONOS_ADDR_CALPLL_SDM_CONTROL 0x17F
    #define MYKONOS_ADDR_RX_NCO_CONTROL 0x190

    can you give me the configuration for NCO use and NCO not use for these 2 register?

    The end application is a modem.

  • Are you able to see the required shift in the frequency at the RX output with the suggested changes?

    Why do you need to write to these registers? 

    We donot recommend changing or writing to the registers for this chip. If the realIfdata is set to 1, then the real IF mode is enabled, NCO's are enabled and the corresponding NCO frequencies are set. You just need to enable the flag.

    Refer to the below snippet from mykonos.c: