Post Go back to editing

ADRV9009 MCS and RF PLL Phase Sync Question

Hello,

    I am using custom board with ultrascale+ and muti adrv9009.

    I need to use MCS and RF PLL phase sync function.

    The software that I use is no-os example( I modified for muti chip) and Firmware is 6.0.2, API is 3.6.0.5.
   

    Refer to UG1295 and API manual,  I did some tests and got results as list:

    1. Just run TALISE_enableMultichipSync(), and .rfPllPhaseSyncMode = TAL_RFPLLMCS_INIT_AND_SYNC.

        Result : After TALISE_enableMultichipSync, I get MultiChipSyncStatus,the SyncStatus value is 0xB. Look muti TX Singal on the oscilloscope, RF PLL Phase Sync is not sync.

    2. Run TALISE_enableMultichipSync(), and set .rfPllPhaseSyncMode = TAL_RFPLLMCS_INIT_AND_SYNC.

        Result : same as test 1.

    3. Just run TALISE_enableMultichipRfLOPhaseSync(), and set .rfPllPhaseSyncMode = TAL_RFPLLMCS_INIT_AND_SYNC.

        Result : After TALISE_enableMultichipSync, I get MultiChipSyncStatus,the SyncStatus value is 0x3, JESD Link Status error.

    3.Set .rfPllPhaseSyncMode = TAL_RFPLLMCS_INIT_AND_SYNC, run TALISE_enableMultichipSync() first, then run TALISE_enableMultichipRfLOPhaseSync() , and set                          .rfPllPhaseSyncMode = TAL_RFPLLMCS_INIT_AND_SYNC.

        Result : After TALISE_enableMultichipSync, I get MultiChipSyncStatus,the SyncStatus value is 0xB, after TALISE_enableMultichipRfLOPhaseSync() , the SyncStatus value is 0x3, JESD Link Status OK, RF PLL Phase is synced.

So,

1. Should I use both TALISE_enableMultichipSync() and TALISE_enableMultichipRfLOPhaseSync() for mcs and RF PLL sync?

2. why does TALISE_enableMultichipRfLOPhaseSync() reset  Device Clock divider Sync Status? Does this have any effect to msc ?

Parents
  • Should I use both TALISE_enableMultichipSync() and TALISE_enableMultichipRfLOPhaseSync() for mcs and RF PLL sync?

    Yes. Your third sequence is correct. You have to first run MCS to set JESD204B deterministic latency using SYSREF signal pulses as normal. Then you have to run RFPLL phase synchronization that uses existing signaling and the SYSREF signal to accomplish LO phase synchronization.

    Hope you are sending the SYSREF's after the MCS as per the JES204B API Initialization sequence given in UG.

  • Hello srimoyi,

    TALISE_enableMultichipRfLOPhaseSync() must be called INSTEAD of TALISE_enableMultichipSync() or shall we call both of them ?
    We found a power point document telling to call one instead of the other, but your answer says to call both of them.

    www.analog.com/.../Talise_Release_6-0_Customer_ Release_ Notes_3-6-0-6.pdf


    can you tell us when to call each ? I mean at what point inside the initialization procedure

    Thanks

    BR

      Pietro

  • You have to run both the MCS as well as RFPLLMCS. MCS is meant for baseband synchronization and RFPLL is meant for RFPLL synchronization.

    Sequence to run MCS:

    Initialize all devices in system using TALISE_initialize() 2) Run TALISE_enableMultichipSync with enableMcs = 1 3) Send at least 4 SYSREF pulses 4) Run TALISE_enableMultichipSync with enableMcs = 0 5) Run ARM cals and continue to active Transmit/Receive.

    Sequence to run RFPLL MCS:

    1) Initialize all devices in system using TALISE_initialize() 2) Run TALISE_enableMultichipRfLOPhaseSync with enableDigTestClk = 1 before TALISE_runInitCals() 3) Send at least 3 SYSREF pulses 4) Run TALISE_enableMultichipRfLOPhaseSync with enableDigTestClk = 0 5) Send at least 3 SYSREF pulses 6) Continue with init sequnece ...Run initCals, bringup JESD, etc

Reply
  • You have to run both the MCS as well as RFPLLMCS. MCS is meant for baseband synchronization and RFPLL is meant for RFPLL synchronization.

    Sequence to run MCS:

    Initialize all devices in system using TALISE_initialize() 2) Run TALISE_enableMultichipSync with enableMcs = 1 3) Send at least 4 SYSREF pulses 4) Run TALISE_enableMultichipSync with enableMcs = 0 5) Run ARM cals and continue to active Transmit/Receive.

    Sequence to run RFPLL MCS:

    1) Initialize all devices in system using TALISE_initialize() 2) Run TALISE_enableMultichipRfLOPhaseSync with enableDigTestClk = 1 before TALISE_runInitCals() 3) Send at least 3 SYSREF pulses 4) Run TALISE_enableMultichipRfLOPhaseSync with enableDigTestClk = 0 5) Send at least 3 SYSREF pulses 6) Continue with init sequnece ...Run initCals, bringup JESD, etc

Children