Post Go back to editing

adrv9002 LO change is very slow

I am using the adrv9002 eval board.
All seems to be working correctly.

However, changing the LO seems to take about 200mS which is quite slow.

I am changing this through 

out_altvoltage0_RX1_LO_frequency via sysfs.

How can I speed this up?

I would like to scan from 30M to 6G as fast as possible.

With the slow LO change this takes 30 seconds, which is very slow.

Maybe SPI clock running slow? If so, how would I change this?

Thanks for the help



Parents Reply
  • I found that if I set the in_voltage0_ensm_mode to calibrated

    Then tune the RX1_LO

    The tune time is quite fast.

    However, setting  in_voltage0_ensm_mode back to rf_enabled takes a long time.

    Is there a parameter maybe in /sys/kernel/debug/iio that I can set to speed this up?

    Also, I noticed that the pll_status is in the unlocked stated until I switch the ensm_mode back to rf_enabled. After that it reports locked.

    Thanks again

Children
  • Is there possibly a way to change the RX1_LO loop filter parameters via /sys/kernel/debug ?

    or enable/disable calibration after changing the RX1_LO? Via sys/kernel/debug?

  • However, setting  in_voltage0_ensm_mode back to rf_enabled takes a long time.

    In this case, I believe the PLL will only retune when you move the port to rf_enabled which will add more time to an operation that already takes some time...

    Is there a parameter maybe in /sys/kernel/debug/iio that I can set to speed this up?

    No, if we had that we would already have pointed you to that paramater instead of saying that fast hopping is the way to go Wink.

    Is there possibly a way to change the RX1_LO loop filter parameters via /sys/kernel/debug ?

    Currently no...

    or enable/disable calibration after changing the RX1_LO? Via sys/kernel/debug?

    Not sure I'm following this question... What do you mean by enable/disable calibration? Don't think that there's anything you can do to speed up LOs other than fast hopping

    - Nuno Sá

  • Hi Nuno,

    I put some code in adrv9002.c and adi_adrv9001_radio.c to see what was taking the most time.

    The call to adi_adrv9001_channel_to_state is what takes 90+% of the time in the function adrv9002_phy_lo_write. Both calls take a long time (that is taking out of rf_enable state and putting it back in this state).

    Since I am only receiving and have the device configured so that only RX1 is set up, can I comment out the adi_adrv9001_channel_to_state function calls in the function adrv9002_phy_lo_write. And also comment out the check for the state being either calibrated or standby in the function adi_adrv9001_Radio_Carrier_Configure_Validate ?

    I just want to make sure that I would not damage the radio if I do this.

    Thanks again for the help

  • Hi Guys any thoughts about the previous post, regarding eliminating the calls to adi_adrv9001_channel_to_state ?

    Thanks