I see, but the offset in phase between the two radios will affect the
amplitude, right? That was the assumption I was using, since it gives out
an amplitude reading, but the phase clearly will affect that reading, I
presumed.

Unfortunately, I don't have any documentation on the RSSI circuit apart
from the following description from the vendor:

The RSSI functionality allows the sampling of the received signal to
provide an indication of the amount of energy being harvested. When DSET is
driven high the harvested DC power will be directed to an internal sense
resistor, and the corresponding voltage will be provided to the DOUT pin.
The voltage on the DOUT pin can be read after a 50μs settling time. RSSI
shows the actual power level that is being received at the antenna. This
number is accurate from 0.04mW to 50mW.

This probably does not help at all to debug. Sorry about that.

On Tue, Jul 5, 2016 at 4:42 PM, Marcus D. Leech <mle...@ripnet.com> wrote:

> On 07/05/2016 07:28 PM, Pavan Yedavalli wrote:
>
> The way I'm doing it is the following (please correct me if there is a
> fundamental error in assumptions): I am actually using an RSSI circuit that
> is receiving the power from the USRPs/antennas, and I'm determining whether
> the phase offset is the same based on that RSSI value. For example, I run
> the flowgraph once, and I get an RSSI value on the other side of 2.5 mW,
> but when I run the flowgraph again, it produces an RSSI value of 9.5 mW. In
> my mind, if that offset was constant, then it would have produced something
> around 2.5 mW again. I know this adds another variable to the mix, but I
> have confirmed the accurate functioning of the RSSI circuit/receiver as
> well as the static nature of the channel, so its reading is very reliable.
>
> Could you describe this RSSI circuit?  Normally, they're only sensitive to
> amplitude, not phase.
>
>
>
>
> On Tue, Jul 5, 2016 at 4:19 PM, Marcus D. Leech <mle...@ripnet.com> wrote:
>
>> On 07/05/2016 06:47 PM, Pavan Yedavalli wrote:
>>
>> Hi Marcus,
>>
>> Thanks for the background. That helps greatly. Having said that, I am
>> unclear which commands specifically tune the radios, so I did the following
>> around the frequency tuning (after all of the time source, gain, and
>> antenna setting code):
>>
>>         addr_string = "addr0=192.168.10.3,addr1=192.168.10.4"
>>         self.uhd_usrp_sink_0_0 = uhd.usrp_sink(
>>             ",".join((addr_string, "")),
>>             uhd.stream_args(
>>                 cpu_format="fc32",
>>                 channels=range(2),
>>             ),
>>         )
>>
>>
>>         self.uhd_usrp_sink_0_0.set_clock_source("external", 0)
>>         self.uhd_usrp_sink_0_0.set_time_source("external", 0)
>>         self.uhd_usrp_sink_0_0.set_clock_source("mimo", 1)
>>         self.uhd_usrp_sink_0_0.set_time_source("mimo", 1)
>>         self.uhd_usrp_sink_0_0.set_samp_rate(samp_rate)
>>         self.uhd_usrp_sink_0_0.set_gain(31.5, 0)
>>         self.uhd_usrp_sink_0_0.set_gain(31.5, 1)
>>         self.uhd_usrp_sink_0_0.set_antenna("TX/RX", 0)
>>         self.uhd_usrp_sink_0_0.set_antenna("TX/RX", 1)
>>         self.analog_sig_source_x_0_1 = analog.sig_source_c(samp_rate,
>> analog.GR_CONST_WAVE, 10000, 1, 0)
>>         self.analog_sig_source_x_0_0_0 = analog.sig_source_c(samp_rate,
>> analog.GR_CONST_WAVE, 10000, 1, 0)
>>
>>
>>
>>
>>
>>
>>
>>
>> *        self.uhd_usrp_sink_0_0.set_time_unknown_pps(uhd.time_spec())
>>     now = self.uhd_usrp_sink_0_0.get_time_now()         start_time = now +
>> uhd.time_spec(.5)
>> self.uhd_usrp_sink_0_0.set_command_time(start_time)
>> self.uhd_usrp_sink_0_0.set_center_freq(915000000, 0)
>> self.uhd_usrp_sink_0_0.set_center_freq(915000000, 1)
>> self.uhd_usrp_sink_0_0.clear_command_time()*
>>
>>
>> However, when running it, this does not appear to produce a constant
>> offset either, but I'm not sure whether this is the correct code to wrap
>> around. Please keep me posted. Thanks.
>>
>> On Tue, Jul 5, 2016 at 12:49 PM, <mle...@ripnet.com> wrote:
>>
>>> That is precisely what I'm saying, and precisely what timed-commands for
>>> tuning were invented.  On certain hardware, after the tune is complete, a
>>> phase-reset pulse is sent by the FPGA. The only way for THAT to have the
>>> desired effect is to make sure that the phase-reset pulse happens at the
>>> same instant.
>>>
>>> Modern synthesizers use a technique called fractional-N synthesis.  One
>>> of the side effects of this is that you can't predict where the LO will
>>> "lock" with respect to the reference clock. So, any two PLL synthesizers,
>>> even when feed an identical reference clock, will not have the same phase
>>> offset with respect to one another.  It's the "physics" of fractional-N PLL
>>> synthesis.
>>>
>>> SO, if you're using GRC to generate you flows, you'll have to modify the
>>> generated code, and wrap set_command_time()/clear_command_time() around the
>>> place in the code where it tunes the radios.
>>>
>>> Clearly, if this depends on TIME, then all radios involved need to agree
>>> on the current time, to high precision, hence the related requirement for
>>> set_time_unknown_pps(), which uses the 1PPS signal to trigger loading of
>>> the time-of-day clocks on each USRP in the multi_usrp object.
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>> On 2016-07-05 15:41, Pavan Srikrishna Yedavalli wrote:
>>>
>>> I am using USRP N210 with SBX daughterboards. All devices are connected
>>> to the octoclock ref and octoclock PPS. It would be nice to get phase
>>> alignment, but mere coherence-with-an-offset is sufficient if that offset
>>> stays constant across different runs of the file/flowgraph. Are you saying
>>> that that offset cannot be constant due to the randomness of the LO phase
>>> offset at each run? Thanks again.
>>>
>>>
>>> _____________________________
>>> From: mle...@ripnet.com
>>> Sent: Tuesday, July 5, 2016 12:35 PM
>>> Subject: Re: [Discuss-gnuradio] random phase offset constantly changing
>>> with octoclock setup
>>> To: Pavan Yedavalli <psy2...@columbia.edu>
>>> Cc: Discuss-gnuradio <discuss-gnuradio-bounces+mleech=ripnet....@gnu.org>,
>>> GNURadio Discussion List <discuss-gnuradio@gnu.org>
>>>
>>>
>>> WHat specific hardware line-up do you have?
>>>
>>> You have to use set_time_unknown_pps(), but also, if you want phase
>>> alignment (as opposed to mere coherence-with-an-offset), you need to use
>>> timed tuning commands across your systems. This will result in zero
>>> relative phase offset between boards, if you're using SBX or UBX (on the
>>> X310).  Note that this is phase between the boards, there's no way to make
>>> certain the the LO phase has a predictable offset with respect to external
>>> received signals, only that the two LO phases agree.
>>>
>>>
>>>
>>>
>>>
>>>
>>> On 2016-07-05 15:26, Pavan Yedavalli wrote:
>>>
>>> Hi,
>>>
>>> Despite all of my boards being connected via the Octoclock (ref and
>>> pps), I am constantly getting different phase offsets every time I run a
>>> gnuradio flowgraph (or python file).
>>>
>>> I am not sure why this is happening, but I do know that I need to call
>>> one of the functions, set_time_now() and/or set_time_unknown_pps(), to make
>>> sure all of them are synced. Which one am I supposed to call? I have been
>>> calling set_time_unknown_pps(), but I am getting the above/below problem
>>> with that, so maybe set_time_now() could be correct?
>>>
>>> In general, I don't understand why I continually get a different random
>>> phase offset of all of the radios after every new flowgraph run. Shouldn't
>>> this offset be the same if I continue to transmit at the same frequency?
>>> Would one of the above functions fix that?
>>>
>>> Hopefully that is clear. Thank you so much for the help.
>>>
>>> --
>>> Pavan
>>>
>>> _______________________________________________
>>> Discuss-gnuradio mailing list
>>> Discuss-gnuradio@gnu.org
>>> https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
>>>
>>>
>>>
>>>
>>
>>
>> --
>> Pavan
>>
>> How are you measuring the phase-offset between the two sinks?
>>
>>
>>
>
>
> --
> Pavan
>
>
>


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

Reply via email to