Post Go back to editing

ADRV9009-ZU11EG SOM External Sync Requirements

Thread Summary

The user is trying to phase-sync an HMC7044-CRR using a 50MHz reference signal and a 100MHz VCXO, and asks about the setup/hold requirements for the SYNC pin and the feasibility of disabling SYNC events after initial synchronization. The final answer confirms that setting the 'adi,clkin1-vco-in-enable' property in the devicetree disables both PLLs and the VCO, and suggests feeding the 50MHz reference to CLKIN0/RFSYNC through PLL1 to clean up the signal and lock the VCXO. The user successfully modified the devicetree to sync the HMC7044-CRR to the external reference.
AI Generated Content

Hello,

I am trying to finalize a solution for an external SYNC source for a SOM setup. A simplified block diagram of the HMC7044-CRR to HMC7044-SOM is shown below.

My goal is to use the HMC7044-SOM chip in fanout-only mode, and to have the ADRV9009's TX/RX sample rates at 200MSPS. The noted REFCLK and RFSYNC frequency values are not hard set, just an example. I have a couple questions regarding the SYNC pin requirements I couldn't find in the datasheet.

I understand the SYNC pin is sampled in the VCXO domain, so in this case at 100MHz. Due to some system architecture limitations and lack of foresight, I only have access to a free-running 50MHz 50% duty cycle signal to use as the input of SYNC (the 50MHz signal is used as a reference elsewhere for phase-locking and is an ideal signal to lock to). This leads to my first question: 

1) What are the setup/hold requirements for the SYNC pin using a 100MHz VCXO? Is using a 50MHz 50% duty cycle signal feasible? Ignoring the fact a single SYNC pulse is desired (see next question).

From reading the datasheet I also saw SYNC should only be applied once, and having edges after a 16*6tDP2 amount of time will retrigger SYNC events and cause the outputs to toggle between enabled/disabled (from this EZ post). This leads to my second question:

If at startup of the SOM, I don't care if everything downstream of the HMC7044-SOM has integer clock rates yet, the HMC7044-SOM starts as default in the devicetree. I only care that the outputs of the HMC7044-CRR are phase-synced at this point.

2) Is it feasible to let the SYNC event occur however many times, then disable all the Clock Distribution registers' SYNC Enable bits in the HMC7044-CRR? Once all the output channels are not susceptible to a SYNC event, I would then set the HMC7044-SOM to fanout mode with stable CLKIN0/CLKIN1 signals and appropriate divide values.

I foresee this causing some conflict with the ADRV9009 device clock values and other things downstream from the HMC7044-SOM...

If this setup isn't feasible, I can do some workarounds depending on the SYNC requirements, but for a first pass this would be an ideal setup without any hardware modifications.

Thank you for your assistance,

