discuss-gnuradio
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Discuss-gnuradio] two channel rx phase relations


From: Eric Blossom
Subject: Re: [Discuss-gnuradio] two channel rx phase relations
Date: Wed, 14 Sep 2005 09:03:48 -0700
User-agent: Mutt/1.5.6i

On Wed, Sep 14, 2005 at 10:47:01AM -0400, cswiger wrote:
> All - asking before moving on to another strategy:
> Two channels input (mux = 0xf0f0f1f0) - can the two
> DDC be phase locked or sync'd ? The phase between them
> appears to jump about at random after a
> 
> chan0.set_rx_freq(0,-freq)
> chan1.set_rx_freq(1,-freq)
> 
> 
> TIA
> 
> --Chuck

Hi Chuck,


The phase changes because the two set_rx_freq are not atomic with
respect to each other.  It might be possible to disable the given Rx
or Tx side of the USRP, set both of them, and then reenable.

A quick look at usrp_basic.h reveals that I have not exported the
(currently) protected methods set_rx_enable, rx_enable, disable_rx and
restore_rx or the corresponding methods on the tx side.   Let me take
a look at that. 

There is a bit of a question about what disabling/enabling the Tx or
Rx sides of the USRP should do.  Should it empty all the fifos in the
path?  I.e., FPGA, FX2 and host side?  How about the interaction with
all the async USB requests in flight?

Another option may be to provide a method that atomically zeros one or
more phase registers.  That takes a bit of verilog hacking, but might
be a more satisfactory solution (fewer dependencies, more likely to
work the first time out.)

Say,

  bool zero_ddc_phase(int channel_mask)

Eric





reply via email to

[Prev in Thread] Current Thread [Next in Thread]