Hi,

_tx_freq is an intermediate frequency.
It is defined in:
uhd/host/lib/usrp/common/ad9361_driver/ad9361_device.h
If you need to modify uhd, you really need to install ctags, and grep
the sources...

HTH
Nikos

On Thu, Jul 28, 2022 at 10:42 PM <yanzhan...@gmail.com> wrote:
>
> Hi, all,
>
>
>
> I have a E312 device and I just find that the tuning speed of E312 is very 
> slow (~150ms) for each tuning. Thus I would like to modify the underlying 
> tuning source code in the uhd software architecture.
>
>
>
> Here is what I found:
>
>
>
> I first create a multi_usrp object:
>
> uhd::usrp::multi_usrp::sptr usrp = uhd::usrp::multi_usrp::make(device_args);
>
>
>
>
>
> then I tune the usrp by running a loop:
>
>
>
> int count = 200;
> for(int a = 0; a < count; a++) {
>         uhd::tune_request_t tune_request(600e6 + a*10e6);
>
>         usrp->set_rx_freq(tune_request, 0);
>         usrp->set_tx_freq(tune_request, 0);
> }
>
>
>
> Basically, the loop tunes the frequency from 600MHz to 2.6 GHz with a step 
> size of 10 MHz. The 200 tunings take 52 seconds, which is pretty slow.
>
>
>
> Thus, I traced the call stack from usrp->set_rx_freq(tune_request, 0). Here 
> is what I found:
>
> usrp->set_rx_freq(tune_request, 0);  calls the method set_tx_frequency() in 
> uhd/host/lib/usrp/dboard/e3xx/e3xx_radio_control_impl.cpp
>
> then the method set_tx_frequency() in 
> uhd/host/lib/usrp/dboard/e3xx/e3xx_radio_control_impl.cpp calls the tune() 
> method in uhd/host/lib/usrp/dboard/e3xx/e3xx_ad9361_iface.cpp
>
> then the tune() method in uhd/host/lib/usrp/dboard/e3xx/e3xx_ad9361_iface.cpp 
> calls the method set_tx_frequency() in 
> uhd/host/lib/rfnoc/radio_control_impl.cpp.
>
>
>
> The conclusion I have reached so far is the underlying tuning method is in  
> uhd/host/lib/rfnoc/radio_control_impl.cpp:
>
>
>
> double radio_control_impl::set_tx_frequency(const double freq, const size_t 
> chan)
> {
>     std::lock_guard<std::mutex> l(_cache_mutex);
>     return _tx_freq[chan] = freq;
> }
>
>
>
> Then I just got stuck here, what is the _tx_freq[chan] ? I just can not find 
> more.
>
>
>
>
>
> What I want to do is to modify the underlying ad9361 driver, so that when 
> tuning a frequency, I can bypass the calibration in the ad9361 to speed up 
> the tuning speed.
>
>
>
> Can anyone point me to 1.where I can find the source code for tuning for the 
> E312 with uhd 4.0 or 2. how to use mpm to get low-level access to ad9361 so 
> that I can write my own tuning method for ad9361 ?
>
>
>
> Thanks,
>
> Yan
>
> _______________________________________________
> USRP-users mailing list -- usrp-users@lists.ettus.com
> To unsubscribe send an email to usrp-users-le...@lists.ettus.com
_______________________________________________
USRP-users mailing list -- usrp-users@lists.ettus.com
To unsubscribe send an email to usrp-users-le...@lists.ettus.com

Reply via email to