NCO and VCO frequencies

Gnuradio controls the receiver side on the usrp inorder to receive data
centered around certain center frequency… and in doing that it sets 2
frequencies on the USRP one in the analog domain which is the center
frequency of the VCO running on the daughterBoard, and the other one in
the
digital domain inside the fpga which is the NCO frequency which is NCO
Frequency …

We need to know how does gnuradio control or map these two frequency ?
for
example if we want to receive data around 913 Mhz … what values will
be
loaded in the VCO frequency register and in NCO frequency register !!!

Objective : we need to make this desired frequency only dependant on the
NCO
frequency and independant on the the VCO frequency, so first we should
know
how gnuradio control these two values so that we could develop a method
to
make it only dependant on NCO frequency.

Thanks in advance.

will be loaded in the VCO frequency register and in NCO frequency
register !!!

Objective : we need to make this desired frequency only dependant on
the NCO frequency and independant on the the VCO frequency, so first
we should know how gnuradio control these two values so that we could
develop a method to make it only dependant on NCO frequency.

Thanks in advance.

In broad general terms, the Gnu Radio USRP “block” (whether its the
original gr-usrp or the newer UHD) takes parameter values from Gnu
Radio and “does the right thing”, depending on which daughtercard is
installed on the USRP motherboard.

Generally, PLL synthesizers have no standard mechanism for setting
frequency, although they all use the same broad-general approach.
I think all of the daughterboard PLL synthesizers are programmed over
I2C from the USRP/USRP2/N2xx/E1xx motherboard, but the
specific details of which registers inside the PLL are set to what
values to correspond to whatever the desired center frequency is, tends
to be highly chip-specific.

PLL synthesizers generall have a “resolution” or “minimum step size” in
their frequency-setting logic. Values between 10kHz and 25kHz are
“typical”, which means that if you specify a center frequency that
isn’t a multiple of the inherent step-size on the synthesizer, the
NCO/DDC
inside the FPGA does a “mop up” operation to arrange for your desired
center frequency to be exactly centered at DC in your baseband
(I and Q) signals going into the Gnu Radio flow-graph.

My suggestion would be to study the UHD source code in detail, including
the FPGA/Firmware pieces for your particular setup.

Objective : we need to make this desired frequency only dependant on the NCO
frequency and independant on the the VCO frequency, so first we should know
how gnuradio control these two values so that we could develop a method to
make it only dependant on NCO frequency.

take a look at uhd::tune_request_t and uhd::tune_result_t

http://www.ettus.com/uhd_docs/doxygen/html/structuhd_1_1tune__result__t.html
http://www.ettus.com/uhd_docs/doxygen/html/structuhd_1_1tune__request__t.html

You can use the policy_t, inter_freq (VCO) and dsp_freq (NCO) to
control the tuning.

Also, tune_request’s can be passed into calls to set_center_freq() on
gr-uhd sink and source block and get a tune_result back:

http://www.ettus.com/uhd_docs/doxygen/html/classuhd_1_1usrp_1_1multi__usrp.html#a9b61448f392466e20572fdcb042e8ec6

Jason