Possibility of Switching From Frac-N to Int-N PLL Mode in LabVIEW USRP Drivers

Updated Nov 14, 2024

Reported In

Driver

  • NI-USRP

Issue Details

I am using the NI USRP RIO and NI-USRP drivers on the LabVIEW platform to program my USRP device for GNSS functions. My goal is to switch from the fractional-n PLL mode to the integer-n PLL mode to give me control over frequency drift. The default for USRPs is the fractional-n mode. I know how to change from frac-n mode to int-n mode with the GNU radio. This is how it works with GNU radio:

tune_req.args = uhd::device_addr_t("mode_n=integer"); //to use Int-N tuning

How can I change this within the LabVIEW environment?
 

Solution

The option to switch PLL modes is a native function of USRP Hardware Driver™ (UHD) which is what GNU Radio operates on. While the NI-USRP and NI USRP RIO drivers do have some UHD components, most of it is custom code and is wrapped around UHD, thus not offering the same functionality.
 
This parameter cannot be changed within the LabVIEW environment as it runs the NI-USRP, and USRP RIO FPGA drivers, and not the Ettus UHD driver.

Additional Information

The NI-USRP driver was specifically made for high-level control only which makes it easier to prototype and test.
The NI USRP RIO FPGA driver is more complex and offers more flexibility than the NI-USRP driver.
The Ettus UHD driver (also NI) was made for the low-level control that allows the PLL mode change and thus is more flexible, however, it requires some prerequisite knowledge in UHD programming.