Post Go back to editing

ADRV9026 multi-chip phase synchronization

We have developed a board which uses two ADRV9026 chips to implement 8 TX and 8 RX channels. After the initialization process, we expected to have a fixed, consistent phase relationship between the two ADRV9026 chips, since according to the UG-1727 System Development User Guide, the LO PLLs are phase-aligned at the MCS stage of the initialization. However, we have different phase relationships every time we power up the board. The JESD204B interface works fine and the statuses seem to be OK. What could be the reason for this problem?



corrected typos
[edited by: haimf at 12:31 PM (GMT -4) on 20 Jul 2021]
Parents
  • Please make sure you are enabling the " Enable RFPLL phase sync init and track continuously" in the init data.c.

      

  • Thanks for your prompt reply. You were correct, phase sync init & tracking was not enabled. We enabled it, but unfortunately it is still not working. Is there a way of checking the MCS status to see if the PLL phase sync function was executed properly?

    Thanks!

  • We can only enable/ disable Phase sync and we don't have any function/ API to check the MCS status.

    Could you please share us the detailed logs? 

  • [01] [00011] TRACE | initHWPreMCS> Start PreMCS_Init MAD 1
    [00] [00011] INFO  | setLogLevel> Module [PLATFORM] log level [2]
    [01] [00011] FATAL | adi_board_adrv9025_Program_Phase1> = Start =
    [01] [00012] WARN  | adi_adrv9025_HwReset>  = Start A. HW reset =
    [01] [00013] WARN  | adi_adrv9025_HwReset>  = End A. HW reset =
    [01] [00013] WARN  | adi_adrv9025_SpiCfgSet>  = End A.2. Spi config =
    [01] [00013] WARN  | adi_adrv9025_SpiCfgSet>  = Start A.2. Spi verify =
    [01] [00014] WARN  | adi_adrv9025_SpiCfgSet>  = End A.2. Spi verify =
    [01] [00015] WARN  | adi_adrv9025_PreMcsInit_v2>  = Start Pre Mcs Init =
    [01] [00015] WARN  | adrv9025_MasterBiasSet>  = Start B.set master bias =
    [01] [00217] WARN  | adrv9025_PadConfigsSet> = Start C.Enable pin pads =
    [01] [00218] WARN  | adrv9025_PadConfigsSet> = End C.Enable pin pads res[0] =
    [01] [00218] WARN  | adi_adrv9025_ProfilesVerify> = Start =
    [01] [00218] TRACE | adrv9025_ProfilesVerify> = Start =
    [01] [00219] TRACE | adrv9025_ProfilesVerify> = End res [0] =
    [01] [00219] WARN  | adi_adrv9025_ProfilesVerify> = End =
    [01] [00220] WARN  | adrv9025_ClocksSet>  = Start D.Set device clock hsdig divider =
    [01] [00222] WARN  | adi_adrv9025_Initialize> = Start E.Load PFIRs per channel
    [01] [00262] WARN  | adi_adrv9025_Initialize> = End E.Load PFIRs per channel res[0]
    [01] [00263] WARN  | adrv9025_StreamImageLoad> = Start H.Load stream binary =
    [01] [00476] TRACE | adrv9025_StreamImageLoad> = End  H.Load stream binary res [0] =
    [01] [00476] WARN  | adi_adrv9025_PreMcsInit_v2> Start I.Load ARM binary - DPDCORE & ARM
    [01] [00477] TRACE | adrv9025_CpuImageLoad> = Start cpu 0 =
    [01] [02621] TRACE | adrv9025_CpuImageLoad> = Start cpu 1 =
    [01] [03541] TRACE | adrv9025_CpuImageLoad> = End res [0] =
    [01] [03542] WARN  | adi_adrv9025_PreMcsInit_v2> End I.Load ARM binary - DPDCORE res[0]
    [01] [03542] WARN  | adrv9025_LoadRxGainTable> = Start F.Load gain tables =
    [01] [03730] TRACE | adrv9025_LoadRxGainTable> = End F.Load gain tables res [0] =
    [01] [03730] WARN  | adrv9025_LoadTxAttenTable> = Start G.Load Tx attenuation tables =
    [01] [04072] TRACE | adrv9025_LoadTxAttenTable> = End G.Load Tx attenuation tables res [0] =
    [01] [04073] WARN  | adi_adrv9025_PreMcsInit_v2> = Start K.Write init struct =
    [01] [04073] TRACE | adrv9025_AdcProfilesInit> = Start =
    [01] [04074] TRACE | adrv9025_AdcProfilesInit> = End res [0] =
    [01] [04075] WARN  | adi_adrv9025_PreMcsInit_v2> = End K.Write init struct res[0] =
    [01] [04075] WARN  | adi_adrv9025_CpuAdcProfilesWrite> = Start =
    [01] [04085] WARN  | adi_adrv9025_CpuAdcProfilesWrite> = End res [0] =
    [01] [04085] TRACE | adi_adrv9025_CpuProfileWrite> = Start =
    [01] [04117] TRACE | adi_adrv9025_CpuProfileWrite> = End res [0] =
    [01] [04118] WARN  | adi_adrv9025_PreMcsInit_v2> = Start K.Arm boot =
    [01] [04118] WARN  | adi_adrv9025_PreMcsInit_v2> = End K.Arm boot res[0] =
    [01] [04119] WARN  | adi_adrv9025_PreMcsInit_v2>  = End Pre Mcs Init =
    [01] [04119] WARN  | adi_adrv9025_CpuStartStatusCheck> = Start L.Wait for Arm boot complete. & M.verify Arm checksum =
    [01] [04571] WARN  | adi_adrv9025_CpuStartStatusCheck> = End L.Wait for Arm boot complete. & M.verify Arm checksum =
    [01] [04572] WARN  | adi_adrv9025_PreMcsInit_NonBroadCast> = Start M.verify Arm checksum =
    [01] [04572] WARN  | adi_adrv9025_PreMcsInit_NonBroadCast> = End M.verify Arm checksum =
    [01] [04573] WARN  | adi_adrv9025_PreMcsInit_NonBroadCast> = Start RX TX channels Setup =
    [01] [04591] WARN  | adi_adrv9025_PreMcsInit_NonBroadCast> = Start =
    [01] [04591] FATAL | adi_board_adrv9025_Program_Phase1> = End =
    [00] [04592] INFO  | setLogLevel> Module [PLATFORM] log level [8]
    [01] [04592] TRACE | initHWPreMCS> End PreMCS_Init  MAD 1 res=0, duration = 4581[ms]
    [01] [04593] TRACE | initHWPreMCS> Start PreMCS_Init MAD 2
    [00] [04593] INFO  | setLogLevel> Module [PLATFORM] log level [2]
    [01] [04593] FATAL | adi_board_adrv9025_Program_Phase1> = Start =
    [01] [04594] WARN  | adi_adrv9025_HwReset>  = Start A. HW reset =
    [01] [04595] WARN  | adi_adrv9025_HwReset>  = End A. HW reset =
    [01] [04595] WARN  | adi_adrv9025_SpiCfgSet>  = End A.2. Spi config =
    [01] [04596] WARN  | adi_adrv9025_SpiCfgSet>  = Start A.2. Spi verify =
    [01] [04596] WARN  | adi_adrv9025_SpiCfgSet>  = End A.2. Spi verify =
    [01] [04597] WARN  | adi_adrv9025_PreMcsInit_v2>  = Start Pre Mcs Init =
    [01] [04597] WARN  | adrv9025_MasterBiasSet>  = Start B.set master bias =
    [01] [04598] WARN  | adrv9025_MasterBiasSet>  = End B.set master bias res[0] =
    [01] [04799] WARN  | adrv9025_PadConfigsSet> = Start C.Enable pin pads =
    [01] [04800] WARN  | adrv9025_PadConfigsSet> = End C.Enable pin pads res[0] =
    [01] [04800] WARN  | adi_adrv9025_ProfilesVerify> = Start =
    [01] [04801] TRACE | adrv9025_ProfilesVerify> = Start =
    [01] [04801] TRACE | adrv9025_ProfilesVerify> = End res [0] =
    [01] [04802] WARN  | adi_adrv9025_ProfilesVerify> = End =
    [01] [04802] WARN  | adrv9025_ClocksSet>  = Start D.Set device clock hsdig divider =
    [01] [04804] WARN  | adi_adrv9025_Initialize> = Start E.Load PFIRs per channel
    [01] [04845] WARN  | adi_adrv9025_Initialize> = End E.Load PFIRs per channel res[0]
    [01] [04845] WARN  | adrv9025_StreamImageLoad> = Start H.Load stream binary =
    [01] [05059] TRACE | adrv9025_StreamImageLoad> = End  H.Load stream binary res [0] =
    [01] [05060] WARN  | adi_adrv9025_PreMcsInit_v2> Start I.Load ARM binary - DPDCORE & ARM
    [01] [05060] TRACE | adrv9025_CpuImageLoad> = Start cpu 0 =
    [01] [07209] TRACE | adrv9025_CpuImageLoad> = Start cpu 1 =
    [01] [08131] TRACE | adrv9025_CpuImageLoad> = End res [0] =
    [01] [08131] WARN  | adi_adrv9025_PreMcsInit_v2> End I.Load ARM binary - DPDCORE res[0]
    [01] [08132] WARN  | adrv9025_LoadRxGainTable> = Start F.Load gain tables =
    [01] [08320] TRACE | adrv9025_LoadRxGainTable> = End F.Load gain tables res [0] =
    [01] [08320] WARN  | adrv9025_LoadTxAttenTable> = Start G.Load Tx attenuation tables =
    [01] [08662] TRACE | adrv9025_LoadTxAttenTable> = End G.Load Tx attenuation tables res [0] =
    [01] [08663] WARN  | adi_adrv9025_PreMcsInit_v2> = Start K.Write init struct =
    [01] [08663] TRACE | adrv9025_AdcProfilesInit> = Start =
    [01] [08664] TRACE | adrv9025_AdcProfilesInit> = End res [0] =
    [01] [08665] WARN  | adi_adrv9025_PreMcsInit_v2> = End K.Write init struct res[0] =
    [01] [08665] WARN  | adi_adrv9025_CpuAdcProfilesWrite> = Start =
    [01] [08675] WARN  | adi_adrv9025_CpuAdcProfilesWrite> = End res [0] =
    [01] [08675] TRACE | adi_adrv9025_CpuProfileWrite> = Start =
    [01] [08707] TRACE | adi_adrv9025_CpuProfileWrite> = End res [0] =
    [01] [08708] WARN  | adi_adrv9025_PreMcsInit_v2> = Start K.Arm boot =
    [01] [08709] WARN  | adi_adrv9025_PreMcsInit_v2> = End K.Arm boot res[0] =
    [01] [08709] WARN  | adi_adrv9025_PreMcsInit_v2>  = End Pre Mcs Init =
    [01] [08710] WARN  | adi_adrv9025_CpuStartStatusCheck> = Start L.Wait for Arm boot complete. & M.verify Arm checksum =
    [01] [09161] WARN  | adi_adrv9025_CpuStartStatusCheck> = End L.Wait for Arm boot complete. & M.verify Arm checksum =
    [01] [09162] WARN  | adi_adrv9025_PreMcsInit_NonBroadCast> = Start M.verify Arm checksum =
    [01] [09162] WARN  | adi_adrv9025_PreMcsInit_NonBroadCast> = End M.verify Arm checksum =
    [01] [09163] WARN  | adi_adrv9025_PreMcsInit_NonBroadCast> = Start RX TX channels Setup =
    [01] [09181] WARN  | adi_adrv9025_PreMcsInit_NonBroadCast> = Start =
    [01] [09181] FATAL | adi_board_adrv9025_Program_Phase1> = End =
    [00] [09182] INFO  | setLogLevel> Module [PLATFORM] log level [8]
    [01] [09182] TRACE | initHWPreMCS> End PreMCS_Init  MAD 2 res=0, duration = 4589[ms]
    [01] [09183] TRACE | initHWPhaseSynch> Start MCS_Init MAD1 MAD2
    [00] [09183] INFO  | setLogLevel> Module [PLATFORM] log level [2]
    [01] [09184] WARN  | adrv9025_Init_sync> = Start: 1.Reset FPGA RX&TX, 2.Serdes polarity =
    [01] [09284] WARN  | adrv9025_Init_sync> = End 1.Reset FPGA RX&TX, 2.Serdes polarity =
    [01] [09284] FATAL | adi_board_adrv9025_Program_Syncr> = Start =
    [01] [09284] WARN  | adi_board_adrv9025_Program_Syncr> = Start MCS sequence =
    [01] [09291] TRACE | adi_board_adrv9025_Program_Syncr>  stat1=17, stat2 = 17
    [01] [09291] WARN  | adi_board_adrv9025_Program_Syncr> = End MCS sequence =
    [01] [09291] FATAL | adi_board_adrv9025_Program_Syncr> = End =
    [00] [09292] INFO  | setLogLevel> Module [PLATFORM] log level [8]
    [01] [09292] TRACE | initHWPhaseSynch> End MCS_Init MAD1 MAD2 res=0, duration = 109[ms]
    [01] [09293] TRACE | initHWPostMCS> Start PostMCS_Init MAD 1
    [00] [09293] INFO  | setLogLevel> Module [PLATFORM] log level [2]
    [01] [09294] TRACE | adrv9025_Init_PostMCS>  PLL status= 0x1 , res = 0
    [01] [09294] FATAL | adi_board_adrv9025_Program_PostMCS> = Start =
    [01] [09295] WARN  | adi_board_adrv9025_Program_PostMCS> = Start POST MCS sequence =
    [01] [09295] INFO  | adi_adrv9025_PostMcsInit> = Start adi_adrv9025_RxTxEnableSet: Enable the Rx Channels =
    [01] [09298] INFO  | adi_adrv9025_PostMcsInit> = End adi_adrv9025_RxTxEnableSet =
    [01] [09298] INFO  | adi_adrv9025_PostMcsInit> = Start adi_adrv9025_RxTxEnableSet Disable the Rx Channels=
    [01] [09299] INFO  | adi_adrv9025_PostMcsInit> = End adi_adrv9025_RxTxEnableSet =
    [01] [09300] INFO  | adi_adrv9025_PostMcsInit> = Start adrv9025_RadioctrlInit =
    [01] [09300] DEBUG | adrv9025_RadioctrlInit> = Start adi_adrv9025_RadioCtrlCfgSet =
    [01] [09425] DEBUG | adrv9025_RadioctrlInit> = Start adi_adrv9025_StreamGpioConfigSet =
    [01] [09427] DEBUG | adrv9025_RadioctrlInit> = End adi_adrv9025_StreamGpioConfigSet =
    [01] [09428] INFO  | adi_adrv9025_PostMcsInit> = End adrv9025_RadioctrlInit =
    [01] [09428] DEBUG | adrv9025_CalsInit> = Start adi_adrv9025_InitCalsRun =
    [01] [09429] DEBUG | adrv9025_CalsInit> = Start adi_adrv9025_InitCalsWait =
    [01] [20875] DEBUG | adrv9025_CalsInit> = End adi_adrv9025_InitCalsWait =
    [01] [20875] WARN  | adi_board_adrv9025_Program_PostMCS> = End POST MCS sequence =
    [01] [20876] WARN  | adi_board_adrv9025_Program_PostMCS> = Start Serializer reset =
    [01] [20877] WARN  | adi_board_adrv9025_Program_PostMCS> = End Serializer reset =
    [01] [20877] WARN  | adi_board_adrv9025_JesdBringup> = Start =
    [01] [21237] WARN  | adi_board_adrv9025_JesdBringup> = End =
    [01] [21237] INFO  | adi_adrv9025_GpIntInit> = Start =
    [01] [21239] INFO  | adi_adrv9025_GpIntInit> = End =
    [01] [21240] FATAL | adi_board_adrv9025_Program_PostMCS> = End =
    [01] [21240] WARN  | adrv9025_Init_PostMCS> = Start Full duplex link config =
    [01] [21241] DEBUG | JESD_FullDuplexLinkConfig> Set Tx Atten for all channels
    [01] [21242] DEBUG | JESD_FullDuplexLinkConfig> Set Rx Gain for all channels
    [01] [21243] DEBUG | JESD_FullDuplexLinkConfig> Set ObsRx Gain for all channels
    [01] [21244] DEBUG | JESD_FullDuplexLinkConfig> Readback PLL
    [01] [21245] DEBUG | JESD_FullDuplexLinkConfig> LO1 set to :1680000000l0l, res=0
    [01] [21247] DEBUG | JESD_FullDuplexLinkConfig> LO2 set to :1680000000l0l, res=0
    [01] [21248] DEBUG | JESD_FullDuplexLinkConfig> Turning on all Transmitters and Rx1-Rx4 Receivers
    [01] [21249] WARN  | adrv9025_Init_PostMCS> = End Full duplex link config =
    [01] [21250] TRACE | adrv9025_Init_PostMCS>  PLL status= 0xf , res = 0
    [00] [21250] INFO  | setLogLevel> Module [PLATFORM] log level [8]
    [01] [21251] TRACE | initHWPostMCS> End PostMCS_Init  MAD 1  res=0, duration = 11958[ms]
    [01] [21252] INFO  | JESD_ValidateStatus> Channels that are powered up in the transceiver Rx= 0xf, Tx=0xf
    [01] [21253] INFO  | JESD_ValidateStatus> Framers are enabled/disabled = 0x1 , res=0
    [01] [21254] INFO  | JESD_ValidateStatus> Framer status = 0xa
    [01] [21254] INFO  | JESD_ValidateStatus> Deframer Link enable values. reading which deframers are enabled/disabled = 0X1
    [01] [21255] INFO  | JESD_ValidateStatus> Deframer status = 0x87
    [01] [21256] TRACE | initHWPostMCS> Start PostMCS_Init MAD 2
    [00] [21256] INFO  | setLogLevel> Module [PLATFORM] log level [2]
    [01] [21257] TRACE | adrv9025_Init_PostMCS>  PLL status= 0x1 , res = 0
    [01] [21257] FATAL | adi_board_adrv9025_Program_PostMCS> = Start =
    [01] [21258] WARN  | adi_board_adrv9025_Program_PostMCS> = Start POST MCS sequence =
    [01] [21258] INFO  | adi_adrv9025_PostMcsInit> = Start adi_adrv9025_RxTxEnableSet: Enable the Rx Channels =
    [01] [21261] INFO  | adi_adrv9025_PostMcsInit> = End adi_adrv9025_RxTxEnableSet =
    [01] [21261] INFO  | adi_adrv9025_PostMcsInit> = Start adi_adrv9025_RxTxEnableSet Disable the Rx Channels=
    [01] [21262] INFO  | adi_adrv9025_PostMcsInit> = End adi_adrv9025_RxTxEnableSet =
    [01] [21263] INFO  | adi_adrv9025_PostMcsInit> = Start adrv9025_RadioctrlInit =
    [01] [21263] DEBUG | adrv9025_RadioctrlInit> = Start adi_adrv9025_RadioCtrlCfgSet =
    [01] [21387] DEBUG | adrv9025_RadioctrlInit> = Start adi_adrv9025_StreamGpioConfigSet =
    [01] [21389] DEBUG | adrv9025_RadioctrlInit> = End adi_adrv9025_StreamGpioConfigSet =
    [01] [21390] INFO  | adi_adrv9025_PostMcsInit> = End adrv9025_RadioctrlInit =
    [01] [21390] DEBUG | adrv9025_CalsInit> = Start adi_adrv9025_InitCalsRun =
    [01] [21391] DEBUG | adrv9025_CalsInit> = Start adi_adrv9025_InitCalsWait =
    [01] [32758] DEBUG | adrv9025_CalsInit> = End adi_adrv9025_InitCalsWait =
    [01] [32758] WARN  | adi_board_adrv9025_Program_PostMCS> = End POST MCS sequence =
    [01] [32759] WARN  | adi_board_adrv9025_Program_PostMCS> = Start Serializer reset =
    [01] [32760] WARN  | adi_board_adrv9025_Program_PostMCS> = End Serializer reset =
    [01] [32760] WARN  | adi_board_adrv9025_JesdBringup> = Start =
    [01] [33121] WARN  | adi_board_adrv9025_JesdBringup> = End =
    [01] [33121] INFO  | adi_adrv9025_GpIntInit> = Start =
    [01] [33123] INFO  | adi_adrv9025_GpIntInit> = End =
    [01] [33124] FATAL | adi_board_adrv9025_Program_PostMCS> = End =
    [01] [33124] WARN  | adrv9025_Init_PostMCS> = Start Full duplex link config =
    [01] [33125] DEBUG | JESD_FullDuplexLinkConfig> Set Tx Atten for all channels
    [01] [33126] DEBUG | JESD_FullDuplexLinkConfig> Set Rx Gain for all channels
    [01] [33127] DEBUG | JESD_FullDuplexLinkConfig> Set ObsRx Gain for all channels
    [01] [33128] DEBUG | JESD_FullDuplexLinkConfig> Readback PLL
    [01] [33129] DEBUG | JESD_FullDuplexLinkConfig> LO1 set to :1680000000l0l, res=0
    [01] [33131] DEBUG | JESD_FullDuplexLinkConfig> LO2 set to :1680000000l0l, res=0
    [01] [33132] DEBUG | JESD_FullDuplexLinkConfig> Turning on all Transmitters and Rx1-Rx4 Receivers
    [01] [33133] WARN  | adrv9025_Init_PostMCS> = End Full duplex link config =
    [01] [33134] TRACE | adrv9025_Init_PostMCS>  PLL status= 0xf , res = 0
    [00] [33134] INFO  | setLogLevel> Module [PLATFORM] log level [8]
    [01] [33135] TRACE | initHWPostMCS> End PostMCS_Init  MAD 2  res=0, duration = 11879[ms]
    [01] [33136] INFO  | JESD_ValidateStatus> Channels that are powered up in the transceiver Rx= 0xf, Tx=0xf
    [01] [33137] INFO  | JESD_ValidateStatus> Framers are enabled/disabled = 0x1 , res=0
    [01] [33138] INFO  | JESD_ValidateStatus> Framer status = 0xa
    [01] [33139] INFO  | JESD_ValidateStatus> Deframer Link enable values. reading which deframers are enabled/disabled = 0X1
    [01] [33139] INFO  | JESD_ValidateStatus> Deframer status = 0x87

    Hi,

    I attached the relevant portion of our SW log. The two ADRV9026 parts are referred to as MAD1 and MAD2.

    Thanks!

  • If same LO is used for all 4 channels , You can use single LO.

    How are you measuring LO Phase Sync ? 

    Make sure that Sysref and Device clocks are aligned across the 2 Transceivers and FPGA from boot to Boot.

    Can you share your clock scheme.? What is the device clock and sysref frequency used? 

  • We are already using a single LO within each transceiver IC for 4 channels each. Our problem is syncing the LOs across the 2 ICs, which is not working.

    We measured the LO Phase Sync indirectly by splitting the output of a signal generator whose frequency is offset from the carrier frequency by several MHz to 2 RX channels (one on each transceiver IC) and measuring the phase between the baseband samples. We don't care about the phase value itself so long as it is fixed and consistent at every power up. Right now we are getting random phase differences at every power up.

    The SYSREF and DEVCLK signals are aligned and consistent from boot to boot.

    The DEVCLK frequency is 245.76 MHz. We are using LTC6953 to distribute DEVCLK and SYSREF.

  • Can you please send us a working example of an init sequence which synchronizes 2 or more ADRV9026 ICs, including PLL phase sync?

  • Can you measure FIFO depth in FPGA deframer for both instances. if there is FIFO depth variation from boot to boot phase can vary.

    Please make sure you are enabling the " Enable RFPLL phase sync init and track continuously" in the init data.c.

    Other than enabling Phase sync init and running tracking cal there are no other requirement for RF PLL phase sync , Its a slow continuous loop which maintains LO phase same as Device clock phase. 

    If you re-program and measure phase within same power up are you able to see same relative phase between Rx1 of two different ADRV902x device. ? 

  • Hello Vinod,

    The FIFO depth is fixed in firmware, so it cannot change from boot to boot.

    Regarding your question: each time we perform the init routine, without powering down the board, we see different phases between the two ICs (measuring relative phase of one RX channel from each IC).

    I have several questions/comments to which I would appreciate your response:

    1) Please review the logfile I sent earlier and confirm that we are performing the steps correctly, or even better, please send us a working example of a multi-chip initialization code.   

    2) What are the requirements for the SYSREF and DEVCLK signals in order to ensure proper operation of the phase sync mechanism? How many SYSREF pulses, SYSREF pulse width, time interval between the SYSREF pulses, rise/fall times, relative DEVCLK-SYSREF timing, etc.

    3) Does changing the LO frequency require re-syncing the phase?

    Thanks!

  • FIFO depth depends on the release point of the elastic buffer and it should not be fixed. If issue is seen from Boot to boot try reading the buffer depth from FPGA.

    Within same boot up, if you run only init calibration and not run JESD bring up are you seeing a phase difference.?

    With same boot up, If you stop the input signal and send signal again and measure are you seeing phase variation ? 

    You can try disabling tracking cals and measure phase if you still see variation. 

    1)From log you are getting MCS status =0x17 which is correct. Please share initdata.c file as well.

    2)Sysref and dev clock should meet the timing requirement specified in datasheet and user guide. We need 4 sysref pulse for MCS. In software we send multiple sysref (255) until an MCS status of 0x17 is achieved. 

    what is the sysref frequency used ? 

    3)If ADI_ADRV9025_RFPLLMCS_INIT_AND_CONTTRACK is enabled in adi_adrv9025_RfPllMcs it will automatically sync the phase. The phase Sync loop is a slow loop and it will take some time to align the phase.

