AD9364 TX FASTLOCK LO Switching for more than 8 frequencies


I am using AD 9364 no-os API to configure the TX LO fastlock switching mode. For a less than 8 number of  frequency, i am able to configure successfully using store and recall apis but not able to configure properly for more than 8 frequencies.

I am requesting to  provide a example C code for tx lo switching of more than 8 frequencies using fast lock mode.


  • Thank you .

    We are getting a incorrect output with following code which is written to configure 16 freq. Please check the flow and programming sequence .


    	   for(DF_index = 0 ; DF_index <16; DF_index =DF_index +1 )
    		    tx_lo_switch = (2400000000 + (1000000*DF_index));
    			ad9361_set_tx_lo_freq(ad9361_phy,tx_lo_switch );
    			ad9361_tx_fastlock_store(ad9361_phy, DF_index);			
    	 for(DF_index = 0 ; DF_index <16; DF_index =DF_index +1 )
    					ad9361_get_tx_lo_freq (ad9361_phy,&read_lo_fc);
    					printf("F1 %lld\n",read_lo_fc);

  • 0
    •  Analog Employees 
    on Jan 13, 2021 9:19 AM 1 month ago in reply to SVel883

    Load all the first 8 profiles altogether and then recall each of the profiles one by one in a loop.Similarly, load the remaining 8 profiles together and then recall each of the profile in a loop.

  • for(DF_index = 0 ; DF_index <17; DF_index =DF_index +1 ) //Store and Save for 16 freq
    profile_no = (DF_index >7)?(DF_index-8):(DF_index);
    tx_lo_switch = (2400000000 + (1000000*DF_index));
    ad9361_set_tx_lo_freq(ad9361_phy,tx_lo_switch ); //Set tx LO
    ad9361_tx_fastlock_store(ad9361_phy, profile_no); 
    ad9361_tx_fastlock_save(ad9361_phy,profile_no,&synth_info[DF_index][0]);  //synth_info is a 17*16 array
    for(DF_index = 0 ; DF_index <17; DF_index =DF_index +1 )//load and recall for 16 freq
    ad9361_tx_fastlock_load(ad9361_phy,0,&synth_info[DF_index][0]);//loading in slot 0 from synth_info
    ad9361_tx_fastlock_recall(ad9361_phy,0); //recalling from slot 0

    Thank you so much for your reply sir !!!

    I am able to configure the fastlock profiles for more than 8 frequencies. The attached code works properly (functionally) . The issues is, to load a particular frequency on a given slot,the load function (ad9361_tx_fastlock_load()) takes 1.3milliseconds and recall (ad9361_tx_fastlock_recall()) function takes 60 microseconds .

    1. Is  method and order of configuration valid (in attched c code) ?

    2. What is the maximum  LO frequency switching time in fastlock mode ?

    Our application requires fast lo frequency switching (approx of 100us) and please provide your valuable command and suggestion on this regard

    Thanking you 



  • Thank you every one , We have increased the SPI clock frequency by setting a minimum prescalar value for SPI clock. After the change the , In fastlock mode ,LO frequency switching time is in the order of 80-90 micoseconds for more than 8 frequency using (ad9361_tx_fastlock_load()) api.