-Samual

  • As SYNCINBx and SYNCOUTBX signals are asynchronous and it goes high or low depending on certain condition. So there is no specific timing requirement and relation to DEV_CLK_IN. 

    Refer to below posts:

    https://ez.analog.com/wide-band-rf-transceivers/design-support-adrv9008-1-adrv9008-2-adrv9009/f/q-a/164320/adrv9009-rf-som-multichip-sync 

  • Hi,

    I'm not sure my question was interpreted correctly, maybe I worded it in a confusing way. I am not asking specifically about ADRV9009s syncing. That should work once the HMC7044's are setup correctly. My questions pertain to getting the HMC7044-CRR phase-sync'd via the SYNC input pin with some specific system constraints. Let me clarify below:

    I have an external 50MHz continuous source used as a phase reference input to the HMC7044-CRR. I do not have an associated REF_CLK input to the HMC7044-CRR, so using the HMC7044-CRR in fanout mode is not possible. However, I need to phase-sync the HMC7044-CRR to the 50MHz source somehow. The HMC7044-SOM will be used in fanout mode from the HMC7044-CRR supplied signals.

    If I use this 50MHz source as an input to the digital SYNC input signal on the HMC7044-CRR with a 100MHz VCXO:

    1. Is the setup/hold time of the SYNC pin met with a 50MHz input and 100MHz VCXO? I couldn't find specifics on this setup/hold time of the input SYNC pin in the HMC7044 datasheet.
    2. If the above is yes, then each time the HMC7044-CRR finishes a synchronization event a new one will be triggered since the SYNC input is continuous. This will cause the HMC7044-CRR outputs to toggle on/off, and the will cascade down to the outputs of the HMC7044-SOM since the HMC7044-SOM is in fanout mode. I.e. all the FPGA clocks (core_clk_a/b), ADRV9009 clocks (REF_CLK_ADRV_A/B, SYSREF_ADRV_A/B), and some GTH clocks will be toggled on/off. Once my software verifies the HMC7044-CRR is sync'd, then I would disable all the HMC7044-CRR outputs to be susceptible to SYNC events and thus stop the output toggling. Would the FPGA/ADRV9009's be recoverable after such a sequence of events (i.e. not not be locked-out or stop working till a reboot)? Would reset commands be enough to get the both the FPGA ADRV9009's working again?

    Best,

    -Samual

  • Moving to the appropriate forum for comments on HMC7044.

  • I think I am a bit daft...

    Previous revisions of my custom carrier board only included the 122.88MHz VCXO, so PLL1 couldn't be used to phase-lock the VCXO to the integer reference. But rereading that section of the datasheet, it looks like I could feed the reference to the CLKIN0/RFSYNC and make some devicetree changes so that the reference goes through PLL1 to be cleaned up/lock the VCXO to, then the 100MHz VCXO can be used by PLL2 to generate a desired VCO frequency (say 2400MHz). Then with the HMC7044-SOM I can use in fanout mode as desired.

    If someone can confirm the above is true, I'll close this thread out.

    Thanks much,

    -Samual

  • Hi Samuel,

    I’m a bit puzzled why you need the SYNC pin et all.

    If you provide a 50MHz reference to the HMC7044-CRR then you’re automatically phase synced.

    SYNC is only relevant if you need to synchronized multiple of your HMC7044-CRR->HMC7044-SOM setups.

    So to summarize if you have a 100MHz VCXO on the  HMC7044-CRR you can cleanup this reference by PLL1 and PLL2 of the HMC7044-CRR tune it’s VCO to 2400MHz,

    And then provide a divide down to the downstream HMC7044-SOM in fanout mode. You need to use CLKIN1/FIN for that purpose. You also provide a sync pulse via CLKIN0/RFSYNC

     

    On the HMC7044-SOM you enable this mode by setting following dt attributes:

     

                    adi,clkin1-vco-in-enable;

                    adi,clkin0-rf-sync-enable;

                    adi,clkin0-buffer-mode = <HMC7044_CLKIN_LVPECL_100OHM_TERM>; /* My need HW modification - remove AC couble Caps ??? */

                    adi,clkin1-buffer-mode = <HMC7044_CLKIN_AC_COUPLING>;

     

    This devicetree here basically does it:

    https://github.com/analogdevicesinc/linux/blob/master/arch/arm64/boot/dts/xilinx/zynqmp-adrv9009-zu11eg-revb-adrv2crr-fmc-revb-sync-fmcomms8-jesd204-fsm-using-clockdist.dts

     

    hmc7044_car uses PLL1, PLL2 and provides a 983.04MHz clock to the downstream HMC7044 in fanout mode.

     

    Best Regards,

    Michael

  • Michael,

    Absolutely I do not need the SYNC pin. I was able to modify the devicetree yesterday and get an external reference synced to the HMC7044-CRR successfully.

    Previously I only had access to carriers with the 122.88MHz VCXO, so I couldn't easily use an integer reference source without degraded phase noise and didn't really read through the PLL1 section of the datasheet.

    I do have a followup question:

    When enabling fanout mode in the devicetree for an HMC7044, do the "adi,clkin0-rf-sync-enable" and adi,clkin1-vco-in-enable" properties also disable PLL1/Pll2 as well? Or do I need to separately write the appropriate registers to disable?

    Thanks,

    -Samual

  • When enabling fanout mode in the devicetree for an HMC7044, do the "adi,clkin0-rf-sync-enable" and adi,clkin1-vco-in-enable" properties also disable PLL1/Pll2 as well? Or do I need to separately write the appropriate registers to disable?

    Please see here: 

    https://github.com/analogdevicesinc/linux/blob/88b7d86ff997549cdf24c91edfef24e39e1f34fd/drivers/iio/frequency/hmc7044.c#L1044-L1075

    In case adi,clkin1-vco-in-enable; is set both PLLs and the VCO doesn't get enabled.

    -Michael

  • Awesome, thanks as always Michael!

    -Samual