We are using multiple ADRV9009 with HMC7044 on our custom board and are currently evaluating the RFPLL phase sync feature. Our RX phases are in sync after the board booting on the default LO frequency (2.4 GHz). Phase sync mode is INIT_AND_CONTTRACK. We are using the recommended init routine where the HMC7044 outputs SYSREF via pulse generator, level sensitive on GPI4. We are receiving the RX samples via iio-block in GNURadio and measuring the relative phases there, similar to github.com/.../sinewave_phase_est.grc
When changing the LO frequencies via "out_altvoltage0_RX_LO_frequency"attribute on all RF-transceivers during runtime, the phases are random and not repeatable. I saw in this forum that the tracking algorithm is slow, but even after multiple minutes we see no change or regulation in the phases. When changing the LO frequency back to the initial frequency of 2.4GHz the phases are instantly in sync again.
We also tried to going through the multichip_sync attribute steps (0-11) of all devices after the LO freq change, but this only results in new random phases. When changing the LO freq back to 2.4GHz the phases are directly in sync again even though the multichip sync was done on the prevous LO frequency.
I read in that frequency changes can only be done within RFBW/2 of the profile. Is this true? We tried frequency changes from 2.4 GHz to 2.401 GHz, to 2.410 GHZ and to 600MHz, but with always the same result. The profile is configured with 100MHz RFBW.
Has someone an idea why 1. the phase tracking is not working after frequency changes and 2. the MCS is working and correcting the phases at bootup but not during runtime?
Thanks for the help and best regards
The relative phase difference between the different TX paths will be constant for a particular frequency. When frequency is changed the path delay (routing) in each path can be different and hence they may give different phase.
If you are changing frequency , you need to run antenna calibration to calculate and nullify the phase offset between the different Tx paths. RF PLL phase sync helps in retaining the relative phase offsets between each path for a particular frequency over multiple boots.
Thanks for you reply. Your answer is surprising for us since phase tracking over LO PLL frequency changes should be possible as per lots of documents from AD like this technical artikle: https://www.analog.com/en/technical-articles/integrated-transceivers-enable-phased-array-radar-systems.html
Is it possible to achive constant phase difference over PLL frequency changes without booting, especially for RX channels?
We just changed in the device tree the default LO frequencies of all transceiver from 2.4GHz to 1.8 GHz and now the phases are random after every power cycle. It seems like the phase sync is only working for 2.4GHz.
As far as we understand, nullifying the phases removes the relative phase difference but it is not helpful when the system has new random phases after every bootup.
What are the necessary steps for achiving repeatable phases on LO frequencies other than 2.4GHz?
Thank you and best regards
With RF Phase sync you should get repeatable constant phase difference.
One thing you can check is the JESD FIFO depth. If FIFO depth varies a lot from boot up to boot up, you will see corresponding difference in phase.
From UG: it is important that the FIFO depth be checked after the link is established, and the link is adjusted to achieve a FIFO depth that is close to the medium depth. The FIFO depth can be checked in Register 0x15CE for Deframer 0 and in Register 0x161E for Deframer 1. Write to the appropriate register with a value of 0x80 to latch the current FIFO depth, and then read back.
Thank you for your reply. We see no changes in the value of this both registers after frequency changes or reboots. Both registers are on 0x10 everytime.
Your information are related to Deframer, so for the TX paths. Is there something else what we can check for the RX pahts to get repeatable RX phases after LO frequency changes?
Thank you and best regards,