aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--CHANGELOG23
-rw-r--r--README.md6
-rw-r--r--host/CMakeLists.txt6
-rw-r--r--host/docs/usrp_b200.rst4
-rw-r--r--host/examples/test_timed_commands.cpp50
-rw-r--r--host/lib/usrp/b200/b200_impl.cpp2
6 files changed, 73 insertions, 18 deletions
diff --git a/CHANGELOG b/CHANGELOG
index 8965ae3b4..d69945842 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,6 +1,29 @@
Change Log for Releases
==============================
+## 003.006.002
+* Fixed bug in timed commands example.
+* Improved compatibility for older versions of Boost.
+* Fixed segmentation fault issue in converter code.
+* Fixed binary-stripping for ARM builds.
+* B2xx: Further improvements to code and images.
+* Documentation links now installed to Start Menu in Windows.
+* B2xx: More robust error checking in host code.
+* B2xx: Improved error reporting.
+* B2xx: Increase FPGA loading speed on USB 3
+* B2xx: Re-programming FPGA without cycle now supported.
+* B2xx: Larger RX SPP ceiling to support 16K transfers with larger RX FIFO in new FPGA image
+* Updated internal READMEs and documentation.
+* N-Series: netburner now accepts relative paths with '~'
+* Completely re-written UHD Images Downloader, with numerous bug fixes and new features.
+
+## 003.006.001
+* B2xx: Fixed critical bug in 003.006.000 regarding USRP B2xx operation
+
+## 003.006.000
+* Many small fixes for bugs revealed by static analysis.
+* Introduced support for the USRP B200 / B210
+
## 003.005.003
* E110:
diff --git a/README.md b/README.md
index 8d78c4f10..45903b4b5 100644
--- a/README.md
+++ b/README.md
@@ -35,8 +35,8 @@ UHD is primarily developed on Linux, but we also test and support the following
operating systems.
* Linux (any distribution)
-* Mac OSX (PPC and Intel)
-* Windows 7/Vista/XP/2000
+* Mac OS X (PPC and Intel)
+* Windows 7/Vista/XP
## Applications
@@ -44,7 +44,7 @@ UHD can be used to build stand-alone applications with USRP™ hardware, or with
third-party applications. Some common toolkits / frameworks are:
* [GNURadio](http://code.ettus.com/redmine/ettus/projects/uhd/wiki/GNU_Radio_UHD)
-* [LabVIEW](http://joule.ni.com/nidu/cds/view/p/id/2679/lang/en)
+* [LabVIEW](http://www.ni.com/download/ni-usrp-1.2/3696/en/)
* [Simulink](http://www.mathworks.com/discovery/sdr/usrp.html)
* [OpenBTS](http://wush.net/trac/rangepublic/wiki/BuildInstallRun)
* [Iris](http://www.softwareradiosystems.com/redmine/projects/iris/wiki)
diff --git a/host/CMakeLists.txt b/host/CMakeLists.txt
index d4d3591bc..ded4bb54c 100644
--- a/host/CMakeLists.txt
+++ b/host/CMakeLists.txt
@@ -1,5 +1,5 @@
#
-# Copyright 2010-2013 Ettus Research LLC
+# Copyright 2010-2014 Ettus Research LLC
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -213,8 +213,8 @@ UHD_INSTALL(FILES
# Images download directory for utils/uhd_images_downloader.py
########################################################################
-SET(UHD_IMAGES_MD5SUM "35a522e2c57c61100027702a7d840060")
-SET(UHD_IMAGES_DOWNLOAD_SRC "http://files.ettus.com/binaries/maint_images/archive/uhd-images_003.006.002-rc2.zip")
+SET(UHD_IMAGES_MD5SUM "0bab468817baa28024c4bf966d923b31")
+SET(UHD_IMAGES_DOWNLOAD_SRC "http://files.ettus.com/binaries/maint_images/archive/uhd-images_003.006.002-release.zip")
########################################################################
# Register top level components
diff --git a/host/docs/usrp_b200.rst b/host/docs/usrp_b200.rst
index bb2a2876a..81e66684e 100644
--- a/host/docs/usrp_b200.rst
+++ b/host/docs/usrp_b200.rst
@@ -8,7 +8,7 @@ UHD - USRP-B2X0 Series Application Notes
Comparative features list - B200
------------------------------------------------------------------------
-* integrated RF frontend
+* integrated RF frontend (RF coverage from 70 MHz - 6 GHz)
* 1 RX DDC chain in FPGA
* 1 TX DUC chain in FPGA
* Timed commands in FPGA
@@ -22,7 +22,7 @@ Comparative features list - B200
Comparative features list - B210
------------------------------------------------------------------------
-* integrated MIMO frontend
+* integrated MIMO frontend (RF coverage from 70 MHz - 6 GHz)
* 2 RX DDC chains in FPGA
* 2 TX DUC chains in FPGA
* Timed commands in FPGA
diff --git a/host/examples/test_timed_commands.cpp b/host/examples/test_timed_commands.cpp
index 224961d04..8c6011c68 100644
--- a/host/examples/test_timed_commands.cpp
+++ b/host/examples/test_timed_commands.cpp
@@ -78,27 +78,57 @@ int UHD_SAFE_MAIN(int argc, char *argv[]){
total_time += (t1-t0);
}
std::cout << boost::format(
- "Difference between paired reads: %f us"
+ " Difference between paired reads: %f us"
) % (total_time.get_real_secs()/100*1e6) << std::endl;
+ //test timed control command
+ //issues get_time_now() command twice a fixed time apart
+ //outputs difference for each response time vs. the expected time
+ //and difference between actual and expected time deltas
+ std::cout << std::endl;
+ std::cout << "Testing control timed command:" << std::endl;
+ const uhd::time_spec_t span = uhd::time_spec_t(0.1);
+ const uhd::time_spec_t now = usrp->get_time_now();
+ const uhd::time_spec_t cmd_time1 = now + uhd::time_spec_t(0.1);
+ const uhd::time_spec_t cmd_time2 = cmd_time1 + span;
+ usrp->set_command_time(cmd_time1);
+ uhd::time_spec_t response_time1 = usrp->get_time_now();
+ usrp->set_command_time(cmd_time2);
+ uhd::time_spec_t response_time2 = usrp->get_time_now();
+ usrp->clear_command_time();
+ std::cout << boost::format(
+ " Span : %f us\n"
+ " Now : %f us\n"
+ " Response 1: %f us\n"
+ " Response 2: %f us"
+ ) % (span.get_real_secs()*1e6) % (now.get_real_secs()*1e6) % (response_time1.get_real_secs()*1e6) % (response_time2.get_real_secs()*1e6) << std::endl;
+ std::cout << boost::format(
+ " Difference of response time 1: %f us"
+ ) % ((response_time1 - cmd_time1).get_real_secs()*1e6) << std::endl;
+ std::cout << boost::format(
+ " Difference of response time 2: %f us"
+ ) % ((response_time2 - cmd_time2).get_real_secs()*1e6) << std::endl;
+ std::cout << boost::format(
+ " Difference between actual and expected time delta: %f us"
+ ) % ((response_time2 - response_time1 - span).get_real_secs()*1e6) << std::endl;
+
//use a timed command to start a stream at a specific time
//this is not the right way start streaming at time x,
//but it should approximate it within control RTT/2
//setup streaming
std::cout << std::endl;
std::cout << "About to start streaming using timed command:" << std::endl;
-
+
//create a receive streamer
uhd::stream_args_t stream_args("fc32"); //complex floats
uhd::rx_streamer::sptr rx_stream = usrp->get_rx_stream(stream_args);
-
+
uhd::stream_cmd_t stream_cmd(uhd::stream_cmd_t::STREAM_MODE_NUM_SAMPS_AND_DONE);
stream_cmd.num_samps = 100;
- stream_cmd.stream_now = true;
+ stream_cmd.stream_now = false;
const uhd::time_spec_t stream_time = usrp->get_time_now() + uhd::time_spec_t(0.1);
- usrp->set_command_time(stream_time);
+ stream_cmd.time_spec = stream_time;
rx_stream->issue_stream_cmd(stream_cmd);
- usrp->clear_command_time();
//meta-data will be filled in by recv()
uhd::rx_metadata_t md;
@@ -113,14 +143,14 @@ int UHD_SAFE_MAIN(int argc, char *argv[]){
) % md.error_code));
}
std::cout << boost::format(
- "Received packet: %u samples, %u full secs, %f frac secs"
+ " Received packet: %u samples, %u full secs, %f frac secs"
) % num_rx_samps % md.time_spec.get_full_secs() % md.time_spec.get_frac_secs() << std::endl;
std::cout << boost::format(
- "Stream time was: %u full secs, %f frac secs"
+ " Stream time was: %u full secs, %f frac secs"
) % stream_time.get_full_secs() % stream_time.get_frac_secs() << std::endl;
std::cout << boost::format(
- "Difference between stream time and first packet: %f us"
- ) % ((md.time_spec-stream_time).get_real_secs()/100*1e6) << std::endl;
+ " Difference between stream time and first packet: %f us"
+ ) % ((md.time_spec-stream_time).get_real_secs()*1e6) << std::endl;
//finished
std::cout << std::endl << "Done!" << std::endl << std::endl;
diff --git a/host/lib/usrp/b200/b200_impl.cpp b/host/lib/usrp/b200/b200_impl.cpp
index 132b1198d..ab437af6b 100644
--- a/host/lib/usrp/b200/b200_impl.cpp
+++ b/host/lib/usrp/b200/b200_impl.cpp
@@ -501,6 +501,8 @@ void b200_impl::setup_radio(const size_t dspno)
_async_task_data->radio_ctrl[dspno] = perif.ctrl; //weak
_tree->access<time_spec_t>(mb_path / "time" / "cmd")
.subscribe(boost::bind(&radio_ctrl_core_3000::set_time, perif.ctrl, _1));
+ _tree->access<double>(mb_path / "tick_rate")
+ .subscribe(boost::bind(&radio_ctrl_core_3000::set_tick_rate, perif.ctrl, _1));
this->register_loopback_self_test(perif.ctrl);
perif.atr = gpio_core_200_32wo::make(perif.ctrl, TOREG(SR_ATR));