Send USRP-users mailing list submissions to
        [email protected]

To subscribe or unsubscribe via the World Wide Web, visit
        http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com
or, via email, send a message with subject or body 'help' to
        [email protected]

You can reach the person managing the list at
        [email protected]

When replying, please edit your Subject line so it is more specific
than "Re: Contents of USRP-users digest..."


Today's Topics:

   1. Digital Hopping (Nuria Ibrahim)
   2. Re: Digital Hopping (Josh Blum)
   3. Re: Problems with Tx-MIMO (Josh Blum)


----------------------------------------------------------------------

Message: 1
Date: Wed, 9 Jan 2013 23:33:18 -0800 (PST)
From: Nuria Ibrahim <[email protected]>
To: [email protected]
Subject: [USRP-users] Digital Hopping
Message-ID:
        <[email protected]>
Content-Type: text/plain; charset="utf-8"




        
        
        
        
        
        


Dear Josh

I have a few questions
regarding digital hopping(DSP/Cord) and? streaming data from
usrp2 
as follows:

Q#1. in digital hopping as you have
stated we can leave the LO fixed and tune from the DSP or Cord and in
my understanding I thought the RF front-end(Local Oscillator ) will
remain stable locked regardless of retuning request because the ?
rf_freq_policy is set? to None .However when I call?
get_rx_freq() it returns the new frequency  why?
please clarify, 
here is an example
with piece of code-

?? freq = 936.4Mhz???

??? 
???
m_pSdev->set_rx_freq(freq); % tunes to my beacon frequency
???
m_pSdev->get_rx_freq() ;????   %returns
936.4Mhz as expected
???? 
??????
.
??????
.???????????????????????????????????
           % I have done some decoding on that frequency
??????
.
??? %Switch to frequency Hopping
???????
    cmd_time = uhd::time_spec_t(time_ahead); %planning to tune at
time time_ahead in advance? 
??? ???
??? ?m_pSdev->set_command_time(cmd_time);%set
command_time on device??? ??? ???
??? ??? ?
???
??? ??? ?uhd::tune_request_t
tune_req(hope_freq);??? % request to retune to new
hope_freq ? 
??? ??? ???
?tune_req.rf_freq_policy=uhd::tune_request_t::policy_t('N');
%set RF ploicy to None
??? ??? ???
?m_pSdev->set_rx_freq(tune_req);
??? ???
??? ?float sleep_milliseconds = ( time_ahead -
m_pSdev->get_time_now() ).get_real_secs();??? ???

???
??boost::this_thread::sleep(boost::posix_time::milliseconds(
sleep_milliseconds));%sleep to prevent                command from
overwritting
??? ??? ???
?m_pSdev->clear_command_time();??? 
???
??? ??? ?time_ahead+=
hopping_prd;% update time_ahead for next  hop
?           









Q#2. I have set my streaming mode to
continuous using the following command 

uhd::stream_cmd_t
stream_cmd(uhd::stream_cmd_t::STREAM_MODE_START_CONTINUOUS);    

in digital hopping is there any
possibility where by the usrp could go unstable in  retuning
process?if Yes , does this mean  that when I process data on my Queue
 I should be careful enough to skip all timestamped samples that are
received before the usrp attains locking state?again if Yes in my
application I have measured tuning latency to be in the range of 190
-217 micro-seconds. And as you have mentioned in the forum  worst
case tuning latency  is 300micro-seconds.now suppose I have requested
tuning at time x and would need to skip(in processing) all samples
between   x and x+tau, where tau could assume any value in the
range(190 ? 300micro-seconds).however my confusion is which value
of  tau should I take in my calculation?because my  application must
stay synchronized through all hopping frequencies  and is there any
means where I could know the exact time usrp achieves a lock  using
the get_rx_lo_locked() function so that I will be more accurate in my
calculation?



THANKS!  


-------------- next part --------------
An HTML attachment was scrubbed...
URL: 
<http://lists.ettus.com/pipermail/usrp-users_lists.ettus.com/attachments/20130109/cf10732a/attachment-0001.html>

------------------------------

Message: 2
Date: Thu, 10 Jan 2013 09:35:53 -0600
From: Josh Blum <[email protected]>
To: [email protected]
Subject: Re: [USRP-users] Digital Hopping
Message-ID: <[email protected]>
Content-Type: text/plain; charset=windows-1252


