I am interested in using ad9361 to conduct frequency hopping for our application. Based on the ad9361 reference manual, it stated that for fast hopping rate, it is recommended to use fast lock method. Upon trying the fast lock functions, I stumbled across this function "ad9361_fastlock_recall()" which takes up a lot of processing time. Inside this function, I see notice this weird process. This process only occur if the new value for FORCE ALC register is the same for the previous TX/RX FORCE ALC register value. Based on the comment, it stated that this is a workaround for locked process.
I tried looking into the ad9361 register map documents, it also didn't explained much. Is it possible to explain what this FORCE ALC register does, what this process is really doing and what problem will it caused if I comment away this workaround process? Will it cause the LO synthesizer to be unable to lock at that frequency? I am trying to cut down on the processing time used on this function Please kindly get back to me.
The project reference version I am using is based on 2016_R1 branch.
Please see this thread here:
It also talks about the ALC ...
Based on what I understood from the above thread, it is mentioned that to get the maximum settling time, the ALC word should be different and to achieve that is by toggling the LSB of the ALC word. Am I right? And what do you mean by maximum settling time? Is it suppose to be the fastest or slowest , just to be confirmed?
Lastly, if the ALC is the same throughout, does it also means the settling time will be deterministic ?
It has been a long time ago when I looked into this. Let's summarize it with undesired behavior will occur when the ALC word is the same between two consecutive profiles. If you recall them by the SW API, the driver will make sure to apply the workaround. However if you recall profiles by PIN CONTROL. You need to make sure that you invoke profiles in a sequence such that this condition it true.
Thanks for the explanation. Just to have more clarity on how the workaround function. Does it just toggle the lsb of the ALC value if it detect the current ALC value is the same as previous?