discuss-gnuradio
[Top][All Lists]
Advanced

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

Re: [Discuss-gnuradio] UHD Announcement - July 6th 2010


From: Josh Blum
Subject: Re: [Discuss-gnuradio] UHD Announcement - July 6th 2010
Date: Tue, 27 Jul 2010 09:09:11 -0700
User-agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1.10) Gecko/20100527 Thunderbird/3.0.5


It's working now! I changed it to 50ms instead of 10 and added the lines in
the synchronisation for loop in mimo_usrp.cpp to see the amount of deviation
between usrps if they are synchronised:

float diff=(time_i.get_real_secs() - time_0.get_real_secs())*1000;
std::cerr<<  boost::format("Time was reset successfully for board %d with
deviation: %f ms relative to board 0")
% i %diff<<  std::endl;
  The output is:
Set time with unknown pps edge:
     1) set times next pps (race condition)
     2) catch seconds rollover at pps edge
     3) set times next pps (synchronously)
Time was reset successfully for board 1 with deviation: 1.095390 ms relative
to board 0
Time was reset successfully for board 2 with deviation: 1.093340 ms relative
to board 0
Time was reset successfully for board 3 with deviation: 1.096530 ms relative
to board 0


Your seeing the RTT between requests for the timestamp, since it is working, the actual deviation is 0 and your boards are synced.

Thats why the test above is really just a sanity check to ensure that the boards are not too far off (which otherwise implies that the synchronization failed).

However, I still have a few questions:
1-Can't we make the deviation exactly zero? What factors affect this?

2- In my tries to run the flowgraphs, sometimes I receive these errors:
OError (usrp2 recv pirate loop): assertion failed: if_packet_info.has_tsi
and if_packet_info.has_tsf
   in void
usrp2_impl::io_impl::recv_pirate_loop(boost::shared_ptr<uhd::transport::zero_copy_if>,
boost::shared_ptr<usrp2_mboard_impl>, size_t)
   at /home/dave/uhd/host/lib/usrp/usrp2/io_impl.cpp:106

you told me before it's save to neglect these errors but when i neglect them
I receive rubbish data not what I am expecting, despite the fact that boards
indeed synchronised. These errors disappear when I power cycle the USRPs. Is
there anything I can do about this?


If the setup does not shut down properly, some boards may be left streaming. When a board begins to receive again, it may get partial packets and recognize them as junk. You can ignore the warnings.

When you close the flowgraph does the application exit nicely or do you have to control+C?

personal todo list: clean out the udp recv buffer chain on initialization

3- Also, sometimes a number of "O" characters get printed on the screen,
what does this mean?


overflow, in the case of the usrp2, there is overflow in the socket buffer, packets are dropped, and the uhd driver noticed a discrepancy in the progression of sequence numbers and prints "O"

4- What is the least sampling freq that I can use?


actual sample rates achievable by the hardware are 100e6 divided by //_USRP2_RATES = range(4, 128+1, 1) + range(130, 256+1, 2) + range(260, 512+1, 4)

so the smallest rate is 100e6/512 = 195312.5 Hz

I am so glad that we have got something working now and Thank you very much
indeed.


glad to hear it too, i will fix the mimo source with a timeout proportional to the number of channels

-Josh



reply via email to

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