On 03/01/2016 10:53 AM, Nigel Steed wrote:

Thanks Marcus,

I have now implemented the tune request with a python module. Integer N mode really helps with eliminating the spurs.

I have also added timed commands within the python file, but when I read the N210 timer, all the fractional values are fixed at .99999998.

That's just floating-point rounding error in the Python print function.

I have therefore re-compiled the UHD Source Block C Code to output to the console the time which is correct and all the fractional values are counting. Does this mean implementing time commands in python does not work ?

Thanks,

*From:*discuss-gnuradio-bounces+nigel.steed=xenint....@gnu.org [mailto:discuss-gnuradio-bounces+nigel.steed=xenint....@gnu.org] *On Behalf Of *Marcus D. Leech
*Sent:* 01 March 2016 15:44
*To:* discuss-gnuradio@gnu.org
*Subject:* Re: [Discuss-gnuradio] UHD Source Block and N210/SBX Synchronisation

On 03/01/2016 04:57 AM, Nigel Steed wrote:

    Hi All,

    Has anyone managed to use/modify the UHD Source Block to phase
    synchronise multiple N210/SBX ?

    From what I have read I must perform the following

    (1)Configure to use external references (10MHz and 1PPS) using the
    options in the UHD Source Block

    (2)Use integer N mode for the PLL

    (3)Re-tune the frequency of the PLL’s on multiple N210/SBX at the
    same using a time command

    (4)Align the CORDIC’s at initialisation and after a re-tune from
    (2) above by stopping and starting a stream disciplined to a time
    command which issues a reset to the CORDIC’s at the same time

    Thanks,

    Nigel

The only thing really missing in gr-uhd is the ability to do timed commands. You can force integer-N mode by constructing your own tune_request that includes the integer-N option. You'd use a feature from the latest Gnu Radio to help you with this, because it involves getting into the internal structure of a tune_request blob. So, use the "Python module" block, and in that Python do something like:

def integer_N_tune_me(freq):
    r = uhd.tune_request(freq)
    r.args = {"mode_n" : "integer"}
    return r

Then, in your UHD source/sink block, instead of using your target frequency directly, use:

your_module_name.integer_N_tune_me(desired_freq)



Martin could probably comment on the feasibility of adding timed commands to gr-uhd.



_______________________________________________
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio

Reply via email to