Reply
  • FIFO depth depends on the release point of the elastic buffer and it should not be fixed. If issue is seen from Boot to boot try reading the buffer depth from FPGA.

    Within same boot up, if you run only init calibration and not run JESD bring up are you seeing a phase difference.?

    With same boot up, If you stop the input signal and send signal again and measure are you seeing phase variation ? 

    You can try disabling tracking cals and measure phase if you still see variation. 

    1)From log you are getting MCS status =0x17 which is correct. Please share initdata.c file as well.

    2)Sysref and dev clock should meet the timing requirement specified in datasheet and user guide. We need 4 sysref pulse for MCS. In software we send multiple sysref (255) until an MCS status of 0x17 is achieved. 

    what is the sysref frequency used ? 

    3)If ADI_ADRV9025_RFPLLMCS_INIT_AND_CONTTRACK is enabled in adi_adrv9025_RfPllMcs it will automatically sync the phase. The phase Sync loop is a slow loop and it will take some time to align the phase.

Children
  • We will try to check what you suggested. Meanwhile I am attaching the initdata.c file we use, which was generated from the profile “51_nonLinkSharing” with our small modifications. It was generated from GUI ver 5.1.0.30.

    The SYSREF pulses are 4 usec wide and are sent every 1msec.

    #include "initdata.h"
    
    adi_adrv9025_ApiVersion_t initStructApiVersion = {5, 0, 1, 15};
    
    adi_adrv9025_ArmVersion_t initStructArmVersion = {5, 0, 1, 8};
    
    adi_adrv9025_StreamVersion_t initStructStreamVersion = {8, 0, 1, 1};
    
    adi_adrv9025_Init_t adrv9025Init = 
    {
        { // clocks
            245760,  // deviceClock_kHz
            9830400,  // clkPllVcoFreq_kHz
            0,  // serdesPllVcoFreq_kHz
            0,  // ldoSelect
            0,  // extLoFreq1_kHz
            0,  // extLoFreq2_kHz
            ADI_ADRV9025_INTLO_NOOUTPUT,  // rfPll1LoMode
            ADI_ADRV9025_INTLO_NOOUTPUT,  // rfPll2LoMode
            0,  // rfPll1LoOutDivider
            0,  // rfPll2LoOutDivider
    		ADI_ADRV9025_RFPLLMCS_INIT_AND_CONTTRACK, // rfPllPhaseSyncMode
            ADI_ADRV9025_LOSEL_LO1,  // rx12LoSelect
            ADI_ADRV9025_LOSEL_LO1,  // rx34LoSelect
            ADI_ADRV9025_LOSEL_LO2,  // tx12LoSelect
            ADI_ADRV9025_LOSEL_LO2,  // tx34LoSelect
            ADI_ADRV9025_ORXLOSEL_TXLO,  // orx12LoSelect
            ADI_ADRV9025_ORXLOSEL_TXLO   // orx34LoSelect
        },
        { // gpInterrupts
            0xFFFFFFFFFFFFFFFF,  // gpIntMaskPin0
            0xFFFFFFFFFFFFFFFF   // gpIntMaskPin1
        },
        { // rx
            0x3FF,  // rxInitChannelMask
            {  // rxChannelCfg (array)
            {  // rxChannelCfg[0]
                { // profile
                    ADI_ADRV9025_RX1,  // channelType
                    1,  // rxFirDecimation
                    5,  // rxDec5Decimation
                    2,  // rhb1Decimation
                    1,  // rhb1WideBandMode
                    2,  // rhb2Decimation
                    1,  // rhb3Decimation
                    1,  // rxFir1Decimation
                    1,  // rxFir2Decimation
                    245760,  // rxOutputRate_kHz
                    200000,  // rfBandwidth_kHz
                    200000,  // rxBbf3dBCorner_kHz
                    100000,  // rxAdcBandWidth_kHz
                    { // rxFir
                        6,  // gain_dB
                        24,  // numFirCoefs
                        {-10, 4, -1, -2, 8, -15, 21, -21, 7, 59, -502, 17153, -502, 59, 7, -21, 21, -15, 8, -2, -1, 4, -10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
                    },
                    ADI_ADRV9025_RXDDC_BYPASS,  // rxDdcMode
                    { // rxNcoShifterCfg
                        0,  // bandAInputBandWidth_kHz
                        0,  // bandAInputCenterFreq_kHz
                        0,  // bandANco1Freq_kHz
                        0,  // bandANco2Freq_kHz
                        0,  // bandBInputBandWidth_kHz
                        0,  // bandBInputCenterFreq_kHz
                        0,  // bandBNco1Freq_kHz
                        0,  // bandBNco2Freq_kHz
                        0   // bandAbCombinedEnable
                    },
                    4,  // tiaPowerMode
                    { // rxDataFormat
                        0x01,  // rxChannelMask
                        ADI_ADRV9025_GAIN_COMPENSATION_DISABLED,  // formatSelect
                        { // floatingPointConfig
                            ADI_ADRV9025_FP_FORMAT_SIGN_EXP_SIGNIFICAND,  // fpDataFormat
                            ADI_ADRV9025_ROUND_TO_EVEN,  // fpRoundMode
                            ADI_ADRV9025_2_EXPONENTBITS,  // fpNumExpBits
                            ADI_ADRV9025_FPATTEN_0DB,  // fpAttenSteps
                            ADI_ADRV9025_FP_FORMAT_HIDE_LEADING_ONE_DISABLE,  // fpHideLeadingOne
                            ADI_ADRV9025_FP_FORMAT_NAN_ENCODE_DISABLE   // fpEncodeNan
                        },
                        { // integerConfigSettings
                            ADI_ADRV9025_NO_EMBEDDED_SLICER_BITS,  // intEmbeddedBits
                            ADI_ADRV9025_INTEGER_16BIT_2SCOMP,  // intSampleResolution
                            ADI_ADRV9025_NO_PARITY,  // intParity
                            ADI_ADRV9025_LOWER_NIBBLE_ON_Q   // intEmbeddedPos
                        },
                        { // slicerConfigSettings
                            ADI_ADRV9025_EXTSLICER_STEPSIZE_1DB,  // extSlicerStepSize
                            ADI_ADRV9025_INTSLICER_STEPSIZE_1DB,  // intSlicerStepSize
                            ADI_ADRV9025_EXTSLICER_RX_GPIO_DISABLE,  // rx1ExtSlicerGpioSelect
                            ADI_ADRV9025_EXTSLICER_RX_GPIO_DISABLE,  // rx2ExtSlicerGpioSelect
                            ADI_ADRV9025_EXTSLICER_RX_GPIO_DISABLE,  // rx3ExtSlicerGpioSelect
                            ADI_ADRV9025_EXTSLICER_RX_GPIO_DISABLE   // rx4ExtSlicerGpioSelect
                        },
                        { // embOvldMonitorSettings
                            ADI_ADRV9025_RX_EMB_MON_SRC_NO_MON_DATA_EMBEDDED,  // embeddedMonitorSrcLsbI
                            ADI_ADRV9025_RX_EMB_MON_SRC_NO_MON_DATA_EMBEDDED,  // embeddedMonitorSrcLsbQ
                            ADI_ADRV9025_RX_EMB_MON_SRC_NO_MON_DATA_EMBEDDED,  // embeddedMonitorSrcLsbPlusOneI
                            ADI_ADRV9025_RX_EMB_MON_SRC_NO_MON_DATA_EMBEDDED,  // embeddedMonitorSrcLsbPlusOneQ
                            ADI_ADRV9025_HB2_LOW_SRC_OVRG_LOW_INT1_THRESH_CNTR_EXCEEDED,  // embeddedMonitorHb2LowSrcSel
                            ADI_ADRV9025_HB2_HIGH_SRC_INVALID,  // embeddedMonitorHb2HighSrcSel
                            ADI_ADRV9025_APD_LOW_SRC_INVALID,  // embeddedMonitorApdLowSrcSel
                            ADI_ADRV9025_APD_HIGH_SRC_INVALID,  // embeddedMonitorApdHighSrcSel
                            0,  // invertHb2Flag
                            0   // invertApdFlag
                        },
                        0,  // externalLnaGain
                        0   // tempCompensationEnable
                    },
                },
            },
            {  // rxChannelCfg[1]
                { // profile
                    ADI_ADRV9025_RX2,  // channelType
                    1,  // rxFirDecimation
                    5,  // rxDec5Decimation
                    2,  // rhb1Decimation
                    1,  // rhb1WideBandMode
                    2,  // rhb2Decimation
                    1,  // rhb3Decimation
                    1,  // rxFir1Decimation
                    1,  // rxFir2Decimation
                    245760,  // rxOutputRate_kHz
                    200000,  // rfBandwidth_kHz
                    200000,  // rxBbf3dBCorner_kHz
                    100000,  // rxAdcBandWidth_kHz
                    { // rxFir
                        6,  // gain_dB
                        24,  // numFirCoefs
                        {-10, 4, -1, -2, 8, -15, 21, -21, 7, 59, -502, 17153, -502, 59, 7, -21, 21, -15, 8, -2, -1, 4, -10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
                    },
                    ADI_ADRV9025_RXDDC_BYPASS,  // rxDdcMode
                    { // rxNcoShifterCfg
                        0,  // bandAInputBandWidth_kHz
                        0,  // bandAInputCenterFreq_kHz
                        0,  // bandANco1Freq_kHz
                        0,  // bandANco2Freq_kHz
                        0,  // bandBInputBandWidth_kHz
                        0,  // bandBInputCenterFreq_kHz
                        0,  // bandBNco1Freq_kHz
                        0,  // bandBNco2Freq_kHz
                        0   // bandAbCombinedEnable
                    },
                    4,  // tiaPowerMode
                    { // rxDataFormat
                        0x02,  // rxChannelMask
                        ADI_ADRV9025_GAIN_COMPENSATION_DISABLED,  // formatSelect
                        { // floatingPointConfig
                            ADI_ADRV9025_FP_FORMAT_SIGN_EXP_SIGNIFICAND,  // fpDataFormat
                            ADI_ADRV9025_ROUND_TO_EVEN,  // fpRoundMode
                            ADI_ADRV9025_2_EXPONENTBITS,  // fpNumExpBits
                            ADI_ADRV9025_FPATTEN_0DB,  // fpAttenSteps
                            ADI_ADRV9025_FP_FORMAT_HIDE_LEADING_ONE_DISABLE,  // fpHideLeadingOne
                            ADI_ADRV9025_FP_FORMAT_NAN_ENCODE_DISABLE   // fpEncodeNan
                        },
                        { // integerConfigSettings
                            ADI_ADRV9025_NO_EMBEDDED_SLICER_BITS,  // intEmbeddedBits
                            ADI_ADRV9025_INTEGER_16BIT_2SCOMP,  // intSampleResolution
                            ADI_ADRV9025_NO_PARITY,  // intParity
                            ADI_ADRV9025_LOWER_NIBBLE_ON_Q   // intEmbeddedPos
                        },
                        { // slicerConfigSettings
                            ADI_ADRV9025_EXTSLICER_STEPSIZE_1DB,  // extSlicerStepSize
                            ADI_ADRV9025_INTSLICER_STEPSIZE_1DB,  // intSlicerStepSize
                            ADI_ADRV9025_EXTSLICER_RX_GPIO_DISABLE,  // rx1ExtSlicerGpioSelect
                            ADI_ADRV9025_EXTSLICER_RX_GPIO_DISABLE,  // rx2ExtSlicerGpioSelect
                            ADI_ADRV9025_EXTSLICER_RX_GPIO_DISABLE,  // rx3ExtSlicerGpioSelect
                            ADI_ADRV9025_EXTSLICER_RX_GPIO_DISABLE   // rx4ExtSlicerGpioSelect
                        },
                        { // embOvldMonitorSettings
                            ADI_ADRV9025_RX_EMB_MON_SRC_NO_MON_DATA_EMBEDDED,  // embeddedMonitorSrcLsbI
                            ADI_ADRV9025_RX_EMB_MON_SRC_NO_MON_DATA_EMBEDDED,  // embeddedMonitorSrcLsbQ
                            ADI_ADRV9025_RX_EMB_MON_SRC_NO_MON_DATA_EMBEDDED,  // embeddedMonitorSrcLsbPlusOneI
                            ADI_ADRV9025_RX_EMB_MON_SRC_NO_MON_DATA_EMBEDDED,  // embeddedMonitorSrcLsbPlusOneQ
                            ADI_ADRV9025_HB2_LOW_SRC_OVRG_LOW_INT1_THRESH_CNTR_EXCEEDED,  // embeddedMonitorHb2LowSrcSel
                            ADI_ADRV9025_HB2_HIGH_SRC_INVALID,  // embeddedMonitorHb2HighSrcSel
                            ADI_ADRV9025_APD_LOW_SRC_INVALID,  // embeddedMonitorApdLowSrcSel
                            ADI_ADRV9025_APD_HIGH_SRC_INVALID,  // embeddedMonitorApdHighSrcSel
                            0,  // invertHb2Flag
                            0   // invertApdFlag
                        },
                        0,  // externalLnaGain
                        0   // tempCompensationEnable
                    },
                },
            },
            {  // rxChannelCfg[2]
                { // profile
                    ADI_ADRV9025_RX3,  // channelType
                    1,  // rxFirDecimation
                    5,  // rxDec5Decimation
                    2,  // rhb1Decimation
                    1,  // rhb1WideBandMode
                    2,  // rhb2Decimation
                    1,  // rhb3Decimation
                    1,  // rxFir1Decimation
                    1,  // rxFir2Decimation
                    245760,  // rxOutputRate_kHz
                    200000,  // rfBandwidth_kHz
                    200000,  // rxBbf3dBCorner_kHz
                    100000,  // rxAdcBandWidth_kHz
                    { // rxFir
                        6,  // gain_dB
                        24,  // numFirCoefs
                        {-10, 4, -1, -2, 8, -15, 21, -21, 7, 59, -502, 17153, -502, 59, 7, -21, 21, -15, 8, -2, -1, 4, -10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
                    },
                    ADI_ADRV9025_RXDDC_BYPASS,  // rxDdcMode
                    { // rxNcoShifterCfg
                        0,  // bandAInputBandWidth_kHz
                        0,  // bandAInputCenterFreq_kHz
                        0,  // bandANco1Freq_kHz
                        0,  // bandANco2Freq_kHz
                        0,  // bandBInputBandWidth_kHz
                        0,  // bandBInputCenterFreq_kHz
                        0,  // bandBNco1Freq_kHz
                        0,  // bandBNco2Freq_kHz
                        0   // bandAbCombinedEnable
                    },
                    4,  // tiaPowerMode
                    { // rxDataFormat
                        0x04,  // rxChannelMask
                        ADI_ADRV9025_GAIN_COMPENSATION_DISABLED,  // formatSelect
                        { // floatingPointConfig
                            ADI_ADRV9025_FP_FORMAT_SIGN_EXP_SIGNIFICAND,  // fpDataFormat
                            ADI_ADRV9025_ROUND_TO_EVEN,  // fpRoundMode
                            ADI_ADRV9025_2_EXPONENTBITS,  // fpNumExpBits
                            ADI_ADRV9025_FPATTEN_0DB,  // fpAttenSteps
                            ADI_ADRV9025_FP_FORMAT_HIDE_LEADING_ONE_DISABLE,  // fpHideLeadingOne
                            ADI_ADRV9025_FP_FORMAT_NAN_ENCODE_DISABLE   // fpEncodeNan
                        },
                        { // integerConfigSettings
                            ADI_ADRV9025_NO_EMBEDDED_SLICER_BITS,  // intEmbeddedBits
                            ADI_ADRV9025_INTEGER_16BIT_2SCOMP,  // intSampleResolution
                            ADI_ADRV9025_NO_PARITY,  // intParity
                            ADI_ADRV9025_LOWER_NIBBLE_ON_Q   // intEmbeddedPos
                        },
                        { // slicerConfigSettings
                            ADI_ADRV9025_EXTSLICER_STEPSIZE_1DB,  // extSlicerStepSize
                            ADI_ADRV9025_INTSLICER_STEPSIZE_1DB,  // intSlicerStepSize
                            ADI_ADRV9025_EXTSLICER_RX_GPIO_DISABLE,  // rx1ExtSlicerGpioSelect
                            ADI_ADRV9025_EXTSLICER_RX_GPIO_DISABLE,  // rx2ExtSlicerGpioSelect
                            ADI_ADRV9025_EXTSLICER_RX_GPIO_DISABLE,  // rx3ExtSlicerGpioSelect
                            ADI_ADRV9025_EXTSLICER_RX_GPIO_DISABLE   // rx4ExtSlicerGpioSelect
                        },
                        { // embOvldMonitorSettings
                            ADI_ADRV9025_RX_EMB_MON_SRC_NO_MON_DATA_EMBEDDED,  // embeddedMonitorSrcLsbI
                            ADI_ADRV9025_RX_EMB_MON_SRC_NO_MON_DATA_EMBEDDED,  // embeddedMonitorSrcLsbQ
                            ADI_ADRV9025_RX_EMB_MON_SRC_NO_MON_DATA_EMBEDDED,  // embeddedMonitorSrcLsbPlusOneI
                            ADI_ADRV9025_RX_EMB_MON_SRC_NO_MON_DATA_EMBEDDED,  // embeddedMonitorSrcLsbPlusOneQ
                            ADI_ADRV9025_HB2_LOW_SRC_OVRG_LOW_INT1_THRESH_CNTR_EXCEEDED,  // embeddedMonitorHb2LowSrcSel
                            ADI_ADRV9025_HB2_HIGH_SRC_INVALID,  // embeddedMonitorHb2HighSrcSel
                            ADI_ADRV9025_APD_LOW_SRC_INVALID,  // embeddedMonitorApdLowSrcSel
                            ADI_ADRV9025_APD_HIGH_SRC_INVALID,  // embeddedMonitorApdHighSrcSel
                            0,  // invertHb2Flag
                            0   // invertApdFlag
                        },
                        0,  // externalLnaGain
                        0   // tempCompensationEnable
                    },
                },
            },
            {  // rxChannelCfg[3]
                { // profile
                    ADI_ADRV9025_RX4,  // channelType
                    1,  // rxFirDecimation
                    5,  // rxDec5Decimation
                    2,  // rhb1Decimation
                    1,  // rhb1WideBandMode
                    2,  // rhb2Decimation
                    1,  // rhb3Decimation
                    1,  // rxFir1Decimation
                    1,  // rxFir2Decimation
                    245760,  // rxOutputRate_kHz
                    200000,  // rfBandwidth_kHz
                    200000,  // rxBbf3dBCorner_kHz
                    100000,  // rxAdcBandWidth_kHz
                    { // rxFir
                        6,  // gain_dB
                        24,  // numFirCoefs
                        {-10, 4, -1, -2, 8, -15, 21, -21, 7, 59, -502, 17153, -502, 59, 7, -21, 21, -15, 8, -2, -1, 4, -10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
                    },
                    ADI_ADRV9025_RXDDC_BYPASS,  // rxDdcMode
                    { // rxNcoShifterCfg
                        0,  // bandAInputBandWidth_kHz
                        0,  // bandAInputCenterFreq_kHz
                        0,  // bandANco1Freq_kHz
                        0,  // bandANco2Freq_kHz
                        0,  // bandBInputBandWidth_kHz
                        0,  // bandBInputCenterFreq_kHz
                        0,  // bandBNco1Freq_kHz
                        0,  // bandBNco2Freq_kHz
                        0   // bandAbCombinedEnable
                    },
                    4,  // tiaPowerMode
                    { // rxDataFormat
                        0x08,  // rxChannelMask
                        ADI_ADRV9025_GAIN_COMPENSATION_DISABLED,  // formatSelect
                        { // floatingPointConfig
                            ADI_ADRV9025_FP_FORMAT_SIGN_EXP_SIGNIFICAND,  // fpDataFormat
                            ADI_ADRV9025_ROUND_TO_EVEN,  // fpRoundMode
                            ADI_ADRV9025_2_EXPONENTBITS,  // fpNumExpBits
                            ADI_ADRV9025_FPATTEN_0DB,  // fpAttenSteps
                            ADI_ADRV9025_FP_FORMAT_HIDE_LEADING_ONE_DISABLE,  // fpHideLeadingOne
                            ADI_ADRV9025_FP_FORMAT_NAN_ENCODE_DISABLE   // fpEncodeNan
                        },
                        { // integerConfigSettings
                            ADI_ADRV9025_NO_EMBEDDED_SLICER_BITS,  // intEmbeddedBits
                            ADI_ADRV9025_INTEGER_16BIT_2SCOMP,  // intSampleResolution
                            ADI_ADRV9025_NO_PARITY,  // intParity
                            ADI_ADRV9025_LOWER_NIBBLE_ON_Q   // intEmbeddedPos
                        },
                        { // slicerConfigSettings
                            ADI_ADRV9025_EXTSLICER_STEPSIZE_1DB,  // extSlicerStepSize
                            ADI_ADRV9025_INTSLICER_STEPSIZE_1DB,  // intSlicerStepSize
                            ADI_ADRV9025_EXTSLICER_RX_GPIO_DISABLE,  // rx1ExtSlicerGpioSelect
                            ADI_ADRV9025_EXTSLICER_RX_GPIO_DISABLE,  // rx2ExtSlicerGpioSelect
                            ADI_ADRV9025_EXTSLICER_RX_GPIO_DISABLE,  // rx3ExtSlicerGpioSelect
                            ADI_ADRV9025_EXTSLICER_RX_GPIO_DISABLE   // rx4ExtSlicerGpioSelect
                        },
                        { // embOvldMonitorSettings
                            ADI_ADRV9025_RX_EMB_MON_SRC_NO_MON_DATA_EMBEDDED,  // embeddedMonitorSrcLsbI
                            ADI_ADRV9025_RX_EMB_MON_SRC_NO_MON_DATA_EMBEDDED,  // embeddedMonitorSrcLsbQ
                            ADI_ADRV9025_RX_EMB_MON_SRC_NO_MON_DATA_EMBEDDED,  // embeddedMonitorSrcLsbPlusOneI
                            ADI_ADRV9025_RX_EMB_MON_SRC_NO_MON_DATA_EMBEDDED,  // embeddedMonitorSrcLsbPlusOneQ
                            ADI_ADRV9025_HB2_LOW_SRC_OVRG_LOW_INT1_THRESH_CNTR_EXCEEDED,  // embeddedMonitorHb2LowSrcSel
                            ADI_ADRV9025_HB2_HIGH_SRC_INVALID,  // embeddedMonitorHb2HighSrcSel
                            ADI_ADRV9025_APD_LOW_SRC_INVALID,  // embeddedMonitorApdLowSrcSel
                            ADI_ADRV9025_APD_HIGH_SRC_INVALID,  // embeddedMonitorApdHighSrcSel
                            0,  // invertHb2Flag
                            0   // invertApdFlag
                        },
                        0,  // externalLnaGain
                        0   // tempCompensationEnable
                    },
                },
            },
            {  // rxChannelCfg[4]
                { // profile
                    ADI_ADRV9025_ORX1,  // channelType
                    1,  // rxFirDecimation
                    5,  // rxDec5Decimation
                    2,  // rhb1Decimation
                    0,  // rhb1WideBandMode
                    1,  // rhb2Decimation
                    1,  // rhb3Decimation
                    1,  // rxFir1Decimation
                    1,  // rxFir2Decimation
                    245760,  // rxOutputRate_kHz
                    450000,  // rfBandwidth_kHz
                    225000,  // rxBbf3dBCorner_kHz
                    225000,  // rxAdcBandWidth_kHz
                    { // rxFir
                        6,  // gain_dB
                        24,  // numFirCoefs
                        {33, -7, 9, -7, 3, 9, -27, 62, -138, 349, -1663, 19282, -1663, 349, -138, 62, -27, 9, 3, -7, 9, -7, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
                    },
                    ADI_ADRV9025_RXDDC_DEC2,  // rxDdcMode
                    { // rxNcoShifterCfg
                        0,  // bandAInputBandWidth_kHz
                        0,  // bandAInputCenterFreq_kHz
                        0,  // bandANco1Freq_kHz
                        0,  // bandANco2Freq_kHz
                        0,  // bandBInputBandWidth_kHz
                        0,  // bandBInputCenterFreq_kHz
                        0,  // bandBNco1Freq_kHz
                        0,  // bandBNco2Freq_kHz
                        0   // bandAbCombinedEnable
                    },
                    4,  // tiaPowerMode
                    { // rxDataFormat
                        0x10,  // rxChannelMask
                        ADI_ADRV9025_GAIN_COMPENSATION_DISABLED,  // formatSelect
                        { // floatingPointConfig
                            ADI_ADRV9025_FP_FORMAT_SIGN_EXP_SIGNIFICAND,  // fpDataFormat
                            ADI_ADRV9025_ROUND_TO_EVEN,  // fpRoundMode
                            ADI_ADRV9025_2_EXPONENTBITS,  // fpNumExpBits
                            ADI_ADRV9025_FPATTEN_0DB,  // fpAttenSteps
                            ADI_ADRV9025_FP_FORMAT_HIDE_LEADING_ONE_DISABLE,  // fpHideLeadingOne
                            ADI_ADRV9025_FP_FORMAT_NAN_ENCODE_DISABLE   // fpEncodeNan
                        },
                        { // integerConfigSettings
                            ADI_ADRV9025_NO_EMBEDDED_SLICER_BITS,  // intEmbeddedBits
                            ADI_ADRV9025_INTEGER_16BIT_2SCOMP,  // intSampleResolution
                            ADI_ADRV9025_NO_PARITY,  // intParity
                            ADI_ADRV9025_LOWER_NIBBLE_ON_Q   // intEmbeddedPos
                        },
                        { // slicerConfigSettings
                            ADI_ADRV9025_EXTSLICER_STEPSIZE_1DB,  // extSlicerStepSize
                            ADI_ADRV9025_INTSLICER_STEPSIZE_1DB,  // intSlicerStepSize
                            ADI_ADRV9025_EXTSLICER_RX_GPIO_DISABLE,  // rx1ExtSlicerGpioSelect
                            ADI_ADRV9025_EXTSLICER_RX_GPIO_DISABLE,  // rx2ExtSlicerGpioSelect
                            ADI_ADRV9025_EXTSLICER_RX_GPIO_DISABLE,  // rx3ExtSlicerGpioSelect
                            ADI_ADRV9025_EXTSLICER_RX_GPIO_DISABLE   // rx4ExtSlicerGpioSelect
                        },
                        { // embOvldMonitorSettings
                            ADI_ADRV9025_RX_EMB_MON_SRC_NO_MON_DATA_EMBEDDED,  // embeddedMonitorSrcLsbI
                            ADI_ADRV9025_RX_EMB_MON_SRC_NO_MON_DATA_EMBEDDED,  // embeddedMonitorSrcLsbQ
                            ADI_ADRV9025_RX_EMB_MON_SRC_NO_MON_DATA_EMBEDDED,  // embeddedMonitorSrcLsbPlusOneI
                            ADI_ADRV9025_RX_EMB_MON_SRC_NO_MON_DATA_EMBEDDED,  // embeddedMonitorSrcLsbPlusOneQ
                            ADI_ADRV9025_HB2_LOW_SRC_OVRG_LOW_INT1_THRESH_CNTR_EXCEEDED,  // embeddedMonitorHb2LowSrcSel
                            ADI_ADRV9025_HB2_HIGH_SRC_INVALID,  // embeddedMonitorHb2HighSrcSel
                            ADI_ADRV9025_APD_LOW_SRC_INVALID,  // embeddedMonitorApdLowSrcSel
                            ADI_ADRV9025_APD_HIGH_SRC_INVALID,  // embeddedMonitorApdHighSrcSel
                            0,  // invertHb2Flag
                            0   // invertApdFlag
                        },
                        0,  // externalLnaGain
                        0   // tempCompensationEnable
                    },
                },
            },
            {  // rxChannelCfg[5]
                { // profile
                    ADI_ADRV9025_ORX2,  // channelType
                    1,  // rxFirDecimation
                    5,  // rxDec5Decimation
                    2,  // rhb1Decimation
                    0,  // rhb1WideBandMode
                    1,  // rhb2Decimation
                    1,  // rhb3Decimation
                    1,  // rxFir1Decimation
                    1,  // rxFir2Decimation
                    245760,  // rxOutputRate_kHz
                    450000,  // rfBandwidth_kHz
                    225000,  // rxBbf3dBCorner_kHz
                    225000,  // rxAdcBandWidth_kHz
                    { // rxFir
                        6,  // gain_dB
                        24,  // numFirCoefs
                        {33, -7, 9, -7, 3, 9, -27, 62, -138, 349, -1663, 19282, -1663, 349, -138, 62, -27, 9, 3, -7, 9, -7, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
                    },
                    ADI_ADRV9025_RXDDC_DEC2,  // rxDdcMode
                    { // rxNcoShifterCfg
                        0,  // bandAInputBandWidth_kHz
                        0,  // bandAInputCenterFreq_kHz
                        0,  // bandANco1Freq_kHz
                        0,  // bandANco2Freq_kHz
                        0,  // bandBInputBandWidth_kHz
                        0,  // bandBInputCenterFreq_kHz
                        0,  // bandBNco1Freq_kHz
                        0,  // bandBNco2Freq_kHz
                        0   // bandAbCombinedEnable
                    },
                    4,  // tiaPowerMode
                    { // rxDataFormat
                        0x20,  // rxChannelMask
                        ADI_ADRV9025_GAIN_COMPENSATION_DISABLED,  // formatSelect
                        { // floatingPointConfig
                            ADI_ADRV9025_FP_FORMAT_SIGN_EXP_SIGNIFICAND,  // fpDataFormat
                            ADI_ADRV9025_ROUND_TO_EVEN,  // fpRoundMode
                            ADI_ADRV9025_2_EXPONENTBITS,  // fpNumExpBits
                            ADI_ADRV9025_FPATTEN_0DB,  // fpAttenSteps
                            ADI_ADRV9025_FP_FORMAT_HIDE_LEADING_ONE_DISABLE,  // fpHideLeadingOne
                            ADI_ADRV9025_FP_FORMAT_NAN_ENCODE_DISABLE   // fpEncodeNan
                        },
                        { // integerConfigSettings
                            ADI_ADRV9025_NO_EMBEDDED_SLICER_BITS,  // intEmbeddedBits
                            ADI_ADRV9025_INTEGER_16BIT_2SCOMP,  // intSampleResolution
                            ADI_ADRV9025_NO_PARITY,  // intParity
                            ADI_ADRV9025_LOWER_NIBBLE_ON_Q   // intEmbeddedPos
                        },
                        { // slicerConfigSettings
                            ADI_ADRV9025_EXTSLICER_STEPSIZE_1DB,  // extSlicerStepSize
                            ADI_ADRV9025_INTSLICER_STEPSIZE_1DB,  // intSlicerStepSize
                            ADI_ADRV9025_EXTSLICER_RX_GPIO_DISABLE,  // rx1ExtSlicerGpioSelect
                            ADI_ADRV9025_EXTSLICER_RX_GPIO_DISABLE,  // rx2ExtSlicerGpioSelect
                            ADI_ADRV9025_EXTSLICER_RX_GPIO_DISABLE,  // rx3ExtSlicerGpioSelect
                            ADI_ADRV9025_EXTSLICER_RX_GPIO_DISABLE   // rx4ExtSlicerGpioSelect
                        },
                        { // embOvldMonitorSettings
                            ADI_ADRV9025_RX_EMB_MON_SRC_NO_MON_DATA_EMBEDDED,  // embeddedMonitorSrcLsbI
                            ADI_ADRV9025_RX_EMB_MON_SRC_NO_MON_DATA_EMBEDDED,  // embeddedMonitorSrcLsbQ
                            ADI_ADRV9025_RX_EMB_MON_SRC_NO_MON_DATA_EMBEDDED,  // embeddedMonitorSrcLsbPlusOneI
                            ADI_ADRV9025_RX_EMB_MON_SRC_NO_MON_DATA_EMBEDDED,  // embeddedMonitorSrcLsbPlusOneQ
                            ADI_ADRV9025_HB2_LOW_SRC_OVRG_LOW_INT1_THRESH_CNTR_EXCEEDED,  // embeddedMonitorHb2LowSrcSel
                            ADI_ADRV9025_HB2_HIGH_SRC_INVALID,  // embeddedMonitorHb2HighSrcSel
                            ADI_ADRV9025_APD_LOW_SRC_INVALID,  // embeddedMonitorApdLowSrcSel
                            ADI_ADRV9025_APD_HIGH_SRC_INVALID,  // embeddedMonitorApdHighSrcSel
                            0,  // invertHb2Flag
                            0   // invertApdFlag
                        },
                        0,  // externalLnaGain
                        0   // tempCompensationEnable
                    },
                },
            },
            {  // rxChannelCfg[6]
                { // profile
                    ADI_ADRV9025_ORX3,  // channelType
                    1,  // rxFirDecimation
                    5,  // rxDec5Decimation
                    2,  // rhb1Decimation
                    0,  // rhb1WideBandMode
                    1,  // rhb2Decimation
                    1,  // rhb3Decimation
                    1,  // rxFir1Decimation
                    1,  // rxFir2Decimation
                    245760,  // rxOutputRate_kHz
                    450000,  // rfBandwidth_kHz
                    225000,  // rxBbf3dBCorner_kHz
                    225000,  // rxAdcBandWidth_kHz
                    { // rxFir
                        6,  // gain_dB
                        24,  // numFirCoefs
                        {33, -7, 9, -7, 3, 9, -27, 62, -138, 349, -1663, 19282, -1663, 349, -138, 62, -27, 9, 3, -7, 9, -7, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
                    },
                    ADI_ADRV9025_RXDDC_DEC2,  // rxDdcMode
                    { // rxNcoShifterCfg
                        0,  // bandAInputBandWidth_kHz
                        0,  // bandAInputCenterFreq_kHz
                        0,  // bandANco1Freq_kHz
                        0,  // bandANco2Freq_kHz
                        0,  // bandBInputBandWidth_kHz
                        0,  // bandBInputCenterFreq_kHz
                        0,  // bandBNco1Freq_kHz
                        0,  // bandBNco2Freq_kHz
                        0   // bandAbCombinedEnable
                    },
                    4,  // tiaPowerMode
                    { // rxDataFormat
                        0x40,  // rxChannelMask
                        ADI_ADRV9025_GAIN_COMPENSATION_DISABLED,  // formatSelect
                        { // floatingPointConfig
                            ADI_ADRV9025_FP_FORMAT_SIGN_EXP_SIGNIFICAND,  // fpDataFormat
                            ADI_ADRV9025_ROUND_TO_EVEN,  // fpRoundMode
                            ADI_ADRV9025_2_EXPONENTBITS,  // fpNumExpBits
                            ADI_ADRV9025_FPATTEN_0DB,  // fpAttenSteps
                            ADI_ADRV9025_FP_FORMAT_HIDE_LEADING_ONE_DISABLE,  // fpHideLeadingOne
                            ADI_ADRV9025_FP_FORMAT_NAN_ENCODE_DISABLE   // fpEncodeNan
                        },
                        { // integerConfigSettings
                            ADI_ADRV9025_NO_EMBEDDED_SLICER_BITS,  // intEmbeddedBits
                            ADI_ADRV9025_INTEGER_16BIT_2SCOMP,  // intSampleResolution
                            ADI_ADRV9025_NO_PARITY,  // intParity
                            ADI_ADRV9025_LOWER_NIBBLE_ON_Q   // intEmbeddedPos
                        },
                        { // slicerConfigSettings
                            ADI_ADRV9025_EXTSLICER_STEPSIZE_1DB,  // extSlicerStepSize
                            ADI_ADRV9025_INTSLICER_STEPSIZE_1DB,  // intSlicerStepSize
                            ADI_ADRV9025_EXTSLICER_RX_GPIO_DISABLE,  // rx1ExtSlicerGpioSelect
                            ADI_ADRV9025_EXTSLICER_RX_GPIO_DISABLE,  // rx2ExtSlicerGpioSelect
                            ADI_ADRV9025_EXTSLICER_RX_GPIO_DISABLE,  // rx3ExtSlicerGpioSelect
                            ADI_ADRV9025_EXTSLICER_RX_GPIO_DISABLE   // rx4ExtSlicerGpioSelect
                        },
                        { // embOvldMonitorSettings
                            ADI_ADRV9025_RX_EMB_MON_SRC_NO_MON_DATA_EMBEDDED,  // embeddedMonitorSrcLsbI
                            ADI_ADRV9025_RX_EMB_MON_SRC_NO_MON_DATA_EMBEDDED,  // embeddedMonitorSrcLsbQ
                            ADI_ADRV9025_RX_EMB_MON_SRC_NO_MON_DATA_EMBEDDED,  // embeddedMonitorSrcLsbPlusOneI
                            ADI_ADRV9025_RX_EMB_MON_SRC_NO_MON_DATA_EMBEDDED,  // embeddedMonitorSrcLsbPlusOneQ
                            ADI_ADRV9025_HB2_LOW_SRC_OVRG_LOW_INT1_THRESH_CNTR_EXCEEDED,  // embeddedMonitorHb2LowSrcSel
                            ADI_ADRV9025_HB2_HIGH_SRC_INVALID,  // embeddedMonitorHb2HighSrcSel
                            ADI_ADRV9025_APD_LOW_SRC_INVALID,  // embeddedMonitorApdLowSrcSel
                            ADI_ADRV9025_APD_HIGH_SRC_INVALID,  // embeddedMonitorApdHighSrcSel
                            0,  // invertHb2Flag
                            0   // invertApdFlag
                        },
                        0,  // externalLnaGain
                        0   // tempCompensationEnable
                    },
                },
            },
            {  // rxChannelCfg[7]
                { // profile
                    ADI_ADRV9025_ORX4,  // channelType
                    1,  // rxFirDecimation
                    5,  // rxDec5Decimation
                    2,  // rhb1Decimation
                    0,  // rhb1WideBandMode
                    1,  // rhb2Decimation
                    1,  // rhb3Decimation
                    1,  // rxFir1Decimation
                    1,  // rxFir2Decimation
                    245760,  // rxOutputRate_kHz
                    450000,  // rfBandwidth_kHz
                    225000,  // rxBbf3dBCorner_kHz
                    225000,  // rxAdcBandWidth_kHz
                    { // rxFir
                        6,  // gain_dB
                        24,  // numFirCoefs
                        {33, -7, 9, -7, 3, 9, -27, 62, -138, 349, -1663, 19282, -1663, 349, -138, 62, -27, 9, 3, -7, 9, -7, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
                    },
                    ADI_ADRV9025_RXDDC_DEC2,  // rxDdcMode
                    { // rxNcoShifterCfg
                        0,  // bandAInputBandWidth_kHz
                        0,  // bandAInputCenterFreq_kHz
                        0,  // bandANco1Freq_kHz
                        0,  // bandANco2Freq_kHz
                        0,  // bandBInputBandWidth_kHz
                        0,  // bandBInputCenterFreq_kHz
                        0,  // bandBNco1Freq_kHz
                        0,  // bandBNco2Freq_kHz
                        0   // bandAbCombinedEnable
                    },
                    4,  // tiaPowerMode
                    { // rxDataFormat
                        0x80,  // rxChannelMask
                        ADI_ADRV9025_GAIN_COMPENSATION_DISABLED,  // formatSelect
                        { // floatingPointConfig
                            ADI_ADRV9025_FP_FORMAT_SIGN_EXP_SIGNIFICAND,  // fpDataFormat
                            ADI_ADRV9025_ROUND_TO_EVEN,  // fpRoundMode
                            ADI_ADRV9025_2_EXPONENTBITS,  // fpNumExpBits
                            ADI_ADRV9025_FPATTEN_0DB,  // fpAttenSteps
                            ADI_ADRV9025_FP_FORMAT_HIDE_LEADING_ONE_DISABLE,  // fpHideLeadingOne
                            ADI_ADRV9025_FP_FORMAT_NAN_ENCODE_DISABLE   // fpEncodeNan
                        },
                        { // integerConfigSettings
                            ADI_ADRV9025_NO_EMBEDDED_SLICER_BITS,  // intEmbeddedBits
                            ADI_ADRV9025_INTEGER_16BIT_2SCOMP,  // intSampleResolution
                            ADI_ADRV9025_NO_PARITY,  // intParity
                            ADI_ADRV9025_LOWER_NIBBLE_ON_Q   // intEmbeddedPos
                        },
                        { // slicerConfigSettings
                            ADI_ADRV9025_EXTSLICER_STEPSIZE_1DB,  // extSlicerStepSize
                            ADI_ADRV9025_INTSLICER_STEPSIZE_1DB,  // intSlicerStepSize
                            ADI_ADRV9025_EXTSLICER_RX_GPIO_DISABLE,  // rx1ExtSlicerGpioSelect
                            ADI_ADRV9025_EXTSLICER_RX_GPIO_DISABLE,  // rx2ExtSlicerGpioSelect
                            ADI_ADRV9025_EXTSLICER_RX_GPIO_DISABLE,  // rx3ExtSlicerGpioSelect
                            ADI_ADRV9025_EXTSLICER_RX_GPIO_DISABLE   // rx4ExtSlicerGpioSelect
                        },
                        { // embOvldMonitorSettings
                            ADI_ADRV9025_RX_EMB_MON_SRC_NO_MON_DATA_EMBEDDED,  // embeddedMonitorSrcLsbI
                            ADI_ADRV9025_RX_EMB_MON_SRC_NO_MON_DATA_EMBEDDED,  // embeddedMonitorSrcLsbQ
                            ADI_ADRV9025_RX_EMB_MON_SRC_NO_MON_DATA_EMBEDDED,  // embeddedMonitorSrcLsbPlusOneI
                            ADI_ADRV9025_RX_EMB_MON_SRC_NO_MON_DATA_EMBEDDED,  // embeddedMonitorSrcLsbPlusOneQ
                            ADI_ADRV9025_HB2_LOW_SRC_OVRG_LOW_INT1_THRESH_CNTR_EXCEEDED,  // embeddedMonitorHb2LowSrcSel
                            ADI_ADRV9025_HB2_HIGH_SRC_INVALID,  // embeddedMonitorHb2HighSrcSel
                            ADI_ADRV9025_APD_LOW_SRC_INVALID,  // embeddedMonitorApdLowSrcSel
                            ADI_ADRV9025_APD_HIGH_SRC_INVALID,  // embeddedMonitorApdHighSrcSel
                            0,  // invertHb2Flag
                            0   // invertApdFlag
                        },
                        0,  // externalLnaGain
                        0   // tempCompensationEnable
                    },
                },
            },
            {  // rxChannelCfg[8]
                { // profile
                    ADI_ADRV9025_LB12,  // channelType
                    1,  // rxFirDecimation
                    5,  // rxDec5Decimation
                    2,  // rhb1Decimation
                    0,  // rhb1WideBandMode
                    1,  // rhb2Decimation
                    1,  // rhb3Decimation
                    1,  // rxFir1Decimation
                    1,  // rxFir2Decimation
                    245760,  // rxOutputRate_kHz
                    450000,  // rfBandwidth_kHz
                    225000,  // rxBbf3dBCorner_kHz
                    225000,  // rxAdcBandWidth_kHz
                    { // rxFir
                        6,  // gain_dB
                        24,  // numFirCoefs
                        {33, -7, 9, -7, 3, 9, -27, 62, -138, 349, -1663, 19282, -1663, 349, -138, 62, -27, 9, 3, -7, 9, -7, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
                    },
                    ADI_ADRV9025_RXDDC_DEC2,  // rxDdcMode
                    { // rxNcoShifterCfg
                        0,  // bandAInputBandWidth_kHz
                        0,  // bandAInputCenterFreq_kHz
                        0,  // bandANco1Freq_kHz
                        0,  // bandANco2Freq_kHz
                        0,  // bandBInputBandWidth_kHz
                        0,  // bandBInputCenterFreq_kHz
                        0,  // bandBNco1Freq_kHz
                        0,  // bandBNco2Freq_kHz
                        0   // bandAbCombinedEnable
                    },
                    4,  // tiaPowerMode
                    { // rxDataFormat
                        0x100,  // rxChannelMask
                        ADI_ADRV9025_GAIN_COMPENSATION_DISABLED,  // formatSelect
                        { // floatingPointConfig
                            ADI_ADRV9025_FP_FORMAT_SIGN_EXP_SIGNIFICAND,  // fpDataFormat
                            ADI_ADRV9025_ROUND_TO_EVEN,  // fpRoundMode
                            ADI_ADRV9025_2_EXPONENTBITS,  // fpNumExpBits
                            ADI_ADRV9025_FPATTEN_0DB,  // fpAttenSteps
                            ADI_ADRV9025_FP_FORMAT_HIDE_LEADING_ONE_DISABLE,  // fpHideLeadingOne
                            ADI_ADRV9025_FP_FORMAT_NAN_ENCODE_DISABLE   // fpEncodeNan
                        },
                        { // integerConfigSettings
                            ADI_ADRV9025_NO_EMBEDDED_SLICER_BITS,  // intEmbeddedBits
                            ADI_ADRV9025_INTEGER_16BIT_2SCOMP,  // intSampleResolution
                            ADI_ADRV9025_NO_PARITY,  // intParity
                            ADI_ADRV9025_LOWER_NIBBLE_ON_Q   // intEmbeddedPos
                        },
                        { // slicerConfigSettings
                            ADI_ADRV9025_EXTSLICER_STEPSIZE_1DB,  // extSlicerStepSize
                            ADI_ADRV9025_INTSLICER_STEPSIZE_1DB,  // intSlicerStepSize
                            ADI_ADRV9025_EXTSLICER_RX_GPIO_DISABLE,  // rx1ExtSlicerGpioSelect
                            ADI_ADRV9025_EXTSLICER_RX_GPIO_DISABLE,  // rx2ExtSlicerGpioSelect
                            ADI_ADRV9025_EXTSLICER_RX_GPIO_DISABLE,  // rx3ExtSlicerGpioSelect
                            ADI_ADRV9025_EXTSLICER_RX_GPIO_DISABLE   // rx4ExtSlicerGpioSelect
                        },
                        { // embOvldMonitorSettings
                            ADI_ADRV9025_RX_EMB_MON_SRC_NO_MON_DATA_EMBEDDED,  // embeddedMonitorSrcLsbI
                            ADI_ADRV9025_RX_EMB_MON_SRC_NO_MON_DATA_EMBEDDED,  // embeddedMonitorSrcLsbQ
                            ADI_ADRV9025_RX_EMB_MON_SRC_NO_MON_DATA_EMBEDDED,  // embeddedMonitorSrcLsbPlusOneI
                            ADI_ADRV9025_RX_EMB_MON_SRC_NO_MON_DATA_EMBEDDED,  // embeddedMonitorSrcLsbPlusOneQ
                            ADI_ADRV9025_HB2_LOW_SRC_OVRG_LOW_INT1_THRESH_CNTR_EXCEEDED,  // embeddedMonitorHb2LowSrcSel
                            ADI_ADRV9025_HB2_HIGH_SRC_INVALID,  // embeddedMonitorHb2HighSrcSel
                            ADI_ADRV9025_APD_LOW_SRC_INVALID,  // embeddedMonitorApdLowSrcSel
                            ADI_ADRV9025_APD_HIGH_SRC_INVALID,  // embeddedMonitorApdHighSrcSel
                            0,  // invertHb2Flag
                            0   // invertApdFlag
                        },
                        0,  // externalLnaGain
                        0   // tempCompensationEnable
                    },
                },
            },
            {  // rxChannelCfg[9]
                { // profile
                    ADI_ADRV9025_LB34,  // channelType
                    1,  // rxFirDecimation
                    5,  // rxDec5Decimation
                    2,  // rhb1Decimation
                    0,  // rhb1WideBandMode
                    1,  // rhb2Decimation
                    1,  // rhb3Decimation
                    1,  // rxFir1Decimation
                    1,  // rxFir2Decimation
                    245760,  // rxOutputRate_kHz
                    450000,  // rfBandwidth_kHz
                    225000,  // rxBbf3dBCorner_kHz
                    225000,  // rxAdcBandWidth_kHz
                    { // rxFir
                        6,  // gain_dB
                        24,  // numFirCoefs
                        {33, -7, 9, -7, 3, 9, -27, 62, -138, 349, -1663, 19282, -1663, 349, -138, 62, -27, 9, 3, -7, 9, -7, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
                    },
                    ADI_ADRV9025_RXDDC_DEC2,  // rxDdcMode
                    { // rxNcoShifterCfg
                        0,  // bandAInputBandWidth_kHz
                        0,  // bandAInputCenterFreq_kHz
                        0,  // bandANco1Freq_kHz
                        0,  // bandANco2Freq_kHz
                        0,  // bandBInputBandWidth_kHz
                        0,  // bandBInputCenterFreq_kHz
                        0,  // bandBNco1Freq_kHz
                        0,  // bandBNco2Freq_kHz
                        0   // bandAbCombinedEnable
                    },
                    4,  // tiaPowerMode
                    { // rxDataFormat
                        0x200,  // rxChannelMask
                        ADI_ADRV9025_GAIN_COMPENSATION_DISABLED,  // formatSelect
                        { // floatingPointConfig
                            ADI_ADRV9025_FP_FORMAT_SIGN_EXP_SIGNIFICAND,  // fpDataFormat
                            ADI_ADRV9025_ROUND_TO_EVEN,  // fpRoundMode
                            ADI_ADRV9025_2_EXPONENTBITS,  // fpNumExpBits
                            ADI_ADRV9025_FPATTEN_0DB,  // fpAttenSteps
                            ADI_ADRV9025_FP_FORMAT_HIDE_LEADING_ONE_DISABLE,  // fpHideLeadingOne
                            ADI_ADRV9025_FP_FORMAT_NAN_ENCODE_DISABLE   // fpEncodeNan
                        },
                        { // integerConfigSettings
                            ADI_ADRV9025_NO_EMBEDDED_SLICER_BITS,  // intEmbeddedBits
                            ADI_ADRV9025_INTEGER_16BIT_2SCOMP,  // intSampleResolution
                            ADI_ADRV9025_NO_PARITY,  // intParity
                            ADI_ADRV9025_LOWER_NIBBLE_ON_Q   // intEmbeddedPos
                        },
                        { // slicerConfigSettings
                            ADI_ADRV9025_EXTSLICER_STEPSIZE_1DB,  // extSlicerStepSize
                            ADI_ADRV9025_INTSLICER_STEPSIZE_1DB,  // intSlicerStepSize
                            ADI_ADRV9025_EXTSLICER_RX_GPIO_DISABLE,  // rx1ExtSlicerGpioSelect
                            ADI_ADRV9025_EXTSLICER_RX_GPIO_DISABLE,  // rx2ExtSlicerGpioSelect
                            ADI_ADRV9025_EXTSLICER_RX_GPIO_DISABLE,  // rx3ExtSlicerGpioSelect
                            ADI_ADRV9025_EXTSLICER_RX_GPIO_DISABLE   // rx4ExtSlicerGpioSelect
                        },
                        { // embOvldMonitorSettings
                            ADI_ADRV9025_RX_EMB_MON_SRC_NO_MON_DATA_EMBEDDED,  // embeddedMonitorSrcLsbI
                            ADI_ADRV9025_RX_EMB_MON_SRC_NO_MON_DATA_EMBEDDED,  // embeddedMonitorSrcLsbQ
                            ADI_ADRV9025_RX_EMB_MON_SRC_NO_MON_DATA_EMBEDDED,  // embeddedMonitorSrcLsbPlusOneI
                            ADI_ADRV9025_RX_EMB_MON_SRC_NO_MON_DATA_EMBEDDED,  // embeddedMonitorSrcLsbPlusOneQ
                            ADI_ADRV9025_HB2_LOW_SRC_OVRG_LOW_INT1_THRESH_CNTR_EXCEEDED,  // embeddedMonitorHb2LowSrcSel
                            ADI_ADRV9025_HB2_HIGH_SRC_INVALID,  // embeddedMonitorHb2HighSrcSel
                            ADI_ADRV9025_APD_LOW_SRC_INVALID,  // embeddedMonitorApdLowSrcSel
                            ADI_ADRV9025_APD_HIGH_SRC_INVALID,  // embeddedMonitorApdHighSrcSel
                            0,  // invertHb2Flag
                            0   // invertApdFlag
                        },
                        0,  // externalLnaGain
                        0   // tempCompensationEnable
                    },
                },
            }
            }, // rxChannelCfg (end of array)
        },
        { // tx
            0x0F,  // txInitChannelMask
            {  // txChannelCfg (array)
            {  // txChannelCfg[0]
                { // profile
                    245760,  // txInputRate_kHz
                    200000,  // primarySigBandwidth_kHz
                    450000,  // rfBandwidth_kHz
                    450000,  // txDac3dBCorner_kHz
                    225000,  // txBbf3dBCorner_kHz
                    2,  // dpdHb1Interpolation
                    2,  // dpdHb2Interpolation
                    1,  // txFirInterpolation
                    1,  // thb1Interpolation
                    1,  // thb2Interpolation
                    2,  // thb3Interpolation
                    1,  // txInt5Interpolation
                    { // txFir
                        0,  // gain_dB
                        20,  // numFirCoefs
                        {150, -1580, 4231, -4275, -1981, 8637, -2338, -13408, 10714, 32466, 10714, -13408, -2338, 8637, -1981, -4275, 4231, -1580, 150, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
                    },
                    8   // txBbfPowerMode
                },
                { // txAttenCtrl
                    ADI_ADRV9025_TXATTEN_0P05_DB,  // txAttenStepSize
                    63,  // txRampDownEvents
                    0,  // reserved
                    ADI_ADRV9025_TXATTEN_SPI_MODE,  // attenMode
                    ADI_ADRV9025_TX_DACFS_0DB,  // dacFullScale
                    10000   // txAttenInit_mdB
                },
                ADI_ADRV9025_TX_DACFS_0DB   // dacFullScale
            },
            {  // txChannelCfg[1]
                { // profile
                    245760,  // txInputRate_kHz
                    200000,  // primarySigBandwidth_kHz
                    450000,  // rfBandwidth_kHz
                    450000,  // txDac3dBCorner_kHz
                    225000,  // txBbf3dBCorner_kHz
                    2,  // dpdHb1Interpolation
                    2,  // dpdHb2Interpolation
                    1,  // txFirInterpolation
                    1,  // thb1Interpolation
                    1,  // thb2Interpolation
                    2,  // thb3Interpolation
                    1,  // txInt5Interpolation
                    { // txFir
                        0,  // gain_dB
                        20,  // numFirCoefs
                        {150, -1580, 4231, -4275, -1981, 8637, -2338, -13408, 10714, 32466, 10714, -13408, -2338, 8637, -1981, -4275, 4231, -1580, 150, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
                    },
                    8   // txBbfPowerMode
                },
                { // txAttenCtrl
                    ADI_ADRV9025_TXATTEN_0P05_DB,  // txAttenStepSize
                    63,  // txRampDownEvents
                    0,  // reserved
                    ADI_ADRV9025_TXATTEN_SPI_MODE,  // attenMode
                    ADI_ADRV9025_TX_DACFS_0DB,  // dacFullScale
                    10000   // txAttenInit_mdB
                },
                ADI_ADRV9025_TX_DACFS_0DB   // dacFullScale
            },
            {  // txChannelCfg[2]
                { // profile
                    245760,  // txInputRate_kHz
                    200000,  // primarySigBandwidth_kHz
                    450000,  // rfBandwidth_kHz
                    450000,  // txDac3dBCorner_kHz
                    225000,  // txBbf3dBCorner_kHz
                    2,  // dpdHb1Interpolation
                    2,  // dpdHb2Interpolation
                    1,  // txFirInterpolation
                    1,  // thb1Interpolation
                    1,  // thb2Interpolation
                    2,  // thb3Interpolation
                    1,  // txInt5Interpolation
                    { // txFir
                        0,  // gain_dB
                        20,  // numFirCoefs
                        {150, -1580, 4231, -4275, -1981, 8637, -2338, -13408, 10714, 32466, 10714, -13408, -2338, 8637, -1981, -4275, 4231, -1580, 150, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
                    },
                    8   // txBbfPowerMode
                },
                { // txAttenCtrl
                    ADI_ADRV9025_TXATTEN_0P05_DB,  // txAttenStepSize
                    63,  // txRampDownEvents
                    0,  // reserved
                    ADI_ADRV9025_TXATTEN_SPI_MODE,  // attenMode
                    ADI_ADRV9025_TX_DACFS_0DB,  // dacFullScale
                    10000   // txAttenInit_mdB
                },
                ADI_ADRV9025_TX_DACFS_0DB   // dacFullScale
            },
            {  // txChannelCfg[3]
                { // profile
                    245760,  // txInputRate_kHz
                    200000,  // primarySigBandwidth_kHz
                    450000,  // rfBandwidth_kHz
                    450000,  // txDac3dBCorner_kHz
                    225000,  // txBbf3dBCorner_kHz
                    2,  // dpdHb1Interpolation
                    2,  // dpdHb2Interpolation
                    1,  // txFirInterpolation
                    1,  // thb1Interpolation
                    1,  // thb2Interpolation
                    2,  // thb3Interpolation
                    1,  // txInt5Interpolation
                    { // txFir
                        0,  // gain_dB
                        20,  // numFirCoefs
                        {150, -1580, 4231, -4275, -1981, 8637, -2338, -13408, 10714, 32466, 10714, -13408, -2338, 8637, -1981, -4275, 4231, -1580, 150, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
                    },
                    8   // txBbfPowerMode
                },
                { // txAttenCtrl
                    ADI_ADRV9025_TXATTEN_0P05_DB,  // txAttenStepSize
                    63,  // txRampDownEvents
                    0,  // reserved
                    ADI_ADRV9025_TXATTEN_SPI_MODE,  // attenMode
                    ADI_ADRV9025_TX_DACFS_0DB,  // dacFullScale
                    10000   // txAttenInit_mdB
                },
                ADI_ADRV9025_TX_DACFS_0DB   // dacFullScale
            }
            }, // txChannelCfg (end of array)
        },
        { // dataInterface
            {  // framer (array)
            {  // framer[0]
                0,  // enableJesd204C
                0,  // bankId
                1,  // deviceId
                0,  // lane0Id
                8,  // jesd204M
                32,  // jesd204K
                4,  // jesd204F
                16,  // jesd204Np
                0,  // jesd204E
                0,  // scramble
                15,  // serializerLanesEnabled
                0,  // lmfcOffset
                0,  // syncbInSelect
                0,  // overSample
                1,  // syncbInLvdsMode
                0,  // syncbInLvdsPnInvert
                { // serializerLaneCrossbar
                    0,  // lane1FramerOutSel
                    1,  // lane0FramerOutSel
                    2,  // lane2FramerOutSel
                    3  // lane3FramerOutSel
                },
                { // adcCrossbar
                    ADI_ADRV9025_ADC_RX1_I,  // conv0
                    ADI_ADRV9025_ADC_RX1_Q,  // conv1
                    ADI_ADRV9025_ADC_RX2_I,  // conv2
                    ADI_ADRV9025_ADC_RX2_Q,  // conv3
                    ADI_ADRV9025_ADC_DUALBAND_RX3_BAND_A_I,  // conv4
                    ADI_ADRV9025_ADC_RX3_Q,  // conv5
                    ADI_ADRV9025_ADC_DUALBAND_RX4_BAND_A_I,  // conv6
                    ADI_ADRV9025_ADC_RX4_Q,  // conv7
                    ADI_ADRV9025_ADC_DISABLE,  // conv8
                    ADI_ADRV9025_ADC_DISABLE,  // conv9
                    ADI_ADRV9025_ADC_DISABLE,  // conv10
                    ADI_ADRV9025_ADC_DISABLE,  // conv11
                    ADI_ADRV9025_ADC_DISABLE,  // conv12
                    ADI_ADRV9025_ADC_DISABLE,  // conv13
                    ADI_ADRV9025_ADC_DISABLE,  // conv14
                    ADI_ADRV9025_ADC_DISABLE,  // conv15
                    ADI_ADRV9025_ADC_DISABLE,  // conv16
                    ADI_ADRV9025_ADC_DISABLE,  // conv17
                    ADI_ADRV9025_ADC_DISABLE,  // conv18
                    ADI_ADRV9025_ADC_DISABLE,  // conv19
                    ADI_ADRV9025_ADC_DISABLE,  // conv20
                    ADI_ADRV9025_ADC_DISABLE,  // conv21
                    ADI_ADRV9025_ADC_DISABLE,  // conv22
                    ADI_ADRV9025_ADC_DISABLE   // conv23
                },
                0,  // newSysrefOnRelink
                0,  // sysrefForStartup
                0,  // sysrefNShotEnable
                0,  // sysrefNShotCount
                0   // sysrefIgnoreWhenLinked
            },
            {  // framer[1]
                0,  // enableJesd204C
                0,  // bankId
                0,  // deviceId
                0,  // lane0Id
                0,  // jesd204M
                0,  // jesd204K
                0,  // jesd204F
                0,  // jesd204Np
                0,  // jesd204E
                0,  // scramble
                0,  // serializerLanesEnabled
                0,  // lmfcOffset
                0,  // syncbInSelect
                0,  // overSample
                0,  // syncbInLvdsMode
                0,  // syncbInLvdsPnInvert
                { // serializerLaneCrossbar
                    8,  // lane0FramerOutSel
                    8,  // lane1FramerOutSel
                    8,  // lane2FramerOutSel
                    8   // lane3FramerOutSel
                },
                { // adcCrossbar
                    ADI_ADRV9025_ADC_DISABLE,  // conv0
                    ADI_ADRV9025_ADC_DISABLE,  // conv1
                    ADI_ADRV9025_ADC_DISABLE,  // conv2
                    ADI_ADRV9025_ADC_DISABLE,  // conv3
                    ADI_ADRV9025_ADC_DISABLE,  // conv4
                    ADI_ADRV9025_ADC_DISABLE,  // conv5
                    ADI_ADRV9025_ADC_DISABLE,  // conv6
                    ADI_ADRV9025_ADC_DISABLE,  // conv7
                    ADI_ADRV9025_ADC_DISABLE,  // conv8
                    ADI_ADRV9025_ADC_DISABLE,  // conv9
                    ADI_ADRV9025_ADC_DISABLE,  // conv10
                    ADI_ADRV9025_ADC_DISABLE,  // conv11
                    ADI_ADRV9025_ADC_DISABLE,  // conv12
                    ADI_ADRV9025_ADC_DISABLE,  // conv13
                    ADI_ADRV9025_ADC_DISABLE,  // conv14
                    ADI_ADRV9025_ADC_DISABLE,  // conv15
                    ADI_ADRV9025_ADC_DISABLE,  // conv16
                    ADI_ADRV9025_ADC_DISABLE,  // conv17
                    ADI_ADRV9025_ADC_DISABLE,  // conv18
                    ADI_ADRV9025_ADC_DISABLE,  // conv19
                    ADI_ADRV9025_ADC_DISABLE,  // conv20
                    ADI_ADRV9025_ADC_DISABLE,  // conv21
                    ADI_ADRV9025_ADC_DISABLE,  // conv22
                    ADI_ADRV9025_ADC_DISABLE   // conv23
                },
                0,  // newSysrefOnRelink
                0,  // sysrefForStartup
                0,  // sysrefNShotEnable
                0,  // sysrefNShotCount
                0   // sysrefIgnoreWhenLinked
            },
            {  // framer[2]
                0,  // enableJesd204C
                0,  // bankId
                0,  // deviceId
                0,  // lane0Id
                0,  // jesd204M
                0,  // jesd204K
                0,  // jesd204F
                0,  // jesd204Np
                0,  // jesd204E
                0,  // scramble
                0,  // serializerLanesEnabled
                0,  // lmfcOffset
                0,  // syncbInSelect
                0,  // overSample
                0,  // syncbInLvdsMode
                0,  // syncbInLvdsPnInvert
                { // serializerLaneCrossbar
                    8,  // lane0FramerOutSel
                    8,  // lane1FramerOutSel
                    8,  // lane2FramerOutSel
                    8   // lane3FramerOutSel
                },
                { // adcCrossbar
                    ADI_ADRV9025_ADC_DISABLE,  // conv0
                    ADI_ADRV9025_ADC_DISABLE,  // conv1
                    ADI_ADRV9025_ADC_DISABLE,  // conv2
                    ADI_ADRV9025_ADC_DISABLE,  // conv3
                    ADI_ADRV9025_ADC_DISABLE,  // conv4
                    ADI_ADRV9025_ADC_DISABLE,  // conv5
                    ADI_ADRV9025_ADC_DISABLE,  // conv6
                    ADI_ADRV9025_ADC_DISABLE,  // conv7
                    ADI_ADRV9025_ADC_DISABLE,  // conv8
                    ADI_ADRV9025_ADC_DISABLE,  // conv9
                    ADI_ADRV9025_ADC_DISABLE,  // conv10
                    ADI_ADRV9025_ADC_DISABLE,  // conv11
                    ADI_ADRV9025_ADC_DISABLE,  // conv12
                    ADI_ADRV9025_ADC_DISABLE,  // conv13
                    ADI_ADRV9025_ADC_DISABLE,  // conv14
                    ADI_ADRV9025_ADC_DISABLE,  // conv15
                    ADI_ADRV9025_ADC_DISABLE,  // conv16
                    ADI_ADRV9025_ADC_DISABLE,  // conv17
                    ADI_ADRV9025_ADC_DISABLE,  // conv18
                    ADI_ADRV9025_ADC_DISABLE,  // conv19
                    ADI_ADRV9025_ADC_DISABLE,  // conv20
                    ADI_ADRV9025_ADC_DISABLE,  // conv21
                    ADI_ADRV9025_ADC_DISABLE,  // conv22
                    ADI_ADRV9025_ADC_DISABLE   // conv23
                },
                0,  // newSysrefOnRelink
                0,  // sysrefForStartup
                0,  // sysrefNShotEnable
                0,  // sysrefNShotCount
                0   // sysrefIgnoreWhenLinked
            }
            }, // framer (end of array)
            {  // deframer (array)
            {  // deframer[0]
                0,  // enableJesd204C
                0,  // bankId
                1,  // deviceId
                0,  // lane0Id
                8,  // jesd204M
                32,  // jesd204K
                4,  // jesd204F
                16,  // jesd204Np
                0,  // jesd204E
                0,  // scramble
                15,  // deserializerLanesEnabled
                0,  // lmfcOffset
                0,  // syncbOutSelect
                1,  // syncbOutLvdsMode
                0,  // syncbOutLvdsPnInvert
                0,  // syncbOutCmosSlewRate
                0,  // syncbOutCmosDriveLevel
                { // deserializerLaneCrossbar
                    0,  // deframerInput0LaneSel
                    1,  // deframerInput1LaneSel
                    2,  // deframerInput2LaneSel
                    3  // deframerInput3LaneSel
                },
                { // dacCrossbar
                    ADI_ADRV9025_DEFRAMER_OUT0,  // tx1DacChanI
                    ADI_ADRV9025_DEFRAMER_OUT1,  // tx1DacChanQ
                    ADI_ADRV9025_DEFRAMER_OUT2,  // tx2DacChanI
                    ADI_ADRV9025_DEFRAMER_OUT3,  // tx2DacChanQ
                    ADI_ADRV9025_DEFRAMER_OUT4,  // tx3DacChanI
                    ADI_ADRV9025_DEFRAMER_OUT5,  // tx3DacChanQ
                    ADI_ADRV9025_DEFRAMER_OUT6,  // tx4DacChanI
                    ADI_ADRV9025_DEFRAMER_OUT7   // tx4DacChanQ
                },
                0,  // newSysrefOnRelink
                1,  // sysrefForStartup
                0,  // sysrefNShotEnable
                0,  // sysrefNShotCount
                0   // sysrefIgnoreWhenLinked
            },
            {  // deframer[1]
                0,  // enableJesd204C
                0,  // bankId
                0,  // deviceId
                0,  // lane0Id
                0,  // jesd204M
                0,  // jesd204K
                0,  // jesd204F
                0,  // jesd204Np
                0,  // jesd204E
                0,  // scramble
                0,  // deserializerLanesEnabled
                0,  // lmfcOffset
                0,  // syncbOutSelect
                0,  // syncbOutLvdsMode
                0,  // syncbOutLvdsPnInvert
                0,  // syncbOutCmosSlewRate
                0,  // syncbOutCmosDriveLevel
                { // deserializerLaneCrossbar
                    8,  // deframerInput0LaneSel
                    8,  // deframerInput1LaneSel
                    8,  // deframerInput2LaneSel
                    8   // deframerInput3LaneSel
                },
                { // dacCrossbar
                    ADI_ADRV9025_DEFRAMER_OUT_DISABLE,  // tx1DacChanI
                    ADI_ADRV9025_DEFRAMER_OUT_DISABLE,  // tx1DacChanQ
                    ADI_ADRV9025_DEFRAMER_OUT_DISABLE,  // tx2DacChanI
                    ADI_ADRV9025_DEFRAMER_OUT_DISABLE,  // tx2DacChanQ
                    ADI_ADRV9025_DEFRAMER_OUT_DISABLE,  // tx3DacChanI
                    ADI_ADRV9025_DEFRAMER_OUT_DISABLE,  // tx3DacChanQ
                    ADI_ADRV9025_DEFRAMER_OUT_DISABLE,  // tx4DacChanI
                    ADI_ADRV9025_DEFRAMER_OUT_DISABLE   // tx4DacChanQ
                },
                0,  // newSysrefOnRelink
                1,  // sysrefForStartup
                0,  // sysrefNShotEnable
                0,  // sysrefNShotCount
                0   // sysrefIgnoreWhenLinked
            }
            }, // deframer (end of array)
            {  // serCfg (array)
            {  // serCfg[0]
                0,  // serAmplitude
                0,  // serPreEmphasis
                0,  // serPostEmphasis
                0   // serInvertLanePolarity
            },
            {  // serCfg[1]
                0,  // serAmplitude
                0,  // serPreEmphasis
                0,  // serPostEmphasis
                0   // serInvertLanePolarity
            },
            {  // serCfg[2]
                0,  // serAmplitude
                0,  // serPreEmphasis
                0,  // serPostEmphasis
                0   // serInvertLanePolarity
            },
            {  // serCfg[3]
                0,  // serAmplitude
                0,  // serPreEmphasis
                0,  // serPostEmphasis
                0   // serInvertLanePolarity
            }
            }, // serCfg (end of array)
            {  // desCfg (array)
            {  // desCfg[0]
                0,  // desInvertLanePolarity
                0,  // highBoost
                0,  // configOption1
                0,  // configOption2
                0,  // configOption3
                0,  // configOption4
                0,  // configOption5
                0,  // configOption6
                0,  // configOption7
                0,  // configOption8
                0,  // configOption9
                0   // configOption10
            },
            {  // desCfg[1]
                0,  // desInvertLanePolarity
                0,  // highBoost
                0,  // configOption1
                0,  // configOption2
                0,  // configOption3
                0,  // configOption4
                0,  // configOption5
                0,  // configOption6
                0,  // configOption7
                0,  // configOption8
                0,  // configOption9
                0   // configOption10
            },
            {  // desCfg[2]
                0,  // desInvertLanePolarity
                0,  // highBoost
                0,  // configOption1
                0,  // configOption2
                0,  // configOption3
                0,  // configOption4
                0,  // configOption5
                0,  // configOption6
                0,  // configOption7
                0,  // configOption8
                0,  // configOption9
                0   // configOption10
            },
            {  // desCfg[3]
                0,  // desInvertLanePolarity
                0,  // highBoost
                0,  // configOption1
                0,  // configOption2
                0,  // configOption3
                0,  // configOption4
                0,  // configOption5
                0,  // configOption6
                0,  // configOption7
                0,  // configOption8
                0,  // configOption9
                0   // configOption10
            }
            }, // desCfg (end of array)
            { // linkSharingCfg
                0,  // linkSharingEnabled
                0,  // linkSharingM
                0,  // linkSharingS
                16,  // linkSharingNp
                { // linkSharingAdcCrossbar
                    ADI_ADRV9025_ADC_DISABLE,  // conv0
                    ADI_ADRV9025_ADC_DISABLE,  // conv1
                    ADI_ADRV9025_ADC_DISABLE,  // conv2
                    ADI_ADRV9025_ADC_DISABLE,  // conv3
                    ADI_ADRV9025_ADC_DISABLE,  // conv4
                    ADI_ADRV9025_ADC_DISABLE,  // conv5
                    ADI_ADRV9025_ADC_DISABLE,  // conv6
                    ADI_ADRV9025_ADC_DISABLE,  // conv7
                    ADI_ADRV9025_ADC_DISABLE,  // conv8
                    ADI_ADRV9025_ADC_DISABLE,  // conv9
                    ADI_ADRV9025_ADC_DISABLE,  // conv10
                    ADI_ADRV9025_ADC_DISABLE,  // conv11
                    ADI_ADRV9025_ADC_DISABLE,  // conv12
                    ADI_ADRV9025_ADC_DISABLE,  // conv13
                    ADI_ADRV9025_ADC_DISABLE,  // conv14
                    ADI_ADRV9025_ADC_DISABLE   // conv15
                },
            },
            { // dataCfg
                0,  // enable
                0,  // configOption1
                0   // configOption2
            },
            0,  // channelSelect
            0   // channelMode
        },
    };
    
    
    adi_adrv9025_PostMcsInit_t adrv9025PostMcsInit = 
    {
        { // radioCtrlInit
            { // radioCtrlModeCfg
                { // txRadioCtrlModeCfg
                    ADI_ADRV9025_TX_EN_SPI_MODE,  // txEnableMode
                    0x0F   // txChannelMask
                },
                { // rxRadioCtrlModeCfg
                    ADI_ADRV9025_RX_EN_SPI_MODE,  // rxEnableMode
                    0xFF   // rxChannelMask
                },
                { // orxRadioCtrlModeCfg
                    ADI_ADRV9025_ORX_EN_SPI_MODE,  // orxEnableMode
                    0,  // orxPinSelectSettlingDelay_armClkCycles
                    ADI_ADRV9025_SINGLE_CH_PIN_MODE_ORX1_FE,  // singleChannel1PinModeOrxSel
                    ADI_ADRV9025_SINGLE_CH_PIN_MODE_ORX1_FE,  // singleChannel2PinModeLowOrxSel
                    ADI_ADRV9025_SINGLE_CH_PIN_MODE_ORX1_FE,  // singleChannel2PinModeHighOrxSel
                    ADI_ADRV9025_DUAL_CH_PIN_MODE_ORX1_ORX3_SEL   // dualChannel2PinModeOrxSel
                },
            },
            { // txToOrxMapping
                ADI_ADRV9025_MAP_TX1_ORX1,  // orx1Map
                ADI_ADRV9025_MAP_TX2_ORX2,  // orx2Map
                ADI_ADRV9025_MAP_TX3_ORX3,  // orx3Map
                ADI_ADRV9025_MAP_TX4_ORX4   // orx4Map
            },
            { // streamGpioCfg
                ADI_ADRV9025_GPIO_INVALID,  // streamGpInput0
                ADI_ADRV9025_GPIO_INVALID,  // streamGpInput1
                ADI_ADRV9025_GPIO_INVALID,  // streamGpInput2
                ADI_ADRV9025_GPIO_INVALID,  // streamGpInput3
                ADI_ADRV9025_GPIO_INVALID,  // streamGpInput4
                ADI_ADRV9025_GPIO_INVALID,  // streamGpInput5
                ADI_ADRV9025_GPIO_INVALID,  // streamGpInput6
                ADI_ADRV9025_GPIO_INVALID,  // streamGpInput7
                ADI_ADRV9025_GPIO_INVALID,  // streamGpInput8
                ADI_ADRV9025_GPIO_INVALID,  // streamGpInput9
                ADI_ADRV9025_GPIO_INVALID,  // streamGpInput10
                ADI_ADRV9025_GPIO_INVALID,  // streamGpInput11
                ADI_ADRV9025_GPIO_INVALID,  // streamGpInput12
                ADI_ADRV9025_GPIO_INVALID,  // streamGpInput13
                ADI_ADRV9025_GPIO_INVALID,  // streamGpInput14
                ADI_ADRV9025_GPIO_INVALID   // streamGpInput15
            },
            1680000000U,  // lo1PllFreq_Hz
    		1680000000U,  // lo2PllFreq_Hz
            0U   // auxPllFreq_Hz
        },
        { // initCals
            0xD37FF,  // calMask
            0x0F,  // channelMask
            0   // warmBoot
        },
        { // calRsltsFile
        },
        0   // checkFwVer
    };
    

  • which was generated from the profile “51_nonLinkSharing” with our small modifications

    What are the small modifications done? Without any modifications, were you able to get the phase synchronization?

  • The SYSREF pulses are 4 usec wide and are sent every 1msec.

    Sysref frequency needs to be an Integer submultiple of LMFC clock. 

    I guess your LMFC clock is at 7.68 MHz, Try configuring Sysref to 1.92 MHz .

  • We have finally resolved this issue. Following is a list of all the changes we needed to make to the init file in order to get it working properly:

    1) Enabled RFPLL phase sync and track continuously (set value to 2).

    2) Set the clock distribution IC to send 4 SYSREF pulses instead of one, at a rate which is an integer submultiple of the LMFC clock.

    3) Measured the buffer depth vs. deframer LMFC offset, determined that the offset needs to be 8.

    4) Used the same LMFC offset for the framer to obtain deterministic latency in RX also.

    Thank you all for your support!