> .
>     %Switch to frequency Hopping
>        
>     cmd_time = uhd::time_spec_t(time_ahead); %planning to tune at
> time time_ahead in advance  
>        
>      m_pSdev->set_command_time(cmd_time);%set
> command_time on device           
>          
>    
>          uhd::tune_request_t
> tune_req(hope_freq);    % request to retune to new
> hope_freq   
>            
>  tune_req.rf_freq_policy=uhd::tune_request_t::policy_t('N');
> %set RF ploicy to None
>            
>  m_pSdev->set_rx_freq(tune_req);
>        
>      float sleep_milliseconds = ( time_ahead -
> m_pSdev->get_time_now() ).get_real_secs();       
> 
>    
>   boost::this_thread::sleep(boost::posix_time::milliseconds(
> sleep_milliseconds));%sleep to prevent                command from
> overwritting
>            
>  m_pSdev->clear_command_time();    
>    
>          time_ahead+=
> hopping_prd;% update time_ahead for next  hop
>             
> 

The code looks to be the right idea. I am a little confused about the issue.

* Is the problem that after set_rx_freq(tune_req), get_rx_freq() returns
a value != hop_freq? If this is the case, what is it returning?

* Or is the issue that you expected get_rx_freq() to readback hop_freq
after time_ahead, but instead it was immediate? In this case, i can see
how thats undesirable, but the setting is shadowed immediately in the
driver once the command is set, it doesnt have knowledge of the the
FPGA's internal control execution.


> 
> Q#2. I have set my streaming mode to
> continuous using the following command 
> 
> uhd::stream_cmd_t
> stream_cmd(uhd::stream_cmd_t::STREAM_MODE_START_CONTINUOUS);    
> 
> in digital hopping is there any
> possibility where by the usrp could go unstable in  retuning
> process?if Yes , does this mean  that when I process data on my Queue
>  I should be careful enough to skip all timestamped samples that are
> received before the usrp attains locking state?again if Yes in my

Yes

> application I have measured tuning latency to be in the range of 190
> -217 micro-seconds. And as you have mentioned in the forum  worst
> case tuning latency  is 300micro-seconds.now suppose I have requested
> tuning at time x and would need to skip(in processing) all samples
> between   x and x+tau, where tau could assume any value in the
> range(190 ? 300micro-seconds).however my confusion is which value
> of  tau should I take in my calculation?because my  application must

300us is the worse case lock time, so I would assume the worst case to
be safe

> stay synchronized through all hopping frequencies  and is there any
> means where I could know the exact time usrp achieves a lock  using
> the get_rx_lo_locked() function so that I will be more accurate in my
> calculation?
> 
> 

It dependents on the implementation of get_rx_lo_locked(). Supposing a
GPIO triggers high on lock, the host could get a timestamped event. This
isnt implemented yet, but should be possible on SBX/WBX.

However, some daughterboards lock detects are implemented through spi
readback, so there really cant be an async event anyway. Your best
option is the time window.

FWIW, a gnuradio developer does have a special branch of UHD w/ mods to
send async messages on GPIO changes:
http://www.gnuradio.org/cgit/jcorgan-uhd.git/log/?h=gpio

-josh



------------------------------

Message: 3
Date: Thu, 10 Jan 2013 10:09:46 -0600
From: Josh Blum <[email protected]>
To: [email protected]
Subject: Re: [USRP-users] Problems with Tx-MIMO
Message-ID: <[email protected]>
Content-Type: text/plain; charset=ISO-8859-1


> Setting device timestamp to 0...
> Checking TX: LO: locked ...
> Checking TX: Ref: locked ...
> Press Ctrl + C to stop streaming...
> SSSSSSSSSSSSSSSSSSSSSSSSSSSSS^C
> Done!
> 
> I've search the uhd source code, but all I can find is that "O"s and "U"s may 
> be printed if over- or under-flow occurs.
> 
> 

Thats a sequence error in transmit. It would be expected if packets were
not being sent, but the driver thought they were due to this ENOBUFS

Here is the patch for freebsd, a little cleaned up w/ comments. I was
wondering if you would try it out. I dont have a way to test freebsd
ATM, and my VM isnt a good substitute anyway.

http://pastebin.com/kMci34ub

-josh



------------------------------

Subject: Digest Footer

_______________________________________________
USRP-users mailing list
[email protected]
http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com


------------------------------

End of USRP-users Digest, Vol 29, Issue 10
******************************************

Reply via email to